我完全陷入了关于玻璃状物体分割的问题。
我需要尽可能精确地获取物体。
我的方法有所不同。
起初我尝试移除
,但这仅适用于具有尖锐边缘/渐变的对象。
否则,对象本身也将被删除。
我发布了两个不同的图像。



我试图通过形态学操作(例如灰度膨胀和除法)去除背景。
但并没有太大帮助。 >在此之后,我尝试使用k = 3的k均值来使修改后的背景与玻璃的灰度和黑色值分开。
我还尝试使用整体模糊的滤镜进行canny边缘检测,但是由于轮廓开放,噪声大等原因导致结果较弱。自动t hreshold结果:

testimg = imread('http://i.imgur.com/huQVt.png');  
imshow(testimg)
imedges = edge(testimg,'canny');
imshow(imedges);


第二张图片也一样。



您可以看到,玻璃内部和外部都有大量噪音,玻璃边缘的边缘加倍。

因此,我需要您的建议,以寻求一种通用的方法来处理半透明材料的问题,而不仅仅是这两个图像。

1)其他去除背景而不损坏对象的方法?

2)其他使对象与背景分离的分割方法?

如果可能,然后使用Matlab,IPT或统计工具箱提示。也欢迎您提出其他任何提示!

预先感谢您的回答。
真诚

评论

背景总是一样吗?

差不多,在更暗/更亮的地方有所不同。

从每张图像中减去背景将是一个开始,使其更加统一:imgur.com/9WhcB

你什么意思?你有没有玻璃的背景图片吗?

@DennisJaheruddin我知道边缘不是黑线。边缘定义为强度/频率的变化,这意味着其灰度值或多或少地快速变化。不过,正如您可能会从上下文中看到的那样,Canny方法在这里不是首选的武器,因为背景,我(使用Canny)会产生很多噪音。而且我无法预测自动阈值/ sigma。因此,我需要一种消除背景的方法,而不是消除对象本身的方法。

#1 楼

为什么不只使用简单的2D FFT(波斯语)高通滤波器呢?


在#2上执行相同的操作。

#2使用高通FFT进行分片: >
如您所见,背景和玻璃区域被擦除,仅描边。我没有花任何时间,但是您可以将HP过滤输出的阈值设置为具有更清晰的边缘,或者将HP截止值提高到更高。

#2 楼

这不是要回答整个问题的尝试,但是我确实有一个“清理图像”的想法。

您说您已经尝试过形态学运算,但这是对该想法的一种改进,希望升级。

本文:A. Vichik,R。Keshet和D. Malah:树半格和应用上的自对偶形态学提出了一种方法,可以以一种可以添加的方式增强经典形态学算符

文章建议根据所需的属性选择图像的分层表示,然后提出一种方法来定义腐蚀,膨胀,张开,顶帽那个代表。用他们自己的话说:


我们提供了一个用于生成新的形态运算符的通用框架(...)此答案的第二部分(语义方法)中的树形结构,您可以在其中添加我在此处链接的文章中提到的Extrema-Watershed Tree(以及再次)。

它是对(引用作者)“传统灰度数学形态”,因为这些操作保留了表示形式的理想特性。例如。如果您的等级表示形式是自我对偶的,那么您的操作员将是真正的自我对偶的(例如,与通过重构实现的非自我对偶的准自我对偶的开闭比较)。文章还提供了一些过滤噪声的结果-您可以将它们(和文章中引用的论文)的结果与所需结果(至少在视觉上)进行比较,并在开始编码之前查看它是否对您有用。

因此,尽管选择最简单的表示形式(max- / min-)树将完全产生经典运算,但选择最适合您的需求的自对偶树可能会为您提供足够健壮的方法。