I would like to "smear" a logical mask – fast. There may be a proper term and even standard operation for this but I haven't been able to find them. The following code and image help describe the requirement:
r=20;c=25;a=false(r,c);a(10,3)=true;a(4,15)=true;a(18,18)=true;a2=a;n=5; %length to "smear"
for j=1:c i=1; while i<=r if a2(i,j); a2(i:(i+n),j)=true; i=i+n; end i=i+1; endenda2=a2(1:r,:);figure(1)colormap(flipud(gray))subplot(1,2,1)imagesc(a)title('Input')subplot(1,2,2)imagesc(a2)title('Desired Output')
This is easy in a loop but very slow for large arrays. I've managed a few approaches without loops, some are faster but still messy and I'm sure there is a better way! Hence posting it here for the Gurus 🙂
Best Answer