我正在尝试侵蚀二进制图像中的对象,以便它们不会变得小于某个固定大小。例如,考虑由连通分量(斑点)组成的二进制地图,其中一个通过最小或最大对极(反周边)距离(即,在斑点的周长或轮廓上彼此距离尽可能远的两点之间的距离;如果轮廓由N个连续编号的点组成,则评估的距离将是点1和N/2+1、点2和N/2+2之间的距离,等等)来定义斑点大小。鉴于这样的安排,我寻求侵蚀这些斑点,直到距离度量达到指定的限制。如果斑点是简单的圆形,则可以通过最终侵蚀然后膨胀到固定大小来实现效果;然而,这样的过程将丢失不规则对象的轮廓。有没有一种方法可以使用MATLAB中的内置函数来实现连接的不规则组件的这种效果?
发布于 2017-08-20 23:03:30
在没有图片和已经尝试过的代码的情况下,我可能理解错了,但是可以迭代地使用bwmorph和'thin','skel‘或'shrink’会对你有所帮助。
while(cond < cond_threshold)
bw=bwmorph(bw,...,1); %one of the options above
cond = calc_cond(bw);
endhttps://stackoverflow.com/questions/45778207
复制相似问题