让我们先说我有一个静态图像,叫做leftFrame
。
此帧被传递给方法cv2.remap(leftFrame, map1, map2, cv2.INTER_LANCZ0S4,0)
,以便将原始图像(leftFrame
)中的每个像素重新分配到新位置。由于map1和map2是从cv2.initUndistortRectifyMap(MLS, dLS, RL, PL,imgShape,cv2.CV_16SC2)
输出的,因此之前已经计算过MLS、dLS、RL和PL。
事情做得很好,
但是,现在我只想获得新帧中单个点的对应像素坐标,给定该点在初始原始帧中的原始像素坐标(leftFrame)。
我怎样才能做到这一点?
代码简化如下:
Left_Stereo_Map = cv2.initUndistortRectifyMap(MLS, dLS, RL, PL,imgShape,cv2.CV_16SC2)
leftCap = cv2.VideoCapture(PORT)
while (True):
# Collect image continously
ret1, leftFrame = leftCap.read()
Left_nice = cv2.remap(leftFrame, Left_Stereo_Map[0], Left_Stereo_Map[1], cv2.INTER_LANCZOS4, cv2.BORDER_CONSTANT, 0)
original_x = PREDEFINED_X
original_y = PREDEFINED_Y
x_after = ?
y_after = ?
cv2.waitkey(1)
感谢大家花时间阅读这个问题。祝你在这段时间里平安!
发布于 2020-08-31 23:59:27
最简单的解决方案是在相反的方向上单独调用initUndistortRectifyMap。返回的map1/2包含所需的映射,分别对应于x和y坐标。
https://stackoverflow.com/questions/63654595
复制相似问题