OpenCV:矫正这些失真图像

7
以下是纠正以下扭曲图像的步骤?看起来图像从中心凸出。这些是相同的QR码,因此可以使用这样的图像组合来得到一张正确和直的图像。请给予建议。 enter image description here enter image description here enter image description here

相关:http://mathematica.stackexchange.com/questions/26268/qr-code-in-shopping-cart-handle - Rob Audenaerde
1个回答

2
您所经历的失真称为“桶形畸变”。技术名称为“径向畸变和切向畸变的组合”。
您问题的解决方案是利用OpenCV相机校准模块。只需在Google中搜索,您就可以在OpenCV维基上找到文档。此外,OpenCV已经内置了如何对相机进行校准的源代码示例。
基本上,您需要打印棋盘图像,拍摄几张照片,运行校准模块(使用内置方法),并获取输出的变换矩阵。对于每个视频帧,应用此矩阵(我认为该方法称为“cvUndistort ()”),它将使图像中的曲线直线化。 注意:如果更改相机的缩放或焦距,则此方法将无效。 如果相机详细信息不可用且不受控制 - 那么您的问题非常严重。有一种方法可以解决畸变,但我不知道OpenCV是否有内置模块来处理它。恐怕您需要编写很多代码。
基本上-您需要尽可能检测到长线。然后从这些线(垂直和水平)中构建交点网格。最后,您将网格拟合到OpenCV校准模块。 如果您有足够的交点(例如20个或更多),则可以计算畸变矩阵并将其映射回去,使图像失真。
您将无法完全校准相机。换句话说,在每个视频帧中,您都将直接计算失真矩阵-并将其反转和映射回失真图像。 如果您不熟悉图像处理技术或找不到可靠的开源代码直接解决您的问题-那么恐怕您将无法消除失真。对此表示抱歉。

1
相机细节不可用。 - Tabish Saifullah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接