cv2.calibrateCamera函数

复制代码
ret, mtx, dist, r_vecs, t_vecs = cv2.calibrateCamera(obj_points, img_points, size, None, None)

这个函数里的obj_points和img_points是同一相机不同视角下20张图片的角点,那这个函数返回的旋转向量r_vecs和位置矢量t_vecs是指什么,因为20张图像,棋盘格码的位置都不一样,它这个返回的旋转向量和位置矢量是指哪一张图?

在 cv2.calibrateCamera 函数中,obj_points 和 img_points 包含了同一相机不同位置拍摄chessboard时获取的三维点和二维点。

这个函数会利用所有的点对进行相机标定,返回的标定结果适用于所有的图片,而不是仅针对单张图片。具体来说:

  • r_vecs: 是一个旋转向量数组,长度为图片张数,表示每张图片相对于第一个画面的旋转变换。

  • t_vecs: 是一个位移向量数组,长度也是图片张数,表示每张图片相机光心相对于第一个画面的位置变换。- mtx: 是相机的内参矩阵,针对所有的图片通用。

  • dist: 是相机的畸变系数,也是通用的。所以标定结果是针对该相机的整体参数,而不是仅针对某一张特定图片的。r_vecs和t_vecs表示了每张图片相对于第一个画面的位姿变换,配合内参矩阵mtx可以将图像点反投影到三维空间中。要为特定一张图片生成投影矩阵,需要选择对应的r_vecs[i]和t_vecs[i],结合mtx来生成即可

相关推荐
阿蒙Amon1 天前
【Python小工具】使用 OpenCV 获取视频时长的详细指南
python·opencv·音视频
慕婉03071 天前
OpenCV图像边缘检测
人工智能·opencv·计算机视觉
jndingxin1 天前
OpenCV中超分辨率(Super Resolution)模块类cv::dnn_superres::DnnSuperResImpl
人工智能·opencv·dnn
Edward-tan1 天前
基于 opencv+yolov8+easyocr的车牌追踪识别
python·opencv·ocr·yolov8
jndingxin2 天前
OpenCV CUDA模块设备层-----反向二值化阈值处理函数thresh_binary_inv_func()
人工智能·opencv·计算机视觉
jndingxin2 天前
OpenCV CUDA模块设备层-----在 GPU 上执行类似于 std::copy 的操作函数warpCopy()
人工智能·opencv·计算机视觉
晓13132 天前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
jndingxin2 天前
OpenCV CUDA模块设备层-----在GPU 上高效地执行两个 uint 类型值的最大值比较函数vmax2()
人工智能·opencv·计算机视觉
luofeiju2 天前
RGB下的色彩变换:用线性代数解构色彩世界
图像处理·人工智能·opencv·线性代数
Echo``12 天前
12.OpenCV—基础入门
开发语言·c++·人工智能·qt·opencv·计算机视觉