在python中使用无优美图像进行边缘检测

Posted

技术标签:

【中文标题】在python中使用无优美图像进行边缘检测【英文标题】:edge detection with graceless image in python 【发布时间】:2018-11-02 04:52:24 【问题描述】:

我有一些对比度非常低的灰度图像(micro-structure image)这张图显示了材料在降解过程中的分层,我想知道分层区域占整个图片的百分比(像这样:ideal result )。

我尝试通过伽玛、对数和自适应调整来放大对比度,得到的数字是这样的:after increase contrast

然后我试图找到阈值并将图像更改为黑白图像(black and white image)

但是当我仍然无法检测到分层段的轮廓时,我得到了这样的结果:contour detection (with cv.Canny)。

所以我想知道是否有好的建议可以找到这些分层区域的边缘?

提前致谢!

【问题讨论】:

你得到了一张相当不错的黑白图像,为什么不使用黑白像素数而不是获取区域轮廓? @RockyLi 哦,因为圆圈里面的白色部分其实代表的是表面还在的材料,而圆圈外面的白色部分是分层后剩下的(其他材料)。跨度> 【参考方案1】:

未测试。但我相信你可能想做以下事情:

移除图像在 x 方向的线性渐变。图像的 RHS 显然比 LHS 更暗。如果你解决这个问题,阈值会更好。

对图像进行阈值处理后,将二值图像中不连贯的区域分开,然后去除面积较小的区域

稍微膨胀 + 腐蚀以连接破碎的椭圆。

填充这些区域的孔。

最终区域应与退化区域相对应。然后,您可以提取边缘或稍后做任何您想做的事情。

从技术上讲,我是 MVTec Halcon 用户,因此我不确定opencv 中的这些概念是什么,但我相信它们应该是相当常见的操作。

【讨论】:

谢谢!会试试的!

以上是关于在python中使用无优美图像进行边缘检测的主要内容,如果未能解决你的问题,请参考以下文章

使用 Open CV python 对两幅图像进行边缘检测和直方图匹配。

使用Python,OpenCV和深度学习进行全面嵌套边缘检测

MATLAB进行边缘检测

python使用openCV图像加载(转化为灰度图像)Canny边缘检测器检测图像的边缘(Detect Edges)

边缘检测之孤立点检测及Python实现

火炉炼AI机器学习046-图像边缘的检测方法