コード例 #1
0
ファイル: VectorVec4i.cs プロジェクト: woym2008/ArucoUnity
            // Methods

            public Cv.Vec4i At(uint pos)
            {
                Cv.Exception exception = new Cv.Exception();
                Cv.Vec4i     element   = new Cv.Vec4i(au_std_vectorVec4i_at(CppPtr, pos, exception.CppPtr), DeleteResponsibility.False);
                exception.Check();
                return(element);
            }
コード例 #2
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
 public static void DrawDetectedDiamonds(Cv.Mat image, Std.VectorVectorPoint2f diamondCorners, Std.VectorVec4i diamondIds,
                                         Cv.Scalar borderColor)
 {
     Cv.Exception exception = new Cv.Exception();
     au_drawDetectedDiamonds(image.CppPtr, diamondCorners.CppPtr, diamondIds.CppPtr, borderColor.CppPtr, exception.CppPtr);
     exception.Check();
 }
コード例 #3
0
ファイル: Dictionary.cs プロジェクト: holyris/CodeMiner
            // Static methods

            static public Cv.Mat GetBitsFromByteList(Cv.Mat byteList, int markerSiz)
            {
                Cv.Exception exception = new Cv.Exception();
                Cv.Mat       bits      = new Cv.Mat(au_Dictionary_getBitsFromByteList(byteList.CppPtr, markerSiz, exception.CppPtr));
                exception.Check();
                return(bits);
            }
コード例 #4
0
ファイル: VectorPoint3f.cs プロジェクト: holyris/CodeMiner
            // Methods

            public Cv.Point3f At(uint pos)
            {
                Cv.Exception exception = new Cv.Exception();
                Cv.Point3f   element   = new Cv.Point3f(au_std_vectorPoint3f_at(CppPtr, pos, exception.CppPtr), Utility.DeleteResponsibility.False);
                exception.Check();
                return(element);
            }
コード例 #5
0
ファイル: ArucoUnity.cs プロジェクト: the6th/aruco-unity
 public static Dictionary GenerateCustomDictionary(int nMarkers, int markerSize, Dictionary baseDictionary)
 {
     Cv.Exception  exception     = new Cv.Exception();
     System.IntPtr dictionaryPtr = au_generateCustomDictionary(nMarkers, markerSize, baseDictionary.CppPtr, exception.CppPtr);
     exception.Check();
     return(new Dictionary(dictionaryPtr));
 }
コード例 #6
0
ファイル: VectorInt.cs プロジェクト: the6th/aruco-unity
                // Methods

                public int At(uint pos)
                {
                    Cv.Exception exception = new Cv.Exception();
                    int          element   = au_std_vectorInt_at(CppPtr, pos, exception.CppPtr);

                    exception.Check();
                    return(element);
                }
コード例 #7
0
            // Methods

            public double At(uint pos)
            {
                Cv.Exception exception = new Cv.Exception();
                double       element   = au_std_vectorDouble_at(CppPtr, pos, exception.CppPtr);

                exception.Check();
                return(element);
            }
コード例 #8
0
                // Static methods

                static public CharucoBoard Create(int squaresX, int squaresY, float squareLength, float markerLength, Dictionary dictionary)
                {
                    Cv.Exception  exception       = new Cv.Exception();
                    System.IntPtr charucoBoardPtr = au_CharucoBoard_create(squaresX, squaresY, squareLength, markerLength, dictionary.CppPtr,
                                                                           exception.CppPtr);
                    exception.Check();
                    return(new CharucoBoard(charucoBoardPtr));
                }
コード例 #9
0
ファイル: Dictionary.cs プロジェクト: holyris/CodeMiner
            public bool Identify(Dictionary dictionary, Cv.Mat onlyBits, out int idx, out int rotation, double maxCorrectionRate)
            {
                Cv.Exception exception = new Cv.Exception();
                bool         result    = au_Dictionary_identify(CppPtr, onlyBits.CppPtr, out idx, out rotation, maxCorrectionRate, exception.CppPtr);

                exception.Check();
                return(result);
            }
