我的图像变形了,我想重新映射一个点而不是整个图像。换句话说,知道失真图像中的(x,y),未失真图像中的新位置是什么?
此链接中还有一个使用C ++的类似问题:Can I get the point position using remap in OpenCV
但是,在我的情况下,(map1(x,y),map2(x,y))的值并不代表新位置。此外,map1(x,y)是两个值的数组。
那两条线完美地工作,但是它们映射了整个图像。
python:
map1, map2 = cv2.fisheye.initUndistortRectifyMap(scaled_K, D, np.eye(3), new_K, dim3, cv2.CV_16SC2)
undistorted_img = cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)