python中无边缘图像的边缘检测

时间:2018-11-02 04:52:25

标签: python image opencv canny-operator

我有一些对比度很低的灰度图像(micro-structure image),该图像显示了退化期间材料的分层,我想知道分层区域占整个图像的百分比(例如:{ {3}})。

我尝试通过伽玛,对数和自适应调整来扩大对比度,我可以得到这样的数字:ideal result

然后我尝试找到阈值并将图像更改为黑白图像(after increase contrast

但是当我仍然无法检测到分层段的轮廓时,我得到了这样的结果:black and white image(使用cv.Canny)。

所以我想知道是否有很好的建议来找到这些剥落区域的优势?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

  • 在x方向上删除图像的线性渐变。图像的RHS显然比LHS暗。如果您解决此问题,阈值设置将更好。

  • 对图像进行阈值处理后,在二进制图像中分离不连续的区域,然后删除面积较小的区域

  • 做一些扩张+侵蚀以连接破裂的椭圆。

  • 在这些区域填充孔。

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

从技术上讲,我是MVTec Halcon的用户,因此我不确定$paintings = Painting::with('Art_obj')->get(); 中这些概念是什么,但我认为它们应该是相当常见的操作。