OpenCVForUnity icon indicating copy to clipboard operation
OpenCVForUnity copied to clipboard

My cods does not work ,errors in StereoCalibrate Input vars objectPlist ,imagePlistL ,imagePlistR . What's wrong with this?

Open GaoYue102 opened this issue 3 years ago • 0 comments

My cods does not work ,errors in StereoCalibrate Input vars objectPlist ,imagePlistL ,imagePlistR . What's wrong with this?

List<List> objectPlist = new List<List>(); ; List<List> imagePlistL = new List<List>(); List<List> imagePlistR = new List<List>();

bool found = Cv2.FindChessboardCorners(CalImgL, boardSize, out pointBuf, ChessboardFlags.AdaptiveThresh | ChessboardFlags.NormalizeImage); if (found == true) { Mat viewGray = new Mat(); Cv2.CvtColor(CalImgL, viewGray, ColorConversionCodes.BGR2GRAY); Cv2.CornerSubPix(viewGray, pointBuf, new OpenCvSharp.Size(11, 11), new OpenCvSharp.Size(-1, -1), new TermCriteria(CriteriaTypes.Eps | CriteriaTypes.Count, 30, 0.0001)); imagePlistL.Add(pointBuf.ToList()); } found = Cv2.FindChessboardCorners(CalImgR, boardSize, out pointBuf, ChessboardFlags.AdaptiveThresh | ChessboardFlags.NormalizeImage); if (found == true) { Mat viewGray = new Mat(); Cv2.CvtColor(CalImgR, viewGray, ColorConversionCodes.BGR2GRAY); Cv2.CornerSubPix(viewGray, pointBuf, new OpenCvSharp.Size(11, 11), new OpenCvSharp.Size(-1, -1), new TermCriteria(CriteriaTypes.Eps | CriteriaTypes.Count, 30, 0.0001)); imagePlistR.Add(pointBuf.ToList()); }

Point3f[] tp = new Point3f[boardSize.Height * boardSize.Width];

    for (int i = 0; i < boardSize.Height; i++)
    {
        for (int j = 0; j < boardSize.Width; j++)
        {
            tp[i * boardSize.Width + j] = new Point3f(j * squareSize, i * squareSize, 0);
            objectPlist.Add(tp.ToList());
        }
    }

double rms = Cv2.StereoCalibrate(objectPlist, imagePlistL, imagePlistR, cameraMatrix[0], distCoeffs[0], cameraMatrix[1], distCoeffs[1], imageSize, R, T, E, F, CalibrationFlags.ZeroTangentDist | CalibrationFlags.FixFocalLength | CalibrationFlags.UseIntrinsicGuess | CalibrationFlags.RationalModel | CalibrationFlags.FixK3 | CalibrationFlags.FixK4 | CalibrationFlags.FixK5, new TermCriteria(OpenCvSharp.CriteriaTypes.Count | OpenCvSharp.CriteriaTypes.Eps, 100, 0.000001));

Originally posted by @GaoYue102 in https://github.com/EnoxSoftware/OpenCVForUnity/issues/128#issuecomment-1009700829

GaoYue102 avatar Jan 11 '22 08:01 GaoYue102