【问题标题】:Correct spatial camera orientation正确的空间相机方向
【发布时间】:2013-05-06 20:14:24
【问题描述】:

我正在执行 OpenCV 校准示例中所述的相机校准(它适用于镜头校正)。另外我现在想做一个空间校正。意味着当相机不平行于棋盘时,我想获得使棋盘平行于相机所需的旋转。这就是我正在做的:

// calculate intrinsic matrix and distortion coefficients for lens correction and get
// the rotation "rotation"
cvCalibrateCamera2(object_points,image_points,point_counts,cvGetSize(gray_image),
                   intrinsic_matrix, distortion_coeffs,
                   rotation,NULL,
                   0);
...
// convert the rotation to a 3x3 matrix
cv::Rodrigues(rotation,rotMtx,cv::noArray());
// generate maps for lens correction
cv::initUndistortRectifyMap(intrinsic,distortion,cv::Mat(),
                            cv::getOptimalNewCameraMatrix(intrinsic,distortion,imageSize,1,imageSize,0),
                                                         imageSize, CV_16SC2,*handle->mapx,*handle->mapy);
...
// perform lens correction
cv::remap(cv::Mat(sImage),dImage,*handle->mapx,*handle->mapy,cv::INTER_LINEAR);
...
// apply the rotation to make the mage parallel to the camera
cv::warpPerspective(dImage,dImage2,rotMtx,cv::Size(handle->width,handle->height),cv::INTER_LANCZOS4,cv::BORDER_TRANSPARENT,cv::Scalar());

由 cvCalibrateCamera2() 返回的旋转 3x1 旋转值是 !=0,所以返回了一些东西。但是 warpPerspective() 不会旋转图像。

这里有什么问题?我应该如何正确“并行化”图像?

【问题讨论】:

    标签: opencv matrix rotation camera-calibration


    【解决方案1】:

    根据我对该主题的理解,您用于“并行化”图像的旋转矩阵提供了两个图像平面之间的旋转。您正在寻找的是从图像平面到相机平面的转换。这需要计算平面之间的单应性。您需要弄清楚是什么矩阵将您从图像平面带到相机平面。使用此矩阵来并行化您的图像。

    此外,calibrateCamera 为您提供前向转换,以返回到您需要反转矩阵的原始位置。

    试试看这个 - Homography

    提示:使用焦距和主点信息在图像和相机平面之间移动。

    【讨论】:

    • warpPerspective() 对变换根本不做任何事情,所以它似乎不是(非)逆矩阵的问题。
    • 再一次,您不能像 Rodrigues 函数调用那样使用“rotMtx”。您需要使用相机的焦距和主要点首先计算一个 3x3 单应性矩阵。使用此矩阵进行转换。
    • 但是...... cvCalibrateCamera2() 返回什么样的旋转 - 它可以用来做什么?
    • cvCalibrateCamera2() 返回 2 个图像平面之间的旋转 - 例如您从一个角度拍摄棋盘的照片,然后形成另一个角度 - 该功能为您提供第二张图像 w.r.t 的旋转。要找到第一张图像相对于相机平面本身的旋转,您需要使用焦距和主点计算旋转和/或平移。
    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 2016-06-08
    • 1970-01-01
    • 2013-04-18
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多