29

I had installed OpenCV following these steps. After trying to compile one example, I got this 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} )

How can I solve it?

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Maxian Nicu
  • 2,166
  • 3
  • 17
  • 31
  • Just read the error message? It states: _The function is not implemented. Rebuild the library with [..] GTK+ 2.x [..] support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script_ If you are not using Ubuntu or Debian, try to figure out how the GTK 2.0 developer package is called and install it together with pkg-config. – usr1234567 Feb 28 '15 at 06:55
  • 2
    i had installed libgtk2.0-dev and it doesn't help :( – Maxian Nicu Feb 28 '15 at 11:49
  • Does CMke find it? Have a look in the output. Maybe you have to path the path to Gtk to CMake. – usr1234567 Feb 28 '15 at 15:22

19 Answers19

31

First check whether libgtk2.0-dev is installed properly. If you have installed aptitude package manager, run the following:

sudo aptitude search libgtk2.0-dev

It should return like this:

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

You need to build the files once again. Locate your OpenCV folder. Create a new folder and name it Release. Enter into this folder. For example,

cd /home/user_name/OpenCv
mkdir Release
cd Release

Now build using CMake with following command:

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 ..

Remember to put WITH_GTK=ON during CMake.

After this step, enter the command,

make
sudo make install

This should resolve your problem. If you have broken dependencies for libgtk2.0-dev, then install a fresh copy of libgtk2.0-dev using aptitude.

sudo aptitude install libgtk2.0-dev
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
KiranCP
  • 366
  • 4
  • 7
15

If you installed OpenCV using the opencv-python pip package, be aware of the following note, taken from opencv-python:

IMPORTANT NOTE
macOS and Linux wheels have currently some limitations:

  • video related functionality is not supported (not compiled with FFmpeg)
  • for example cv2.imshow() will not work (not compiled with GTK+ 2.x or Carbon support)

Also note that to install from another source, first you must remove the opencv-python package.

To install OpenCV in Ubuntu, I followed this guide, and it worked perfectly fine: Ubuntu 16.04: How to install OpenCV

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Nic Szerman
  • 1,834
  • 18
  • 25
9

In order to improve Nic Szer's answer I want to explain how to fix this error on macOS in three simple steps.

  1. Remove installed OpenCV version to avoid messing up later

    pip3 uninstall opencv-python
    
  2. Lower your Python version to 3.5 (the current version, 3.6, has problems with Conda which we will use to install OpenCV)

    conda install python=3.5
    
  3. Finally, use Conda to install a working version of OpenCV

    conda install -c menpo opencv3
    

And then voilà: OpenCV will start working on your macOS (macOS v10.12.4 (Sierra)).

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
hris.to
  • 6,235
  • 3
  • 46
  • 55
6

For Windows, just uninstall the OpenCV package:

pip uninstall opencv-python

And reinstall:

pip install opencv-python
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
5

In case what is mentioned in previous answers doesn't work, try:

pip install opencv-python

for Python 2, or

pip3 install opencv-python

for Python 3.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ahmed J.
  • 484
  • 6
  • 11
3

For me (Arch Linux, Anaconda with Python 3.6), installing from the suggested channels menpo or loopbio did not change anything. My solution was to

  1. install pkg-config (sudo pacman -Syu pkg-config),
  2. remove opencv from the environment (conda remove opencv) and
  3. re-install opencv from the conda-forge channel (conda install -c conda-forge opencv)

conda list now returns opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forgeand all windows launched using cv2 are working fine.

F1iX
  • 823
  • 6
  • 12
2

I have Ubuntu 16.04 LTS (Xenial Xerus) environment with GTK 3 preinstalled.

I got the same error for Caffe build (master branch), Try the following steps, may be it should work for you.

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

And bingo, the error was gone... in my Python Caffe code

Please note:

The CMake configuration should reflect GTK+ 3.x instead of 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
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
SeCp
  • 21
  • 2
  • In the official opencv installation guide (https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html) they still link to libgtk2.0-dev. If your application uses Gtk3, then you should replace by libgtk-3-dev, as suggested by @SeCp – jmgonet May 21 '18 at 05:08
