Image processing 哪些直线检测算法仍然会检测照片中遭受一定程度镜头畸变的直线?

Image processing 哪些直线检测算法仍然会检测照片中遭受一定程度镜头畸变的直线?,image-processing,photo,edge-detection,distortion,straight-line-detection,Image Processing,Photo,Edge Detection,Distortion,Straight Line Detection,我还发现了关于检测图像中的直线的其他问题,我将继续阅读 但我知道在很多照片中,现实生活中的直线最终都是弯曲的 我不需要去弯曲鱼眼扭曲或任何极端的东西 但我想处理一个“典型”的曲线失真量,就好像它们仍然是直线一样 是否有一些算法或技术可以“足够好”地处理这个问题 这是我的一张老照片,一本书展示了我心目中的曲线。这是曲率和透镜畸变的一个很好的例子。(由于背景中的其他行,这可能不是一个好例子,但这与当前问题无关。) 事实证明,用于直线检测的最流行技术之一也存在于处理曲线的版本中 它被称为“Hough变

我还发现了关于检测图像中的直线的其他问题,我将继续阅读

但我知道在很多照片中,现实生活中的直线最终都是弯曲的

我不需要去弯曲鱼眼扭曲或任何极端的东西

但我想处理一个“典型”的曲线失真量,就好像它们仍然是直线一样

是否有一些算法或技术可以“足够好”地处理这个问题

这是我的一张老照片,一本书展示了我心目中的曲线。这是曲率和透镜畸变的一个很好的例子。(由于背景中的其他行,这可能不是一个好例子,但这与当前问题无关。)


事实证明,用于直线检测的最流行技术之一也存在于处理曲线的版本中

它被称为“Hough变换”

它最初用于检测直线,但也被推广用于曲线和其他任意形状。维基百科文章:

经典的Hough变换涉及到对目标的识别 图像中的线,但后来Hough变换已扩展到 识别任意形状的位置,最常见的是圆或 省略号

甚至有关于使用Hough变换处理镜头畸变的特定主题的论文:


边缘的曲率似乎没有那么严重,最坏的情况是,Hough变换只会将边缘分成几段


我更担心的是边缘对比度不足(白色对白色),这可能会导致检测失败。

如果您知道相机的固有参数,或者可以获得这些参数,那么您可以执行使直线再次变直的操作。通常情况下,仅求解径向畸变就足够了。OpenCV有一个工具,它更详细地描述了获取这些参数的过程。这个过程被称为相机校准。另外,如果你知道用于收集图像的镜头,那么这是一个为许多商业镜头预先计算模型的工具。Hough将不断检测到中度扭曲的线条。但你应该给我们看典型的图像。@YvesDaoust:添加了示例!谢谢你的反馈。正如我所说的,这只是我为曲率选择的一张随机图片,比我在典型情况下预期的要差。这个特定图像的其他问题对于这个问题并不重要,因为真正的问题是处理许多不同的平面矩形对象的图像。当我要求一个典型的图像时,我不是要求一个随机的图像。我知道什么是扭曲。我不知道你的案子。