コード例 #10
0
ファイル: Dictionary.cs プロジェクト: holyris/CodeMiner
            public int GetDistanceToId(Dictionary dictionary, Cv.Mat bits, int id, bool allRotations = true)
            {
                Cv.Exception exception    = new Cv.Exception();
                int          distanceToId = au_Dictionary_getDistanceToId(CppPtr, bits.CppPtr, id, allRotations, exception.CppPtr);

                exception.Check();
                return(distanceToId);
            }
コード例 #11
0
ファイル: VectorVectorInt.cs プロジェクト: holyris/CodeMiner
            // Methods

            public VectorInt At(uint pos)
            {
                Cv.Exception exception = new Cv.Exception();
                VectorInt    element   = new VectorInt(au_std_vectorVectorInt_at(CppPtr, pos, exception.CppPtr), Utility.DeleteResponsibility.False);

                exception.Check();
                return(element);
            }
コード例 #12
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
 public static void RefineDetectedMarkers(Cv.Mat image, Board board, Std.VectorVectorPoint2f detectedCorners, Std.VectorInt detectedIds,
                                          Std.VectorVectorPoint2f rejectedCorners, Cv.Mat cameraMatrix, Cv.Mat distCoeffs, float minRepDistance, float errorCorrectionRate,
                                          bool checkAllOrders, Std.VectorInt recoveredIdxs, DetectorParameters parameters)
 {
     Cv.Exception exception = new Cv.Exception();
     au_refineDetectedMarkers(image.CppPtr, board.CppPtr, detectedCorners.CppPtr, detectedIds.CppPtr, rejectedCorners.CppPtr, cameraMatrix.CppPtr,
                              distCoeffs.CppPtr, minRepDistance, errorCorrectionRate, checkAllOrders, recoveredIdxs.CppPtr, parameters.CppPtr, exception.CppPtr);
     exception.Check();
 }
コード例 #13
0
ファイル: GridBoard.cs プロジェクト: the6th/aruco-unity
                // Static methods

                static public GridBoard Create(int markersX, int markersY, float markerLength, float markerSeparation, Dictionary dictionary,
                                               int firstMarker = 0)
                {
                    Cv.Exception  exception    = new Cv.Exception();
                    System.IntPtr gridBoardPtr = au_GridBoard_create(markersX, markersY, markerLength, markerSeparation, dictionary.CppPtr, firstMarker,
                                                                     exception.CppPtr);
                    exception.Check();
                    return(new GridBoard(gridBoardPtr));
                }
コード例 #14
0
            // Methods

            public VectorPoint2f At(uint pos)
            {
                Cv.Exception  exception = new Cv.Exception();
                VectorPoint2f element   = new VectorPoint2f(au_std_vectorVectorPoint2f_at(CppPtr, pos, exception.CppPtr),
                                                            DeleteResponsibility.False);

                exception.Check();
                return(element);
            }
コード例 #15
0
ファイル: GridBoard.cs プロジェクト: the6th/aruco-unity
                // Methods

                public void Draw(Cv.Size outSize, out Cv.Mat img, int marginSize = 0, int borderBits = 1)
                {
                    Cv.Exception  exception = new Cv.Exception();
                    System.IntPtr imgPtr;

                    au_GridBoard_draw(CppPtr, outSize.CppPtr, out imgPtr, marginSize, borderBits, exception.CppPtr);
                    img = new Cv.Mat(imgPtr);

                    exception.Check();
                }
コード例 #16
0
            // Methods

            public void DrawMarker(int id, int sidePixels, out Cv.Mat img, int borderBits)
            {
                var    exception = new Cv.Exception();
                IntPtr imgPtr;

                au_Dictionary_drawMarker(CppPtr, id, sidePixels, out imgPtr, borderBits, exception.CppPtr);
                img = new Cv.Mat(imgPtr);

                exception.Check();
            }
コード例 #17
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static void DrawCharucoDiamond(Dictionary dictionary, Cv.Vec4i ids, int squareLength, int markerLength, out Cv.Mat image,
                                              int marginSize = 0, int borderBits = 1)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       imagePtr;

            au_drawCharucoDiamond(dictionary.CppPtr, ids.CppPtr, squareLength, markerLength, out imagePtr, marginSize, borderBits, exception.CppPtr);
            image = new Cv.Mat(imagePtr);

            exception.Check();
        }
