예제 #1
0
        public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2,
                                         Size imageSize, Mat rotationMatrix,
                                         Vec3d tvec, out Mat rectificationMatrix1, out Mat rectificationMatrix2, out Mat projectionMatrix1,
                                         out Mat projectionMatrix2,
                                         out Mat disparityMatrix, StereoRectifyFlags flags, double scalingFactor, Size newImageSize,
                                         Rect validPixROI1, Rect validPixROI2)
        {
            var    exception = new Exception();
            IntPtr rectificationMatrix1Ptr,
                   rectificationMatrix2Ptr,
                   projectionMatrix1Ptr,
                   projectionMatrix2Ptr,
                   disparityMatrixPtr;

            au_cv_calib3d_stereoRectify(cameraMatrix1.CppPtr, distCoeffs1.CppPtr, cameraMatrix2.CppPtr,
                                        distCoeffs2.CppPtr, imageSize.CppPtr,
                                        rotationMatrix.CppPtr, tvec.CppPtr, out rectificationMatrix1Ptr, out rectificationMatrix2Ptr,
                                        out projectionMatrix1Ptr,
                                        out projectionMatrix2Ptr, out disparityMatrixPtr, (int)flags, scalingFactor, newImageSize.CppPtr,
                                        validPixROI1.CppPtr,
                                        validPixROI2.CppPtr, exception.CppPtr);
            rectificationMatrix1 = new Mat(rectificationMatrix1Ptr);
            rectificationMatrix2 = new Mat(rectificationMatrix2Ptr);
            projectionMatrix1    = new Mat(projectionMatrix1Ptr);
            projectionMatrix2    = new Mat(projectionMatrix2Ptr);
            disparityMatrix      = new Mat(disparityMatrixPtr);

            exception.Check();
        }
예제 #2
0
            public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2, Size imageSize, Mat rotationMatrix,
                                             Vec3d tvec, out Mat rectificationMatrix1, out Mat rectificationMatrix2, out Mat projectionMatrix1, out Mat projectionMatrix2,
                                             out Mat disparityMatrix, StereoRectifyFlags flags = StereoRectifyFlags.ZeroDisparity, double scalingFactor = -1)
            {
                Size newImageSize = new Size();

                StereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, rotationMatrix, tvec, out rectificationMatrix1,
                              out rectificationMatrix2, out projectionMatrix1, out projectionMatrix2, out disparityMatrix, flags, scalingFactor, newImageSize);
            }
예제 #3
0
            public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2, Size imageSize, Mat rotationMatrix,
                                             Vec3d tvec, out Mat rectificationMatrix1, out Mat rectificationMatrix2, out Mat projectionMatrix1, out Mat projectionMatrix2,
                                             out Mat disparityMatrix, StereoRectifyFlags flags, double scalingFactor, Size newImageSize)
            {
                Rect validPixROI1 = new Rect();

                StereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, rotationMatrix, tvec, out rectificationMatrix1,
                              out rectificationMatrix2, out projectionMatrix1, out projectionMatrix2, out disparityMatrix, flags, scalingFactor, newImageSize,
                              validPixROI1);
            }
예제 #4
0
            public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2, Size imageSize, Vec3d rvec, Vec3d tvec,
                                             out Mat R1, out Mat R2, out Mat P1, out Mat P2, out Mat Q, StereoRectifyFlags flags = StereoRectifyFlags.ZeroDisparity, double alpha = -1)
            {
                Size newImageSize = new Size();

                StereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, tvec, tvec, out R1, out R2, out P1, out P2, out Q, flags,
                              alpha, newImageSize);
            }
예제 #5
0
            public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2, Size imageSize, Vec3d rvec, Vec3d tvec,
                                             out Mat R1, out Mat R2, out Mat P1, out Mat P2, out Mat Q, StereoRectifyFlags flags, double alpha, Size newImageSize)
            {
                Rect validPixROI1 = new Rect();

                StereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, tvec, tvec, out R1, out R2, out P1, out P2, out Q, flags,
                              alpha, newImageSize, validPixROI1);
            }
예제 #6
0
            public static void StereoRectify(Mat cameraMatrix1, Mat distCoeffs1, Mat cameraMatrix2, Mat distCoeffs2, Size imageSize, Vec3d rvec, Vec3d tvec,
                                             out Mat R1, out Mat R2, out Mat P1, out Mat P2, out Mat Q, StereoRectifyFlags flags, double alpha, Size newImageSize, Rect validPixROI1,
                                             Rect validPixROI2)
            {
                Exception exception = new Exception();

                System.IntPtr R1Ptr, R2Ptr, P1Ptr, P2Ptr, QPtr;

                au_cv_calib3d_stereoRectify(cameraMatrix1.CppPtr, distCoeffs1.CppPtr, cameraMatrix2.CppPtr, distCoeffs2.CppPtr, imageSize.CppPtr,
                                            rvec.CppPtr, tvec.CppPtr, out R1Ptr, out R2Ptr, out P1Ptr, out P2Ptr, out QPtr, (int)flags, alpha, newImageSize.CppPtr,
                                            validPixROI1.CppPtr, validPixROI2.CppPtr, exception.CppPtr);
                R1 = new Mat(R1Ptr);
                R2 = new Mat(R2Ptr);
                P1 = new Mat(P1Ptr);
                P2 = new Mat(P2Ptr);
                Q  = new Mat(QPtr);

                exception.Check();
            }