2015-02-27 26 views
10

Ho installato OpenCV seguendo questi passaggi(). Dopo aver provato a compilare un esempio, ho ottenuto questo errore:OpenCV GTK + 2.x errore

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}) 

come risolverlo?

+0

Basta leggere il messaggio di errore? Dichiara: _La funzione non è implementata. Ricostruisci la libreria con [..] supporto GTK + 2.x [..]. Se sei su Ubuntu o Debian, installa libgtk2.0-dev e pkg-config, quindi esegui di nuovo cmake o configura script_ Se non stai usando Ubuntu o Debian, prova a capire come viene chiamato e installato il pacchetto di sviluppo GTK 2.0 insieme a pkg-config. – usr1234567

+1

avevo installato libgtk2.0-dev e non aiuta :( –

+0

CMke lo trova? Dai un'occhiata nell'output Forse devi seguire il percorso da Gtk a CMake. – usr1234567

risposta

13

Innanzitutto verificare se libgtk2.0-dev è installato correttamente. Se avete installato pacchetti aptitude Manager, eseguire il seguente:

sudo aptitude search libgtk2.0-dev 

Dovrebbe tornare in questo modo:

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

È necessario costruire i file una volta again.Locate cartella OpenCV. Crea una nuova cartella e chiamala come versione. Entra in questa cartella. Per esempio

cd /home/user_name/OpenCv 
mkdir Release 
cd Release 

Ora costruire usando CMake con seguente 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 .. 

ricordarsi di mettere WITH_GTK=ON durante cmake. Dopo questo passo immettere il comando,

make 
sudo make install 

Questo dovrebbe risolvere le dipendenze problem.If avete rotto a libgtk2.0-dev, quindi installare una nuova copia di libgtk2.0-dev utilizzando attitudinale.

sudo aptitude install libgtk2.0-dev 
+3

Grazie. Fondamentalmente, per risolvere il problema problema che ho dovuto ricompilare e installare OpenCV con GTK, ** WITH_GTK = ON **. – Thomio

+0

Ho provato questo e la directory di origine non funziona. –

+3

Non funziona nel 2017. Anche dopo aver fatto tutti questi passaggi, ottengo ancora l'errore gtk e non posso fare cv2.imshow. – Oxydron

0

@ oxydron/Elliott Miller: Ho Ubuntu 16.04 LTS ambiente con GTK 3 pre installato. Ho ottenuto lo stesso errore per Caffe build (ramo principale), Provare i seguenti passaggi, potrebbe essere che dovrebbe funzionare per voi.

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

e bingo l'errore è stato andato ... nel mio codice python caffe

Si prega di notare:

La configurazione CMAKE dovrebbe riflettere GTK + 3.x invece di 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 
6

Se è stato installato OpenCV utilizzando il pacchetto pip opencv-python, tenere presente la seguente nota, presa da https://pypi.python.org/pypi/opencv-python

NOTA IMPORTANTE MacOS e Linux ruote hanno attualmente alcune limitazioni:

funzionalità
  • video relativo non è supportato (non compilati con FFmpeg)
  • ad esempio cv2.imshow() non funziona (non compilato con GTK + 2.x o Carbon supporto)

Si noti inoltre che per l'installazione da un'altra fonte, prima è necessario rimuovere il pacchetto OpenCV-python

Per installare OpenCV in Ubuntu ho seguito questa guida, e ha funzionato perfettamente bene : http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

+0

Quale altra fonte è possibile utilizzare per installare la libreria oltre a pip? –

+0

@ hris.to Aggiunta una possibile fonte di risposta. –

4

Al fine di migliorare @Nic Szer's risposta Non voglio spiegare come risolvere questo errore su Mac OS in tre semplici passaggi.

1.Rimuovere installato la versione OpenCV per evitare di rovinare in seguito

pip3 uninstall opencv-python 

2.Lower si versione python a 3,5 (attuale versione 3.6 ha problemi diversi con Conda, che useremo installare OpenCV)

conda install python=3.5 

3.Infine uso Conda, installare la versione di lavoro di OpenCV

conda install -c menpo opencv3 

E poi voilà: OpenCV inizierà a funzionare su Mac OS (Siera 10.12.4).

0

Ho risolto il problema sostituendo

cvDestroyWindow("showImage"); 

da

cvDestroyWindow("ShowImage"); 
0

Per me (Arch Linux, Anaconda con Python 3.6), l'installazione dai canali suggeriti menpo o loopbio non ha modificato nulla. La mia soluzione era quella di

  1. install pkg-config (sudo pacman -Syu pkg-config),
  2. rimuovere OpenCV dall'ambiente (conda remove opencv) e
  3. reinstallazione OpenCV dal canale Conda-forge (conda install -c conda-forge opencv)

conda list ora restituisce opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge e tutte le finestre avviate utilizzando cv2 funzionano correttamente.

Problemi correlati