gpt4 book ai didi

java - openCV StereoCalibrate - 断言失败 (D1.empty() || (D1.total() == 4))

转载 作者:行者123 更新时间:2023-12-01 09:02:49 25 4
gpt4 key购买 nike

我正在使用 openCV 的 calibrateCamera() 来检索 distCoeffs,我想将其用作 stereoCalibrate() 的输入。但是调用 StereoCalibrate() 会给出以下错误消息:

OpenCV 错误:stereoCalibrate 中断言失败 (D1.empty() || (D1.total() == 4))

调试告诉我 D1.total() 是 5 并且它不为空。我没有修改 distCoeffs (D1),因此我认为它适合作为 stereoCalibrate() 的输入参数,无需进一步修改。

org.opencv.calib3d.Calib3d.calibrateCamera(objectPoints, cheesboardCornersList, chessboardImg.size(), intrMatrix1, distCoeffs1, rvecs1, tvecs1);

org.opencv.calib3d.Calib3d.calibrateCamera(objectPoints, cheesboardCornersList, chessboardImg.size(), intrMatrix2, distCoeffs2, rvecs2, tvecs2);

...

org.opencv.calib3d.Calib3d.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, intrMatrix1, distCoeffs1, intrMatrix2, distCoeffs2, img1.size(), R, T, org.opencv.calib3d.Calib3d.CALIB_FIX_INTRINSIC);

(Java、openCV 3.1)

最佳答案

我在使用 stereoCalibrate() 时遇到了完全相同的问题。但您可能会注意到 Calib3d 还有另一个版本的 stereoCalibrate

public static double stereoCalibrate(java.util.List<Mat> objectPoints,
java.util.List<Mat> imagePoints1,
java.util.List<Mat> imagePoints2,
Mat cameraMatrix1,
Mat distCoeffs1,
Mat cameraMatrix2,
Mat distCoeffs2,
Size imageSize,
Mat R,
Mat T,
Mat E,
Mat F)

look here

不同之处在于,该版本的方法还返回基本矩阵E和基本矩阵F。这对我有帮助。我使用了 bytedeco 中的 JavaCV 包装器,但我认为这并不重要 - native 方法是相同的。

关于java - openCV StereoCalibrate - 断言失败 (D1.empty() || (D1.total() == 4)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com