How to use 2D logical mask on an image without for loop?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
KSSV
il 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 Commenti
Vedere anche
Categorie
Scopri di più su Computer Vision with Simulink in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!