如何避免由于cv2.undistort引起的延迟?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免由于cv2.undistort引起的延迟?相关的知识,希望对你有一定的参考价值。

我正在python中使用OpenCV来跟踪对象。首先,我应该校准摄像机,找到属性后,我应该找到对象的精确位置,并且应该是实时的

我找到了此代码

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None)
.
.
.

# undistort
dst = cv2.undistort(img, mtx, dist, None, newcameramtx)

因此,根据此代码,我应该使每一帧都保持不失真,这非常耗时,有什么方法可以设置相机参数然后使用机器视觉?或其他方式?

答案

undistort的问题在于,每次调用映射时,它都会重新计算从扭曲像素到未扭曲像素的映射。您只需要计算一次坐标变换。您只需要使用cv.initUndistortRectifyMap进行计算即可,它会返回相应的映射(请参见此处的documentation)。然后,您可以使用功能cv.remap

以上是关于如何避免由于cv2.undistort引起的延迟?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免计算由 SUM() 内部的连接引起的行?

如何避免由 Friend 属性引起的间接引用?

Firestore + Vue:刷新页面时,如何避免数据显示延迟?

如何避免双向绑定的摘要周期延迟

如何避免 UWP TCP 客户端的延迟?

如何避免 Spotify 应用程序中同步 Web 服务调用的延迟?