1
$\begingroup$

Im using Raspberry Pi 4B, with Raspbian Buster and ROS Noetic. When I tried to compile my catkin ws with a cv_bridge package I got the following error:

CMake Error at vision_opencv/cv_bridge/CMakeLists.txt:31 (find_package): Could not find a package configuration file provided by "OpenCV" (requested version 3) with any of the following names:

OpenCVConfig.cmake
opencv-config.cmake

Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set "OpenCV_DIR" to a directory containing one of the above files. If "OpenCV" provides a separate development package or SDK, be sure it has been installed.

I have install opencv with the following command: sudo apt-get install libopencv-dev python3-opencv

Here is my CMakeLists.tx file in cv_bridge package:

cmake_minimum_required(VERSION 3.0.2)
project(cv_bridge)

find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs)

if(NOT ANDROID)
  find_package(PythonLibs)

  if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8")
    # Debian Buster
    find_package(Boost REQUIRED python3)
  #else()
    # Ubuntu Focal
    find_package(Boost REQUIRED python)
  endif()
#else()
find_package(Boost REQUIRED)
endif()


set(PYTHON_NUMPY_INCLUDE_DIR ~/.local/lib/python3.6/site-packages/numpy/core/include)
set(PYTHON_INCLUDE_DIR /usr/include/python3.6)

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
)

catkin_package(
  INCLUDE_DIRS include
  LIBRARIES ${PROJECT_NAME}
  CATKIN_DEPENDS rosconsole sensor_msgs
  DEPENDS OpenCV
  CFG_EXTRAS cv_bridge-extras.cmake
)

catkin_python_setup()

include_directories(include ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})

if(NOT ANDROID)
add_subdirectory(python)
endif()
add_subdirectory(src)
if(CATKIN_ENABLE_TESTING)
  add_subdirectory(test)
endif()

# install the include folder
install(
  DIRECTORY include/${PROJECT_NAME}/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)

Any help?

Thanks

$\endgroup$

1 Answer 1

0
$\begingroup$

The file OpenCVConfig.cmake is installed by libopencv-dev on Debian Buster arm64 file list so installing that package is the correct missing dependency.

You're now going to need to dig deeper to find out what your paths are that CMake is searching for and likely look into why it's not finding that version which is stated as being already installed on the system.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.