Ошибка OpenCV GTK + 2.x
Я установил 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} )
Как его решить?
Ответы
Ответ 1
Сначала проверьте правильность установки 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. Создайте новую папку и назовите ее как выпуск. Войдите в эту папку. Например
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
Ответ 2
Если вы установили OpenCV с помощью pip-пакета opencv-python, учтите следующее примечание, взятое с 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/
Ответ 3
Чтобы улучшить ответ @Nic Szer, я хочу объяснить, как исправить эту ошибку в Mac OS, в три простых шага.
Удалите установленную версию OpenCV, чтобы избежать проблем позже
pip3 uninstall opencv-python
Уменьшите версию Python до 3.5 (в текущей версии 3.6 есть проблемы с conda, который мы будем использовать для установки OpenCV)
conda install python=3.5
Наконец, используйте conda для установки рабочей версии OpenCV
conda install -c menpo opencv3
И тогда вуаля: OpenCV начнет работать на вашем Mac OS (Siera 10.12.4).
Ответ 4
@oxydron/Elliott Miller:
У меня есть среда 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
Ответ 5
У меня есть решение с помощью установки Anaconda 3 на Ubuntu 16.04.
Я использовал редактор Pycharm для моего кода Python.
Я использую версию Python 3.6.
Я решил проблему с помощью этих процессов.
IDEA: нам нужно установить пакет opencv-contrib-python из пакета pycharm.
![enter image description here]()
Ответ 6
У меня была такая же проблема, и я исправил ее, просто переустановив opencv.
Нет необходимости сначала удалять его.
Ответ 7
Для меня (Arch Linux, Anaconda с Python 3.6) установка из предложенных каналов menpo
или loopbio
ничего не изменила. Мое решение заключалось в
- установить pkg-config (
sudo pacman -Syu pkg-config
),
- удалить opencv из среды (
conda remove opencv
) и
- переустановить opencv из канала conda-forge (
conda install -c conda-forge opencv
)
conda list
теперь возвращает opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge
, и все окна, запущенные с использованием cv2, работают нормально.
Ответ 8
Мне приходилось сталкиваться с этой проблемой пару раз, вот что до сих пор работало последовательно:
conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
Ответ 9
Я попробовал несколько ответов, упомянутых выше, тот, который работал для меня в Ubuntu, упоминается в следующих шагах:
- Во-первых, удалите текущий пакет opencv, который установлен в вашей системе, введя следующую команду в терминале
conda remove opencv
. - Если ваша версия python 3.6 или выше, измените ее на стабильную версию, что можно сделать, набрав в
conda install python=3.5
. - Позже снова установите пакет opencv,
conda install -c menpo opencv3
в терминале conda install -c menpo opencv3
Ответ 10
Если то, что они упомянули выше, не работает, попробуйте:
pip install opencv-python
для python2 или
pip3 install opencv-python
для python3
Ответ 11
Я исправил эту проблему, заменив
cvDestroyWindow("showImage");
по
cvDestroyWindow("showImage");