Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opencv4 error #42

Open
AxelCORNILLEAU opened this issue Feb 12, 2024 · 0 comments
Open

Opencv4 error #42

AxelCORNILLEAU opened this issue Feb 12, 2024 · 0 comments

Comments

@AxelCORNILLEAU
Copy link

Ros Noetic
Ubuntu 20.04
OpenCV4 with cuda 11.4
Cv_bridge from source built with the above OpenCV

Error with catkin_make :

/home/axel/catkin_ws/src/costmap_converter/src/costmap_to_dynamic_obstacles/blob_detector.cpp: In static member function ‘static cv::Ptr<BlobDetector> BlobDetector::create(const cv::SimpleBlobDetector::Params&)’:
/home/axel/catkin_ws/src/costmap_converter/src/costmap_to_dynamic_obstacles/blob_detector.cpp:9:56: error: invalid new-expression of abstract class type ‘BlobDetector’
    9 |   return cv::Ptr<BlobDetector> (new BlobDetector(params)); // compatibility with older versions
      |                                                        ^
In file included from /home/axel/catkin_ws/src/costmap_converter/src/costmap_to_dynamic_obstacles/blob_detector.cpp:1:
/home/axel/catkin_ws/src/costmap_converter/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h:60:7: note:   because the following virtual functions are pure within ‘BlobDetector’:
   60 | class BlobDetector : public cv::SimpleBlobDetector
      |       ^~~~~~~~~~~~
In file included from /usr/local/include/opencv4/opencv2/features2d/features2d.hpp:48,
                 from /home/axel/catkin_ws/src/costmap_converter/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h:48,
                 from /home/axel/catkin_ws/src/costmap_converter/src/costmap_to_dynamic_obstacles/blob_detector.cpp:1:
/usr/local/include/opencv4/opencv2/features2d.hpp:789:24: note:         ‘virtual void cv::SimpleBlobDetector::setParams(const cv::SimpleBlobDetector::Params&)’
  789 |   CV_WRAP virtual void setParams(const SimpleBlobDetector::Params& params ) = 0;
      |                        ^~~~~~~~~
/usr/local/include/opencv4/opencv2/features2d.hpp:790:46: note:         ‘virtual cv::SimpleBlobDetector::Params cv::SimpleBlobDetector::getParams() const’
  790 |   CV_WRAP virtual SimpleBlobDetector::Params getParams() const = 0;
      |                                              ^~~~~~~~~
make[2]: *** [costmap_converter/CMakeFiles/costmap_converter.dir/build.make:141: costmap_converter/CMakeFiles/costmap_converter.dir/src/costmap_to_dynamic_obstacles/blob_detector.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:31884: costmap_converter/CMakeFiles/costmap_converter.dir/all] Error 2

I also added in the CMakelist.txt just to be sure :

set(_opencv_version 4)
find_package(OpenCV 4 QUIET)
if(NOT OpenCV_FOUND)
  message(STATUS "Did not find OpenCV 4, trying OpenCV 3")
  set(_opencv_version 3)
endif()

find_package(OpenCV ${_opencv_version} REQUIRED
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)

which confirmed :

-- +++ processing catkin package: 'costmap_converter'
-- ==> add_subdirectory(costmap_converter)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found OpenCV: /usr/local (found suitable version "4.8.0", minimum required is "4") found components: opencv_core opencv_imgproc opencv_imgcodecs 
-- costmap_converter: 2 messages, 0 services

Any hints for a fix ? Am I the only one who builds everything from source ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant