No se pudo encontrar el módulo FindOpenCV.cmake (Error en el proceso de configuración)

Escribí un CMakeLists.txt para un proyecto en C ++ , que utiliza las bibliotecas de OpenCV . Cuando bash crear el proyecto usando cmake, aparece el siguiente problema de configuración:

 CMake Error at CMakeLists.txt:15 (find_package): Could not find module FindOpenCV.cmake or a configuration file for package OpenCV. Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the directory containing a CMake configuration file for OpenCV. The file will have one of the following names: OpenCVConfig.cmake opencv-config.cmake 

El hecho es que tengo una variable de entorno para la ruta que uso en Visual Studio sin problemas. Si no incluyo OpenCV, puedo configurar y generar sin problemas, pero necesito resolver el problema. No entiendo por qué cmake no puede encontrar la ruta OpenCV o cómo solucionarla.

También utilicé las recomendaciones mencionadas en este enlace: FindOpenCV.cmake

¿Alguien tiene este problema también?

El error que está viendo es que CMake no puede encontrar un archivo FindOpenCV.cmake, porque cmake no incluye uno de fábrica. Por lo tanto, necesitas encontrar uno y ponerlo donde cmake pueda encontrarlo:

Puede encontrar un buen comienzo aquí . Si te sientes aventurero, también puedes escribir el tuyo.

A continuación, agréguela en algún lugar de su proyecto y ajuste CMAKE_MODULE_PATH para que cmake pueda encontrarla.

por ejemplo, si tiene

 CMakeLists.txt cmake-modules/FindOpenCV.cmake 

Entonces deberías hacer un

 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules) 

En su archivo CMakeLists.txt antes de hacer un paquete find_ (OpenCV)

Si está en Linux, solo tiene que completar la variable OpenCV_DIR con la ruta de opencv (que contiene el archivo OpenCVConfig.cmake)

 export OpenCV_DIR= 

Tenía exactamente el mismo problema. Lo arreglé agregando la siguiente línea a mi archivo FindOpenCV.cmake . Ponlo en cualquier lugar en la parte superior antes del rest del código.

 set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv 

Básicamente le está diciendo a FindOpenCV.cmake dónde encontrar los archivos de OpenCV suponiendo que la otra comstackción puede encontrar el FindOpenCV.cmake

buscar / -name “OpenCVConfig.cmake”

exportar OpenCV_DIR = / ruta / encontrado / arriba

  1. apt-get install libopencv-dev
  2. exportar OpenCV_DIR = / usr / share / OpenCV
  3. el encabezado del archivo cpp debe contener: #include #include “opencv2 / highgui / highgui.hpp”

#include #include

no original cv.h

Enfrenté el mismo error. En mi caso, este archivo “OpenCVConfig.cmake” se encuentra en / usr / local / share / OpenCV. En CMakeLists.txt agrega la línea

set(OpenCV_DIR /usr/local/share/OpenCV)

según lo sugerido por el mensaje de error.

si está en Windows, puede agregar la ruta de OpenCV a OpenCV_DIR usted mismo. (OpenCV_DIR está en la región roja)

el camino es como “D: / opencv244 / build”.

puede encontrar el archivo “OpenCVConfig.cmake” debajo de la ruta.

En mi máquina Fedora, cuando escribí “hacer” recibí un error que decía que no podía encontrar “cv.h”. Lo arreglé modificando mi archivo “OpenCVConfig.cmake”.

Antes de:

SET (OpenCV_INCLUDE_DIRS “$ {OpenCV_INSTALL_PATH} / include / opencv; $ {OpenCV_INSTALL_PATH} / include”)

SET (OpenCV_LIB_DIR “$ {OpenCV_INSTALL_PATH} / lib64”)

Después:

SET (OpenCV_INCLUDE_DIRS “/ usr / include / opencv; / usr / include / opencv2”)

SET (OpenCV_LIB_DIR “/ usr / lib64”)

Otra posibilidad es indicar dónde puede encontrar OpenCV_DIR en el archivo CMakeLists.txt. Por ejemplo, los siguientes scripts de cmake me funcionan:

 cmake_minimum_required(VERSION 2.8) project(performance_test) set(OpenCV_STATIC ON) set(OpenCV_CUDA OFF) set(OpenCV_DIR "${CMAKE_SOURCE_DIR}/../install") find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) link_directories(${OpenCV_LIB_DIR}) file(GLOB my_source_files ./src/*) add_executable( performance_test ${my_source_files}) target_link_libraries(performance_test ${OpenCV_LIBS}) 

Solo para recordarle que debe establecer OpenCV_STATIC y OpenCV_CUDA también antes de invocar OpenCVConfig.cmake . En mi caso, la biblioteca construida es una biblioteca estática que no usa CUDA.

Estoy usando Windows y obtengo el mismo mensaje de error. Encuentro otro problema que es relevante. Definí OpenCV_DIR en mi ruta al final de la línea. Sin embargo, cuando escribí “ruta” en la línea de comando, mi OpenCV_DIR no se mostró. Encontré porque Windows probablemente tiene un límite sobre cuánto tiempo puede ser la ruta, cortó mi OpenCV_DIR para que sea solo una parte de lo que definí. Así que eliminé alguna otra parte del camino, ahora funciona.

Tuve el mismo error, utilizo Windows. Agrego “C: \ opencv \ build” (carpeta opencv) a la ruta en el panel de control. Entonces, ¡eso está bien!

Seguí las respuestas de @hugh-pearse y @ leszek-hanusz, con un pequeño ajuste. Instalé opencv desde el repository de ubuntu 12.10 (libopencv- ) * y tuve el mismo problema. No se pudo resolver con la export OpenCV_DIR=/usr/share/OpenCV/ (desde mi OpenCVConfig.cmake whas allí). Fue resuelto cuando también cambié algunas líneas en el archivo OpenCVConfig.cmake:

 # ====================================================== # Include directories to add to the user project: # ====================================================== # Provide the include directories to the caller #SET(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}/include/opencv;${OpenCV_INSTALL_PATH}/include") SET(OpenCV_INCLUDE_DIRS "/usr/include/opencv;/usr/include/opencv2") INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) # ====================================================== # Link directories to add to the user project: # ====================================================== # Provide the libs directory anyway, it may be needed in some cases. #SET(OpenCV_LIB_DIR "${OpenCV_INSTALL_PATH}/lib") SET(OpenCV_LIB_DIR "/usr/lib") LINK_DIRECTORIES(${OpenCV_LIB_DIR}) 

Y eso funcionó en mi Ubuntu 12.10. Recuerde agregar las target_link_libraries(yourprojectname ${OpenCV_LIBS}) en su CMakeLists.txt.