How to use 2D logical mask on an image without for loop?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
KSSV
am 28 Apr. 2020
B = zeros(512,512,3) ;
for i = 1:3
T1 = B(:,:,1) ;
T2 = A(:,:,i) ;
T1(idx) = T2(idx) ;
B(:,:,i) = T1 ;
end
2 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!