コード例 #18
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static void DetectMarkers(Cv.Mat image, Dictionary dictionary, out Std.VectorVectorPoint2f corners, out Std.VectorInt ids,
                                         DetectorParameters parameters, out Std.VectorVectorPoint2f rejectedImgPoints)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       cornersPtr, idsPtr, rejectedPtr;

            au_detectMarkers(image.CppPtr, dictionary.CppPtr, out cornersPtr, out idsPtr, parameters.CppPtr, out rejectedPtr, exception.CppPtr);
            corners           = new Std.VectorVectorPoint2f(cornersPtr);
            ids               = new Std.VectorInt(idsPtr);
            rejectedImgPoints = new Std.VectorVectorPoint2f(rejectedPtr);

            exception.Check();
        }
コード例 #19
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static void GetBoardObjectAndImagePoints(Board board, Std.VectorVectorPoint2f detectedCorners, Std.VectorInt detectedIds,
                                                        out Std.VectorPoint3f objPoints, out Std.VectorPoint2f imgPoints)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       objPointsPtr, imgPointsPtr;

            au_getBoardObjectAndImagePoints(board.CppPtr, detectedCorners.CppPtr, detectedIds.CppPtr, out objPointsPtr, out imgPointsPtr,
                                            exception.CppPtr);
            objPoints = new Std.VectorPoint3f(objPointsPtr);
            imgPoints = new Std.VectorPoint2f(imgPointsPtr);

            exception.Check();
        }
コード例 #20
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static void EstimatePoseSingleMarkers(Std.VectorVectorPoint2f corners, float markerLength, Cv.Mat cameraMatrix, Cv.Mat distCoeffs,
                                                     out Std.VectorVec3d rvecs, out Std.VectorVec3d tvecs)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       rvecsPtr, tvecsPtr;

            au_estimatePoseSingleMarkers(corners.CppPtr, markerLength, cameraMatrix.CppPtr, distCoeffs.CppPtr, out rvecsPtr, out tvecsPtr,
                                         exception.CppPtr);
            rvecs = new Std.VectorVec3d(rvecsPtr);
            tvecs = new Std.VectorVec3d(tvecsPtr);

            exception.Check();
        }
コード例 #21
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static void DetectCharucoDiamond(Cv.Mat image, Std.VectorVectorPoint2f markerCorners, Std.VectorInt markerIds,
                                                float squareMarkerLengthRate, out Std.VectorVectorPoint2f diamondCorners, out Std.VectorVec4i diamondIds, Cv.Mat cameraMatrix,
                                                Cv.Mat distCoeffs)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       diamondCornersPtr, diamondIdsPtr;

            au_detectCharucoDiamond(image.CppPtr, markerCorners.CppPtr, markerIds.CppPtr, squareMarkerLengthRate, out diamondCornersPtr,
                                    out diamondIdsPtr, cameraMatrix.CppPtr, distCoeffs.CppPtr, exception.CppPtr);
            diamondCorners = new Std.VectorVectorPoint2f(diamondCornersPtr);
            diamondIds     = new Std.VectorVec4i(diamondIdsPtr);

            exception.Check();
        }
コード例 #22
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static int EstimatePoseBoard(Std.VectorVectorPoint2f corners, Std.VectorInt ids, Board board, Cv.Mat cameraMatrix, Cv.Mat distCoeffs,
                                            out Cv.Vec3d rvec, out Cv.Vec3d tvec)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       rvecPtr, tvecPtr;

            int valid = au_estimatePoseBoard(corners.CppPtr, ids.CppPtr, board.CppPtr, cameraMatrix.CppPtr, distCoeffs.CppPtr, out rvecPtr, out tvecPtr,
                                             exception.CppPtr);

            rvec = new Cv.Vec3d(rvecPtr);
            tvec = new Cv.Vec3d(tvecPtr);

            exception.Check();
            return(valid);
        }
