opencv:纠正这些扭曲的图像

Tab*_*lah 7 opencv image-processing

纠正以下扭曲图像的步骤是什么?它看起来像是从中心凸出的图像.它们具有相同的QR码,因此可以使用这些图像的组合来获得单个正确和直接的图像.请指教.

在此输入图像描述 在此输入图像描述 在此输入图像描述

Dan*_*HsH 2

您所经历的失真称为“桶形失真”。技术名称是“径向畸变和切向畸变的组合”

您的问题的解决方案是 openCV 相机校准模块。只需谷歌一下,你就会在 openCV wiki 中找到文档。此外,openCV 已经内置了如何校准相机的源代码示例。

基本上,您需要打印棋盘的图像,拍摄几张照片,运行校准模块(内置方法)并获取输出转换矩阵。对于每个视频帧,您应用这个矩阵(我认为该方法称为cvUndistort()),它将拉直图像中的曲线。注意:如果更改相机的变焦或焦距,则此功能将不起作用。

如果相机细节不可用并且无法控制- 那么你的问题就非常严重了。有一种方法可以解决失真问题,但我不知道openCV是否有内置模块。恐怕您需要编写大量代码。

基本上 - 你需要检测尽可能多的长线。然后从这些线(垂直和水平)构建交点网格。最后将这些点的网格拟合到 openCV 校准模块中。如果您有足够的交点(比如 20 个或更多),您将能够计算畸变矩阵并消除图像畸变。

您将无法完全校准相机。换句话说,您将无法运行计算预期失真的一次性过程。相反 - 在每个视频帧中,您将直接计算失真矩阵 - 将其反转并消除图像失真。如果您不熟悉图像处理技术或无法找到直接解决您问题的可靠开源代码 - 那么恐怕您将无法消除失真。对不起