public MarkerResult[] FindMarkers(Bitmap image) { Image <Bgr, byte> openCVImage = new Image <Bgr, byte>(image); Dictionary.PredefinedDictionaryName name = new Dictionary.PredefinedDictionaryName(); Dictionary Dict = new Dictionary(name); VectorOfVectorOfPointF Corners = new VectorOfVectorOfPointF(); VectorOfInt Ids = new VectorOfInt(); DetectorParameters Parameters = DetectorParameters.GetDefault(); VectorOfVectorOfPointF Rejected = new VectorOfVectorOfPointF(); ArucoInvoke.DetectMarkers(openCVImage, Dict, Corners, Ids, Parameters, Rejected); var markers = new MarkerResult[Corners.Size]; for (int i = 0; i < Corners.Size; i++) { var markerCorners = new Vector2[4]; for (int y = 0; y < 4; y++) { markerCorners[y] = new Vector2(Corners[i][y].X, Corners[i][y].Y); } markers[i] = new MarkerResult(Ids[i], markerCorners); } return(markers); }
internal static extern IntPtr cveArucoGetPredefinedDictionary(Dictionary.PredefinedDictionaryName name, ref IntPtr sharedPtr);
internal static extern IntPtr cveArucoGetPredefinedDictionary(Dictionary.PredefinedDictionaryName name);