Hello guys, My code works with recursion, receiving an image as input, but it's taking a really long time to process it. I wonder if is there anything I can do to speed it up.
Here is the code:
ROTULO=0;
for i=xi:xf
for j=yi:yf
if(out(i,j,1)==-1)
ROTULO=ROTULO+1;
rotular(i,j);
end
end
end
And the function rotular:
function rotular(w,z)
out(w,z,1)=ROTULO;
if(w < xf && out(w+1,z,1)==-1)
rotular(w+1,z);
end
if(z < yf && out(w,z+1,1)==-1)
rotular(w,z+1);
end
if(w > xi && out(w-1,z,1)==-1)
rotular(w-1,z);
end
if(z > yi && out(w,z-1,1)==-1)
rotular(w,z-1);
end
end
The variable out is a matrix corresponding to the input image. I'm running MATLAB R2015b on Windows 8.1, 64-bit, 6.0GB RAM, Intel i5-3470S CPU @ 2.90GHz I'm not having any trouble concerning RAM. I am also not getting any errors. Just want to improve the performance.
Thanks.