我在图像中有一个对象。我想确定属于内部边界,外部边界和没有边界的对象本身的点。
示例图片如下所示
对象之间的中间区域也是背景。
该对象仅由黑色像素组成。
我们想确定
感谢
答案 0 :(得分:3)
一种可能的策略:
可以在单次扫描图像的同时评估点2-4。
如果您想要快速执行此操作,可以将OpenGL与评估片段着色器一起使用。但这有点多了。
答案 1 :(得分:1)
在matlab中
l = bwlabel( img, 4 ); % label white regions using 4-connect neighbors
[or oc] = find( (l == 0) & imdilate( l == 1, strel('disk',1,0) ) ); % outer boundary
[ir ic] = find( (l == 0) & imdilate( l == 2, strel('disk',1,0) ) ); % inner boundary
答案 2 :(得分:0)
我在这里发布了一些flood-fill algorithm。希望这可以提供帮助。
答案 3 :(得分:0)
我没有尝试过,但尝试通过以下方式进行伪边缘检测:
filter=[0 -1 0 ; -1 4 -1 ; 0 -1 0];
newImage=conv2(yourImage,filter);
它假设仅保留(或主要)外部和内部的egdes。之后,如果你将执行yourImage-newImage,你将获得不是边缘的abject的内部像素。
我认为它可以完成一些工作,让你进一步找到解决方案。