模糊边缘检测

2024-06-02 06:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我对图像处理和识别没有什么背景知识。我正在尝试检测像肖像这样的灰度图像上的主要边缘/灰度转换。问题是在某些部分,边缘是模糊的(因为聚焦)。我使用的是具有多个阈值的Canny边缘检测器,但我永远无法检测到这些边缘(下巴、衣服、耳朵、脸部侧面……)

原始图像:Original 这就是我得到的结果:胡须,锋利的边缘 Current result 这就是我感兴趣的特性:主灰色区域之间的转换Wanted results

边缘检测是正确的工具吗? 谢谢!在


更新:在边缘检测之前,使用Deriche过滤和将图像大小减半(apertureSize=7),我让它的工作非常接近我想要的。 Good results


Tags: 图像阈值特性图像处理检测器感兴趣边缘灰度
3条回答

几乎不可能检测到这些边缘,因为它们太模糊了。在

边缘检测是通过分析周围像素中颜色的快速变化来实现的。模糊使像素变得平滑,这使得变化变得不那么强烈,因此不会检测到边缘。在

你可以尝试在边缘检测之前应用一个强大的锐化过滤器,但是,我认为对于这样的模糊量,边缘检测将无法正常工作。在

即使提高边缘检测参数来检测那些模糊的边缘,也会得到很多误报,使算法变得无用。在

使用canny deriche过滤器,您可以找到: a possibility

完整代码是here

我唯一能想到的就是基本上裁剪这个区域,然后应用傅立叶变换(DFT)。然后根据振幅阈值分离像素,保持图案并将其应用于主图像(或仅使用反向傅里叶)。或者,你可以尝试在一个指数级上这样做,以扩大与背景对应的像素值与对应于图像的像素值之间的差距。在

当然,所有这些建议都是为一张照片量身定做的一次性解决方案,或者是在相同条件下拍摄的一系列照片(例如核磁共振成像)。在

我真的看不出用完全自动的方式做这件事的可能性有多大。在

人工神经网络解决方案

如果想借助人工神经网络(ANN)来设计一个,这当然不能保证成功,但至少在原则上,这取决于它的设计水平。如果您想了解ANN在复杂图像处理中的应用,请阅读IEEE的这篇会议论文。在

T. Kondo, J. Ueno, and S. Takao. Medical Image Recognition of Abdominal Multi-organs by Hybrid Multi- layered GMDH-type Neural Network Using Principal Component-Regression Analysis. In Second International Symposium on Computing and Networking (CANDAR), pages 157–163. Institute of Electrical and Electronics Engineers, IEEE, Dec. 2014.

自定义过滤器和数学原理

以下是一些你可能会觉得有用的数学原理:

值得尝试自定义过滤器,例如:

      -
| 1 | 2 | 1 |
      -
| 0 | 0 | 0 |
      -
|-1 |-2 | 1 |
      -

注意,这不会过滤任何(完全)垂直线。你可以,然而,转置它,所以它将是相反的。你也可以尝试对二值图像(黑白图像)应用过滤器,而不是灰度图像。在

对于这样的过滤器,您可能仍然希望您的傅立叶来减少您的计算和优化程序。在

基本上,你可以用卷积来解释线性滤波:

^{pr2}$

其中G是内核/掩码,G{flip}是翻转的内核掩码。在

卷积

二维卷积的定义是:

X ⓧ G = Summation(∞, k=-∞){Summation(∞, l=-∞) x[i-k, j-l].G[k,l]}

这不是你问题的完整答案,但我希望它能在一定程度上帮助你。在

相关问题 更多 >