コード例 #23
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static int InterpolateCornersCharuco(Std.VectorVectorPoint2f markerCorners, Std.VectorInt markerIds, Cv.Mat image, CharucoBoard board,
                                                    out Std.VectorPoint2f charucoCorners, out Std.VectorInt charucoIds, Cv.Mat cameraMatrix, Cv.Mat distCoeffs)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       charucoCornersPtr, charucoIdsPtr;

            int interpolateCorners = au_interpolateCornersCharuco(markerCorners.CppPtr, markerIds.CppPtr, image.CppPtr, board.CppPtr,
                                                                  out charucoCornersPtr, out charucoIdsPtr, cameraMatrix.CppPtr, distCoeffs.CppPtr, exception.CppPtr);

            charucoCorners = new Std.VectorPoint2f(charucoCornersPtr);
            charucoIds     = new Std.VectorInt(charucoIdsPtr);
            exception.Check();

            return(interpolateCorners);
        }
コード例 #24
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static bool EstimatePoseCharucoBoard(Std.VectorPoint2f charucoCorners, Std.VectorInt charucoIds, CharucoBoard board,
                                                    Cv.Mat cameraMatrix, Cv.Mat distCoeffs, out Cv.Vec3d rvec, out Cv.Vec3d tvec)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       rvecPtr, tvecPtr;

            bool valid = au_estimatePoseCharucoBoard(charucoCorners.CppPtr, charucoIds.CppPtr, board.CppPtr, cameraMatrix.CppPtr, distCoeffs.CppPtr,
                                                     out rvecPtr, out tvecPtr, exception.CppPtr);

            rvec = new Cv.Vec3d(rvecPtr);
            tvec = new Cv.Vec3d(tvecPtr);

            exception.Check();
            return(valid);
        }
コード例 #25
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
        public static double CalibrateCameraCharuco(Std.VectorVectorPoint2f charucoCorners, Std.VectorVectorInt charucoIds, CharucoBoard board,
                                                    Cv.Size imageSize, Cv.Mat cameraMatrix, Cv.Mat distCoeffs, out Std.VectorMat rvecs, out Std.VectorMat tvecs, Cv.Calib flags,
                                                    Cv.TermCriteria criteria)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       rvecsPtr, tvecsPtr;

            double reProjectionError = au_calibrateCameraCharuco(charucoCorners.CppPtr, charucoIds.CppPtr, board.CppPtr, imageSize.CppPtr,
                                                                 cameraMatrix.CppPtr, distCoeffs.CppPtr, out rvecsPtr, out tvecsPtr, (int)flags, criteria.CppPtr, exception.CppPtr);

            rvecs = new Std.VectorMat(rvecsPtr);
            tvecs = new Std.VectorMat(tvecsPtr);

            exception.Check();
            return(reProjectionError);
        }
コード例 #26
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
 public static void DrawAxis(Cv.Mat image, Cv.Mat cameraMatrix, Cv.Mat distCoeffs, Cv.Vec3d rvec, Cv.Vec3d tvec, float length)
 {
     Cv.Exception exception = new Cv.Exception();
     au_drawAxis(image.CppPtr, cameraMatrix.CppPtr, distCoeffs.CppPtr, rvec.CppPtr, tvec.CppPtr, length, exception.CppPtr);
     exception.Check();
 }
コード例 #27
0
 public void Reserve(uint newCap)
 {
     Cv.Exception exception = new Cv.Exception();
     au_std_vectorDouble_reserve(CppPtr, newCap, exception.CppPtr);
     exception.Check();
 }
コード例 #28
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
 public static void DrawDetectedCornersCharuco(Cv.Mat image, Std.VectorPoint2f charucoCorners, Std.VectorInt charucoIds, Cv.Scalar cornerColor)
 {
     Cv.Exception exception = new Cv.Exception();
     au_drawDetectedCornersCharuco(image.CppPtr, charucoCorners.CppPtr, charucoIds.CppPtr, cornerColor.CppPtr, exception.CppPtr);
     exception.Check();
 }
コード例 #29
0
ファイル: Aruco.cs プロジェクト: holyris/CodeMiner
 public static void DrawDetectedMarkers(Cv.Mat image, Std.VectorVectorPoint2f corners, Std.VectorInt ids, Cv.Scalar borderColor)
 {
     Cv.Exception exception = new Cv.Exception();
     au_drawDetectedMarkers(image.CppPtr, corners.CppPtr, ids.CppPtr, borderColor.CppPtr, exception.CppPtr);
     exception.Check();
 }