c++ opencv cmake makefile

c++ - Error de OpenCV GTK+2.x



cmake makefile (6)

@ oxydron / Elliott Miller: Tengo el entorno Ubuntu 16.04 LTS con gtk 3 preinstalado. Tengo el mismo error para la compilación de Caffe (rama principal), pruebe los siguientes pasos, puede ser que debería funcionar para usted.

sudo apt-get install libgtk-3-dev cmake .. (WITH_GTK=ON and other settings), make

Y bingo, el error desapareció ... en mi código de Caffe Python

Tenga en cuenta:

La configuración CMAKE debe reflejar GTK + 3.x en lugar de GTK + 2.x

GUI: -- QT: NO -- GTK+ 3.x: YES (ver 3.18.9) -- GThread : YES (ver 2.48.2) -- GtkGlExt: NO -- OpenGL support: NO -- VTK support: NO

Había instalado OpenCV siguiendo estos pasos (). Después de tratar de compilar un ejemplo, obtuve este error:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/nick/.Apps/opencv/modules/highgui/src/window.cpp, line 516 terminate called after throwing an instance of ''cv::Exception'' what(): /home/nick/.Apps/opencv/modules/highgui/src/window.cpp:516: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.4) project(threadTest) find_package( OpenCV REQUIRED ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pthread") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/home/nick/ClionProjects/threadTest") set(SOURCE_FILES main.cpp) add_executable(threadTest ${SOURCE_FILES}) target_link_libraries( threadTest ${OpenCV_LIBS} )

¿Cómo resolverlo?


He solucionado este problema reemplazando

cvDestroyWindow("showImage");

por

cvDestroyWindow("ShowImage");


Para mejorar la respuesta de @Nic Szer, no quiero explicar cómo solucionar este error en Mac OS en tres sencillos pasos.

1.Retire la versión de OpenCV instalada para evitar problemas después

pip3 uninstall opencv-python

2. Baja tu versión de Python a 3.5 (la versión actual 3.6 tiene diferentes problemas con la conda, que usaremos para instalar OpenCV)

conda install python=3.5

3. Por último, use conda, para instalar la versión de trabajo de OpenCV

conda install -c menpo opencv3

Y luego voila: OpenCV comenzará a trabajar en su Mac OS (Siera 10.12.4).


Primero compruebe si libgtk2.0-dev está instalado correctamente. Si ha instalado aptitude package manager, ejecute lo siguiente:

sudo aptitude search libgtk2.0-dev

Debería volver así:

i libgtk2.0-dev - development files for the GTK+ library p libgtk2.0-dev:i386 - development files for the GTK+ library

Necesita construir los archivos una vez más. Ubique su carpeta OpenCV. Crea una nueva carpeta y nómbrala como versión. Entrar en esta carpeta. Por ejemplo

cd /home/user_name/OpenCv mkdir Release cd Release

Ahora compila usando cmake con el siguiente comando:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..

Recuerde poner WITH_GTK=ON durante cmake. Después de este paso ingrese el comando,

make sudo make install

Esto debería resolver su problema. Si tiene dependencias rotas para libgtk2.0-dev, instale una copia nueva de libgtk2.0-dev usando aptitude.

sudo aptitude install libgtk2.0-dev


Si instaló OpenCV utilizando el paquete pip de opencv-python, tenga en cuenta la siguiente nota, tomada de https://pypi.python.org/pypi/opencv-python

NOTA IMPORTANTE Las ruedas MacOS y Linux tienen actualmente algunas limitaciones:

  • la funcionalidad relacionada con el video no es compatible (no compilada con FFmpeg)
  • por ejemplo cv2.imshow() no funcionará (no compilado con GTK + 2.xo soporte de Carbono)

También tenga en cuenta que para instalar desde otra fuente, primero debe eliminar el paquete opencv-python

Para instalar OpenCV en Ubuntu seguí esta guía, y funcionó perfectamente bien: http://www.pyimagesearch.com/2016/10/10/24/ubuntu-16-04-how-to-install-opencv/