在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和深度学习进行全面嵌套边缘检测