Я установил OpenCV, выполнив следующие действия (). После попытки скомпилировать один пример я получил такую ​​ошибку:

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

Как это решить?

24
Maxian Nicu 28 Фев 2015 в 02:24

14 ответов

Лучший ответ

Сначала проверьте, правильно ли установлен libgtk2.0-dev. Если вы установили менеджер пакетов aptitude, запустите следующее:

sudo aptitude search libgtk2.0-dev

Должен вернуться так:

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

Вам нужно создать файлы еще раз. Найдите папку OpenCV. Создайте новую папку и назовите ее release. Войдите в эту папку. Например

cd /home/user_name/OpenCv
mkdir Release
cd Release

Теперь соберите с помощью cmake следующую команду:

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

Не забудьте поставить WITH_GTK=ON во время cmake. После этого шага введите команду,

make
sudo make install

Это должно решить вашу проблему. Если у вас сломаны зависимости для libgtk2.0-dev, установите новую копию libgtk2.0-dev с помощью aptitude.

sudo aptitude install libgtk2.0-dev
23
KiranCP 22 Июн 2015 в 11:45

Я исправил эту проблему, заменив

cvDestroyWindow("showImage");

От

cvDestroyWindow("ShowImage");
-1
Pang 26 Авг 2017 в 08:23

Если кто-то еще окажется здесь, как я, после установки OpenCV с использованием vcpkg в Ubuntu, существует известная проблема с vcpkg, при которой вы получите то же сообщение об ошибке, что и в верхней части этого сообщения, без доступа к 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'

Проблема в том, что vcpkg передает параметр сборки -DWITH_GTK=OFF при сборке OpenCV. Открытый вопрос: https://github.com/microsoft/vcpkg/issues/12621

Обходной путь следующий:

  • отредактируйте файл vcpkg/ports/opencv4/portfile.cmake
  • найдите строку с надписью -DWITH_GTK=OFF и замените ее на -DWITH_GTK=ON
  • запустить ./vcpkg remove opencv4
  • запустить sudo apt-get install libgtk2.0-dev pkg-config
  • переустановите OpenCV с помощью ./vcpkg install opencv4 или любой другой команды vcpkg, которую вы использовали
0
Stéphane 20 Сен 2020 в 07:43

Я использовал ОС Windows. Я прошел через множество вещей, чтобы разобраться с этой проблемой. Наконец, я просто переустановил opencv и cmake, и он работал без ошибок.

0
Hrishabh 22 Окт 2019 в 11:40

Для Windows просто удалите OpenCV pip удалить opencv-python и переустановите pip install opencv-python

1
Abhishek singh 2 Май 2020 в 16:59

Если то, что они упомянули выше, не работает, попробуйте:

pip install opencv-python

Для python2 или

pip3 install opencv-python

Для python3

1
Ahmed J. 21 Янв 2019 в 08:52

Я попробовал несколько ответов, упомянутых выше, тот, который работал у меня в ubuntu, упоминается в следующих шагах:

  1. Во-первых, удалите текущий пакет opencv, установленный в вашей системе, введя следующую команду в терминале conda remove opencv.
  2. Если ваша версия python - 3.6 или выше, измените ее на стабильную версию, что можно сделать, набрав conda install python=3.5.
  3. Позже установите пакет opencv еще раз, введя следующий ввод в терминал conda install -c menpo opencv3
1
Abhishek Thombre 22 Дек 2018 в 21:19

У меня была такая же проблема, и я решил ее просто переустановка opencv.

Нет необходимости сначала удалять его.

1
mrk 12 Дек 2018 в 22:13

Мне приходилось сталкиваться с этой проблемой пару раз, это то, что до сих пор работало последовательно:

conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
1
mrk 12 Дек 2018 в 21:47

Я решил использовать установку Anaconda 3 на Ubuntu 16.04.

Я использовал редактор pycharm для своего кода на Python.

Я использую версию Python 3.6.

Я решил проблему с помощью этих процессов.

ИДЕЯ: нам нужно установить пакет opencv-contrib-python из файла pycharm.

enter image description here

2
pushkin 14 Апр 2018 в 20:41

Для меня (Arch Linux, Anaconda с Python 3.6) установка из предложенных каналов menpo или loopbio ничего не изменила. Мое решение было

  1. установить pkg-config (sudo pacman -Syu pkg-config),
  2. удалить opencv из среды (conda remove opencv) и
  3. переустановите opencv из канала conda-forge (conda install -c conda-forge opencv)

conda list теперь возвращает opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge, и все окна, запущенные с использованием cv2, работают нормально.

2
F1iX 27 Фев 2018 в 21:51

@ oxydron / Эллиот Миллер: У меня есть среда Ubuntu 16.04 LTS с предустановленным gtk 3. У меня такая же ошибка для сборки Caffe (основная ветка). Попробуйте выполнить следующие шаги, возможно, это сработает для вас.

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

И бинго ошибка исчезла ... в моем коде python caffe

Пожалуйста, обратите внимание:

Конфигурация CMAKE должна отражать GTK + 3.x вместо 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
2
SeCp 10 Апр 2017 в 21:00

Чтобы улучшить ответ @Nic Szer, я хочу объяснить, как исправить эту ошибку в Mac OS за три простых шага.

  1. Удалите установленную версию OpenCV, чтобы в дальнейшем избежать проблем

    pip3 uninstall opencv-python 
    
  2. Понизьте версию python до 3.5 (текущая версия 3.6 имеет проблемы с conda, которую мы будем использовать для установки OpenCV)

    conda install python=3.5
    
  3. Наконец, используйте conda для установки рабочей версии OpenCV

    conda install -c menpo opencv3 
    

И тогда вуаля: OpenCV начнет работать на вашей Mac OS (Sierra 10.12.4).

6
Nic Szerman 21 Сен 2019 в 11:44

Если вы установили OpenCV с помощью пакета opencv-python pip, обратите внимание на следующее примечание, взятое из https: //pypi.python.org/pypi/opencv-python

ВАЖНОЕ ПРИМЕЧАНИЕ Диски MacOS и Linux в настоящее время имеют некоторые ограничения:

  • функция, связанная с видео, не поддерживается (не скомпилировано с FFmpeg)
  • например cv2.imshow() не будет работать (не скомпилировано с поддержкой GTK + 2.x или Carbon)

Также обратите внимание, что для установки из другого источника сначала необходимо удалить пакет opencv-python

Чтобы установить OpenCV в Ubuntu, я следовал этому руководству, и он работал отлично: http: //www.pyimagesearch. com / 2016/10/24 / ubuntu-16-04-how-to-install-opencv /

12
Nic Szerman 16 Май 2017 в 17:57