How to use 2D logical mask on an image without for loop?
조회 수: 6 (최근 30일)
이전 댓글 표시
I have two image matrices A and B with size 512 x 512 x 3, and a logical mask of size 512 x 512. For each position with true value in the mask, I want to set A's value to B's. Currently I only know the for loop solution:
for y = 1 : height
for x = 1 : width
if mask(y,x)
A(y,x,:) = B(y,x,:)
end
end
end
Is there a way to avoid the for loop?
댓글 수: 0
답변 (1개)
KSSV
2020년 4월 28일
B = zeros(512,512,3) ;
for i = 1:3
T1 = B(:,:,1) ;
T2 = A(:,:,i) ;
T1(idx) = T2(idx) ;
B(:,:,i) = T1 ;
end
댓글 수: 2
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!