Exemple #1
0
        public override IDisposable Load()
        {
            detector = new MarkerDetector();
            if (!string.IsNullOrEmpty(CameraParameters))
            {
                parameters = new CameraParameters();
                parameters.ReadFromXmlFile(CameraParameters);

                cameraMatrix = new CvMat(3, 3, CvMatDepth.CV_32F, 1);
                distortion   = new CvMat(1, 4, CvMatDepth.CV_32F, 1);
                parameters.CopyParameters(cameraMatrix.DangerousGetHandle(), distortion.DangerousGetHandle());
            }
            return(base.Load());
        }
Exemple #2
0
        public override MarkerFrame Process(IplImage input)
        {
            var hInput     = input.DangerousGetHandle();
            var hCamMatrix = cameraMatrix != null?cameraMatrix.DangerousGetHandle() : IntPtr.Zero;

            var hDistortion = distortion != null?distortion.DangerousGetHandle() : IntPtr.Zero;

            detector.ThresholdType    = ThresholdType;
            detector.Param1           = Param1;
            detector.Param2           = Param2;
            detector.CornerRefinement = CornerRefinement;

            var detectedMarkers = detector.Detect(hInput, hCamMatrix, hDistortion, MarkerSize);

            return(new MarkerFrame(parameters, detectedMarkers));
        }