以二值图像circles.png(黑色背景白色前景)为例,根据掏空内部点算法,运用Matlab编程实现二值图像的轮廓提取。
I=imread('circles.png');
[M,N]=size(I);
buffer=I;
for i=2:M-1
for j=2:N-1
if(I(i,j)==255&I(i-1,j)==255&I(i+1,j)==255&I(i,j-1)==255&I(i,j+1)==255&I(i-1,j-1)==255&I(i-1,j+1)==255&I(i+1,j-1)==255&I(i+1,j+1)==255)%÷‹Œß8∏ˆµ„æ˘Œ™∞◊…´
buffer(i,j)=0;
end
end
end
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(buffer);