2

I have the solved using Anaconda 3 installing on Ubuntu 16.04 (Xenial Xerus).

I have used the PyCharm editor for my Python code.

I am using the Python 3.6 version.

I solved the issue using these processes.

IDEA: we need to install the package opencv-contrib-python package from PyCharm.

Enter image description here

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
MK HASAN
  • 21
  • 1
  • 2
2

I have had to deal with this issue a couple of times, and this is what has worked consistently thus far:

conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
mrk
  • 8,059
  • 3
  • 56
  • 78
2

After installing OpenCV using vcpkg on Ubuntu, there is a known issue with vcpkg where you'll end up with the exact same error message as the top of this post with no access to highgui:

OpenCV(4.3.0) Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa 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 .../vcpkg/buildtrees/opencv4/src/4.3.0-0c6047baf6.clean/modules/highgui/src/window.cpp, line 634
Caught exception: OpenCV(4.3.0) .../vcpkg/buildtrees/opencv4/src/4.3.0-0c6047baf6.clean/modules/highgui/src/window.cpp:634:
error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa 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'

The problem is vcpkg passes in the build option -DWITH_GTK=OFF when building OpenCV. The open issue: https://github.com/microsoft/vcpkg/issues/12621

The workaround is the following:

  • edit the file vcpkg/ports/opencv4/portfile.cmake
  • find the line that says -DWITH_GTK=OFF and change it to say -DWITH_GTK=ON
  • run ./vcpkg remove opencv4
  • run sudo apt-get install libgtk2.0-dev pkg-config
  • reinstall OpenCV with ./vcpkg install opencv4 or whichever vcpkg command you used
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Stéphane
  • 19,459
  • 24
  • 95
  • 136
2

I have fixed my issue using this,try it

pip install opencv-python-headless==4.5.3.56 
pip install opencv-contrib-python==4.5.3.56
pip install opencv-python==4.5.3.56
1

I had the same problem, and fixed it by simply reinstalling opencv.

There is no need to uninstall it first.

mrk
  • 8,059
  • 3
  • 56
  • 78
Z Cao
  • 583
  • 1
  • 5
  • 19
1

I tried several of the previous answers the one that worked for me in ubuntu is mentioned in the following steps:

  1. Firstly, remove the current opencv package that is installed in your system by typing in the following command in the terminal conda remove opencv.
  2. If your Python version is 3.6 or above then change it into the stable version which can be done by typing in conda install python=3.5.
  3. Later on, install the opencv package again by giving the following input in terminal conda install -c menpo opencv3
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
1

My issue was solved after installing opencv-contrib-python:

pip install opencv-contrib-python
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Nannigalaxy
  • 492
  • 6
  • 17
0

I had the same issue and it has been resolved after uninstalling opencv-python and doing a fresh install.

pip uninstall opencv-python
pip install opencv-python
Bedir Yilmaz
  • 3,823
  • 5
  • 34
  • 54
0

try this. It worked for me

sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
Shaik Ahmad
  • 449
  • 1
  • 3
  • 11
0
pip install opencv-contrib-python

reinstalling and installing with the above command solved my issue but just after closing all instances of pyhton and anaconda because apparently a cache version of the library was being kept in my system.

Hence, uninstall opencv (try with pip and conda), close the IDE and reboot it, check if you can import opencv. If you still can import it, try to run the code:

help(cv2)

and check where the files are stored and delete that folder. Repeat the process untill you are sure it is uninstalled so you can reinstall opencv full package (option 2 - see https://pypi.org/project/opencv-python/ )

0

I had the same issue and it has been resolved after uninstalling opencv-python version 4 and then installing the OpenCV version 3.

pip install opencv-python==3.4.9.33

-1

I have fixed this issue by replacing

cvDestroyWindow("showImage");

by

cvDestroyWindow("ShowImage");
Pang
  • 9,564
  • 146
  • 81
  • 122
劉大為
  • 197
  • 2
  • 5