如何像凸轮扫描仪那样实现图像拉直?

信息处理 图像处理 图片 图像配准
2022-02-03 10:54:59

是否可以像凸轮扫描仪那样实现图像矫正

在此处输入图像描述

我的意思是选择一个非矩形区域并将其转换为矩形区域作为图像。我只能调整图像矩形区域的大小和裁剪。

1个回答

几何变换

假设f是一个图像,定义在(w,z)坐标系,经过几何变形产生图像g, 定义在(x,y)坐标系。要执行此操作,请使用此

(x,y)=T{(w,z)}

因此,最常用的空间变换形式之一是仿射变换(Wolberg [1990])。可以写成矩阵形式为

[x y 1]=[w z 1] T=[w z 1][t11t120t21t220t31t321]

这种变换可以缩放、旋转、平移或剪切一组点,具体取决于为元素选择的值T

您的案例:透视变换

对于透视变换,您需要一个 3x3 变换矩阵。即使在转换之后,直线也将保持笔直。要找到这个变换矩阵,您需要输入图像上的 4 个点和输出图像上的对应点。这4个点中,有3个不应该共线。

实现

Python

  • 开放式CV

OpenCV 有很多方法可以执行图像变形和几何变换,您可以在文档页面中获取示例

  • scikit 图像

scikit-image 在文档页面中也有很多示例

对于 python,只需选择对您更舒适的模块或同时使用两者。

  • MATLAB® 图像处理工具箱

与其他示例一样,Math Work 的软件具有许多执行几何变换的功能。请注意,这是一个商业软件,如果你想制作一个小软件,它没有强大的编程语言。

参考

沃尔伯格 [1990] G.沃尔伯格。数字图像变形。IEEE 计算机学会出版社,1990 年。

Gonzalez [1987] Gonzalez, RC, P. Wintz, 1987。数字图像处理。第 2 版,Addison-Wesley,阅读:MA。

进一步阅读

这个讲座很好地介绍了这个过程