opencv-mobile icon indicating copy to clipboard operation
opencv-mobile copied to clipboard

Adding calib3d module from sources

Open sebinho opened this issue 1 year ago • 0 comments

Hi All,

I am trying to recompile opencv-mobile by adding some missing modules. The module I need is calib3d so I added changed the following lines in options.txt:

-DBUILD_opencv_calib3d=ON
-DBUILD_opencv_flann=ON

But when I compile it with the recommended call

cmake -DCMAKE_INSTALL_PREFIX=install   -DCMAKE_BUILD_TYPE=Debug   `cat ../options.txt`   -DBUILD_opencv_world=OFF ..
make -j8

I get the following compilation error:

[ 76%] Linking CXX static library ../../lib/libopencv_highgui.a
[ 76%] Built target opencv_highgui
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp: In member function ‘virtual void cv::FlannBasedMatcher::add(cv::InputArrayOfArrays)’:
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1061:22: error: ‘const class cv::_InputArray’ has no member named ‘isUMatVector’; did you mean ‘isMatVector’?
 1061 |     if( _descriptors.isUMatVector() )
      |                      ^~~~~~~~~~~~
      |                      isMatVector
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1063:21: error: ‘UMat’ was not declared in this scope; did you mean ‘Mat’?
 1063 |         std::vector<UMat> descriptors;
      |                     ^~~~
      |                     Mat
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1063:25: error: template argument 1 is invalid
 1063 |         std::vector<UMat> descriptors;
      |                         ^
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1063:25: error: template argument 2 is invalid
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1064:22: error: ‘const class cv::_InputArray’ has no member named ‘getUMatVector’; did you mean ‘getMatVector’?
 1064 |         _descriptors.getUMatVector( descriptors );
      |                      ^~~~~~~~~~~~~
      |                      getMatVector
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1066:44: error: request for member ‘size’ in ‘descriptors’, which is of non-class type ‘int’
 1066 |         for( size_t i = 0; i < descriptors.size(); i++ )
      |                                            ^~~~
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1068:42: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
 1068 |             addedDescCount += descriptors[i].rows;
      |                                          ^
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1071:27: error: ‘const class cv::_InputArray’ has no member named ‘isUMat’; did you mean ‘isMat’?
 1071 |     else if( _descriptors.isUMat() )
      |                           ^~~~~~
      |                           isMat
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1073:40: error: ‘const class cv::_InputArray’ has no member named ‘getUMat’; did you mean ‘getMat’?
 1073 |         addedDescCount += _descriptors.getUMat().rows;
      |                                        ^~~~~~~
      |                                        getMat
In file included from /home/zed/repos/opencv-mobile-4.10.0/modules/core/include/opencv2/core.hpp:53,
                 from /home/zed/repos/opencv-mobile-4.10.0/modules/features2d/include/opencv2/features2d.hpp:47,
                 from /home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/precomp.hpp:46,
                 from /home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:42:
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1090:33: error: ‘const class cv::_InputArray’ has no member named ‘isUMat’; did you mean ‘isMat’?
 1090 |         CV_Assert( _descriptors.isUMat() || _descriptors.isUMatVector() || _descriptors.isMat() || _descriptors.isMatVector() );
      |                                 ^~~~~~
/home/zed/repos/opencv-mobile-4.10.0/modules/core/include/opencv2/core/base.hpp:342:38: note: in definition of macro ‘CV_Assert’
  342 | #define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
      |                                      ^~~~
/home/zed/repos/opencv-mobile-4.10.0/modules/features2d/src/matchers.cpp:1090:58: error: ‘const class cv::_InputArray’ has no member named ‘isUMatVector’; did you mean ‘isMatVector’?
 1090 |         CV_Assert( _descriptors.isUMat() || _descriptors.isUMatVector() || _descriptors.isMat() || _descriptors.isMatVector() );
      |                                                          ^~~~~~~~~~~~
/home/zed/repos/opencv-mobile-4.10.0/modules/core/include/opencv2/core/base.hpp:342:38: note: in definition of macro ‘CV_Assert’
  342 | #define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
      |                                      ^~~~
make[2]: *** [modules/features2d/CMakeFiles/opencv_features2d.dir/build.make:370: modules/features2d/CMakeFiles/opencv_features2d.dir/src/matchers.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 76%] Linking CXX static library ../../lib/libopencv_photo.a
[ 76%] Built target opencv_photo
make[1]: *** [CMakeFiles/Makefile2:742: modules/features2d/CMakeFiles/opencv_features2d.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

Any idea on how to get pass these errors? When I don't try to add calib3d it does compile without errors. Thanks for your help

sebinho avatar Oct 21 '24 20:10 sebinho