Skip to content

error: ‘detectMarkers’ is not a member of ‘cv::aruco’ when compiling OpenCvSharpExtern #1796

@ShuhuaGao

Description

@ShuhuaGao

Env: OpenCV 4.11 installed on ARM64, and I try to compile OpenCVSharp 4.11 from source.

Error:

[  2%] Building CXX object OpenCvSharpExtern/CMakeFiles/OpenCvSharpExtern.dir/aruco.cpp.o
In file included from /home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.cpp:1:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h: In function ‘ExceptionStatus aruco_detectMa                rkers(cv::_InputArray*, cv::aruco::Dictionary*, std::vector<std::vector<cv::Point_<float> > >*, std::                vector<int>*, aruco_DetectorParameters*, std::vector<std::vector<cv::Point_<float> > >*)’:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h:119:20: error: ‘detectMarkers’ is not a memb                er of ‘cv::aruco’; did you mean ‘drawDetectedMarkers’?
  119 |         cv::aruco::detectMarkers(*image, d, *corners, *ids, pp, *rejectedImgPoints);
      |                    ^~~~~~~~~~~~~
      |                    drawDetectedMarkers
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h: In function ‘ExceptionStatus aruco_estimate                PoseSingleMarkers(cv::Point2f**, int, int*, float, cv::_InputArray*, cv::_InputArray*, cv::_OutputArr                ay*, cv::_OutputArray*, cv::_OutputArray*)’:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h:137:20: error: ‘estimatePoseSingleMarkers’ i                s not a member of ‘cv::aruco’
  137 |         cv::aruco::estimatePoseSingleMarkers(cornersVec, markerLength, *cameraMatrix, *distCo                effs, *rvecs, *tvecs, entity(objPoints));
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.cpp:1:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h: In function ‘ExceptionStatus aruco_detectCh                arucoDiamond(cv::_InputArray*, cv::Point2f**, int, int*, std::vector<int>*, float, std::vector<std::v                ector<cv::Point_<float> > >*, std::vector<cv::Vec<int, 4> >*, cv::_InputArray*, cv::_InputArray*)’:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h:280:20: error: ‘detectCharucoDiamond’ is not                 a member of ‘cv::aruco’
  280 |         cv::aruco::detectCharucoDiamond(*image, markerCornerVec, *markerIds, squareMarkerLeng                thRate,
      |                    ^~~~~~~~~~~~~~~~~~~~
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h: In function ‘ExceptionStatus aruco_interpol                ateCornersCharuco(cv::_InputArray*, int, int, float, float, int, cv::Point2f**, int, int*, std::vecto                r<int>*, std::vector<cv::Point_<float> >*, std::vector<int>*)’:
/home/gsh/temp/opencvsharp/src/OpenCvSharpExtern/aruco.h:356:20: error: ‘interpolateCornersCharuco’ i                s not a member of ‘cv::aruco’
  356 |         cv::aruco::interpolateCornersCharuco(markerCornerVec, *markerIds, *image, ptr_charuco                Board, charucoCorners_mat, charucoIds_mat);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [OpenCvSharpExtern/CMakeFiles/OpenCvSharpExtern.dir/build.make:76: OpenCvSharpExtern/CMa                keFiles/OpenCvSharpExtern.dir/aruco.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:98: OpenCvSharpExtern/CMakeFiles/OpenCvSharpExtern.dir/all] Error                 2
make: *** [Makefile:136: all] Error 2

It seems the API of the aruco module has changed since v4.7. Taking detectMarkers as an example, see the v4.6 API cv::aruco::detectMarkers and the v4.7 API afterwards void cv::aruco::ArucoDetector::detectMarkers.

I am wondering how to build OpenCvSharpExtern from source.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions