如何填充粒子边界中缺失的部分,使这些边界/轮廓形成连续的轮廓?

问题描述 投票:0回答:1

我有许多非球形粒子边界/轮廓的二进制Black Particle Borders图像。不幸的是,由于图像质量较差,边界不是连续的,而是有一些间隙。有什么办法可以填补漏洞以获得完整的边界线吗?我的最终目标是将粒子形状填充为黑色。我为此使用 ImageJ,但是,ImageJ 仅将大约 10% 的粒子识别为实际要填充的粒子,因为其他粒子没有完整的轮廓。

我尝试过的事情是:

  • python中openCV的findContours方法,但它只在轮廓周围和内部绘制一条小线,这意味着这些外线和内线之间有一个空间,这会改变和放大粒子的形状和大小。您可以在此图中看到结果。 Contours Drawn by OpenCV我也尝试过模糊图像或更改阈值,但它没有填补漏洞。

  • 使用ImageJ来扩大边界/轮廓,使轮廓变粗,并且“松散的末端”在扩大后可能会互相接触。不幸的是,膨胀太大,几乎每个粒子都随后连接起来。填充粒子会导致大量空间被填充Not only particls are filled, but space in between too

python opencv image-recognition imagej
1个回答
0
投票

从所附的示例图像中,我得出结论,您喜欢获得相互矛盾的结果:闭合轮廓间隙并分离接触的轮廓对象。我认为获得令人满意的解决方案的可能性很小,尤其是在样本图像的空间分辨率较低的情况下。我强烈建议在图像二值化之前开始解决问题,例如通过考虑灰度值形态学操作。

© www.soinside.com 2019 - 2024. All rights reserved.