使用matlab计算二进制图像的轮廓

0 matlab image image-processing contour computer-vision

我正在尝试计算二进制图像的轮廓.目前,我通过循环识别图像中的第一个非零和最后一个非零像素.有没有更好的办法?我遇到了一些功能:

imcontour(I)
bwtraceboundary(bw,P,fstep,conn,n,dir)
Run Code Online (Sandbox Code Playgroud)

但第一个不返回轮廓的x和y坐标.第二个功能需要一个我无法提供的种子点.图像的示例如下所示.谢谢.

在此输入图像描述

ray*_*ica 6

我很惊讶你没看到bwperim.你没试过吗bwperim吗?这将查找二进制图像中所有白色关闭对象的周边像素.直接从StackOverflow使用您的图像:

im = im2bw(imread('http://i.stack.imgur.com/yAZ5L.png')); 
out = bwperim(im);
imshow(out);
Run Code Online (Sandbox Code Playgroud)

我们得到:

在此输入图像描述