Computer vision 鱼眼等矩形变换

Computer vision 鱼眼等矩形变换,computer-vision,fisheye,Computer Vision,Fisheye,我有一个由OpenCV的fisheye::calibrate()获得的鱼眼相机的内在参数(fx、fy、cx、cy、k1~k4)。如何将鱼眼图像转换为等矩形图像 我见过一些类似的问题,但似乎没有一个能反映校准结果。失真参数k1~k4在这个转换中不是必需的吗?,而在Python中可能会提供一些关于这个主题的进一步阅读。这似乎表明,一旦从fisheye::calibrate获得了K和D值,您就可以使用(注意,D可以是空的,就像在您的例子中一样)生成两个贴图,然后可以将扭曲的输入图像转换为去扭曲的输出图

我有一个由OpenCV的fisheye::calibrate()获得的鱼眼相机的内在参数(fx、fy、cx、cy、k1~k4)。如何将鱼眼图像转换为等矩形图像

我见过一些类似的问题,但似乎没有一个能反映校准结果。失真参数k1~k4在这个转换中不是必需的吗?

,而在Python中可能会提供一些关于这个主题的进一步阅读。这似乎表明,一旦从fisheye::calibrate获得了K和D值,您就可以使用(注意,D可以是空的,就像在您的例子中一样)生成两个贴图,然后可以将扭曲的输入图像转换为去扭曲的输出图像(重新映射时的进一步阅读)

在python中(对于稍后查看此内容的任何人),这是这样做的:

ap1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3),
                                                K, DIM, cv2.CV_16SC2)
undistorted_img = cv2.remap(img, map1, map2,
                            interpolation=cv2.INTER_LINEAR, 
                            borderMode=cv2.BORDER_CONSTANT)
,而在Python中,可能会提供有关该主题的进一步阅读。这似乎表明,一旦从fisheye::calibrate获得了K和D值,您就可以使用(注意,D可以是空的,就像在您的例子中一样)生成两个贴图,然后可以将扭曲的输入图像转换为去扭曲的输出图像(重新映射时的进一步阅读)

在python中(对于稍后查看此内容的任何人),这是这样做的:

ap1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3),
                                                K, DIM, cv2.CV_16SC2)
undistorted_img = cv2.remap(img, map1, map2,
                            interpolation=cv2.INTER_LINEAR, 
                            borderMode=cv2.BORDER_CONSTANT)

C++和C++ C++吗?你现在使用C++吗?我现在没有时间来追加C++的样本,但是我希望这能帮助你找到正确的路径。但很明显,这不是一个等矩形的图像。啊,我错了。我误解了你的问题,我没有时间来追加一个C++样本,但是我希望这能帮助你走上正确的道路。我已经提到过获得无失真的图像,这些步骤包括了你的建议。但很明显,这不是一个等矩形的图像。啊,我错了。我误解了你的问题。