Issue
I was working on a sign language detection project on jupyter notebook. While running the code for live detection I encountered an error as shown below:
OpenCV(4.5.1) C:UsersappveyorAppDataLocalTemp1pip-req-build-1drr4hl0opencvmoduleshighguisrcwindow.cpp:651: 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 ‘cvShowImage’
Despite of trying many solutions that I found online I’m still getting the same error.
The code that encountered error is :
while True:
ret, frame = cap.read()
image_np = np.array(frame)
input_tensor = tf.convert_to_tensor(np.expand_dims(image_np, 0), dtype=tf.float32)
detections = detect_fn(input_tensor)
num_detections = int(detections.pop('num_detections'))
detections = {key: value[0, :num_detections].numpy()
for key, value in detections.items()}
detections['num_detections'] = num_detections
# detection_classes should be ints.
detections['detection_classes'] = detections['detection_classes'].astype(np.int64)
label_id_offset = 1
image_np_with_detections = image_np.copy()
viz_utils.visualize_boxes_and_labels_on_image_array(
image_np_with_detections,
detections['detection_boxes'],
detections['detection_classes']+label_id_offset,
detections['detection_scores'],
category_index,
use_normalized_coordinates=True,
max_boxes_to_draw=5,
min_score_thresh=.5,
agnostic_mode=False)
cv2.imshow('object detection', cv2.resize(image_np_with_detections, (800, 600)))
if cv2.waitKey(1) & 0xFF == ord('q'):
cap.release()
break
Please help me!
Solution
Few frustration hours later, saw this solution under the comment of the first answer by Karthik Thilakan
pip uninstall opencv-python-headless -y
pip install opencv-python --upgrade
This worked for me in the conda environment. Thanks Karthik!
Answered By — Sachin Mohan
Вопрос:
Я установил 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} )
Как его решить?
Лучший ответ:
Сначала проверьте правильность установки 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
Ответ №1
Если вы установили 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/
Ответ №2
Чтобы улучшить ответ @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).
Ответ №3
@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
Ответ №4
У меня есть решение с помощью установки Anaconda 3 на Ubuntu 16.04.
Я использовал редактор Pycharm для моего кода Python.
Я использую версию Python 3.6.
Я решил проблему с помощью этих процессов.
IDEA: нам нужно установить пакет opencv-contrib-python из пакета pycharm.
Ответ №5
У меня была такая же проблема, и я исправил ее, просто переустановив opencv.
Нет необходимости сначала удалять его.
Ответ №6
Для меня (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, работают нормально.
Ответ №7
Мне приходилось сталкиваться с этой проблемой пару раз, вот что до сих пор работало последовательно:
conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
Ответ №8
Я попробовал несколько ответов, упомянутых выше, тот, который работал для меня в Ubuntu, упоминается в следующих шагах:
- Во-первых, удалите текущий пакет opencv, который установлен в вашей системе, введя следующую команду в терминале
conda remove opencv
. - Если ваша версия python 3.6 или выше, измените ее на стабильную версию, что можно сделать, набрав в
conda install python=3.5
. - Позже снова установите пакет opencv,
conda install -c menpo opencv3
в терминалеconda install -c menpo opencv3
Ответ №9
Если то, что они упомянули выше, не работает, попробуйте:
pip install opencv-python
для python2 или
pip3 install opencv-python
для python3
Ответ №10
Я исправил эту проблему, заменив
cvDestroyWindow("showImage");
по
cvDestroyWindow("showImage");
Posted on Tuesday, April 13, 2021 by admin
Few frustration hours later, saw this solution under the comment of the first answer by Karthik Thilakan
pip uninstall opencv-python-headless -y
pip install opencv-python --upgrade
This worked for me in the conda environment. Thanks Karthik!
I had the exact same error using yolov5, on windows 10. Rebuilding the library by typing
pip uninstall opencv-python
then
pip install opencv-python
worked for me.
I installed another GPU and finally upgraded to Tensorflow 2 this week and suddenly, the same issue arose. I finally found my mistake and why uninstalling and reinstalling opencv works for some people. The issue is stated clearly in a text file in your opencv-python dist-packages named METADATA.
It states;
There are four different packages (see options 1, 2, 3 and 4 below) and you should SELECT ONLY ONE OF THEM. Do not install multiple different packages in the same environment.
Further, the file says that;
You should always use these packages if you do not use
cv2.imshow
et al. or you are using some other package (such as PyQt) than OpenCV to create your GUI.
referring to
Packages for server (headless) environments … (with) no GUI library dependencies
So, if you run;
pip list | grep opencv
and the result is more than one opencv version, you’ve likely found your problem. While an uninstall & reinstall of opencv might solve your problem, a more masterful solution is to simply uninstall the headless version as that is the one that does not care about GUIs, as it should be used in server environments.
I was trying to move a set of files to my Windows10 from Ubuntu 18.04 LTD, and running a cli for inference and the same error as mentioned in the opening post cropped up……I was checking on the versions of Open-CV and Open-CV Headless in both Ubuntu and Windows and they were exactly the same……While it was executing on Ubuntu, it threw the error in Windows……I removed Open-CV Headless and upgraded the Open-CV, and used the same set of commands and Windows started to execute the CLI for inferencing…….
This error is mostly with Pycharm Ide , I resolved it by changing the project interpreter None of the given solution in the internet worked for me.
Tags:
python
tensorflow
opencv
machine-learning
computer-vision
Issue
Using OpenCV, I’m trying to get the video stream from the camera, but I get this error:
openOpenCV(3.4.3) 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 cvWaitKey, file /home/Ulugbe/Downloads/Telegram Desktop/opencv-3.4.3/modules/highgui/src/window.cpp, line 698
terminate called after throwing an instance of ‘cv::Exception’
what(): OpenCV(3.4.3) /home/Ulugbe/Downloads/Telegram Desktop/opencv-3.4.3/modules/highgui/src/window.cpp:698: error: (-2: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 function ‘cvWaitKey’
This is my code:
#include <opencv2/opencv.hpp>
#include <dlib/any.h>
#include <iostream>
int main (int argc, char **argv)
{
std::cout << cv::getBuildInformation() << std::endl;
cv::VideoCapture video(0);
// video.open("/home/Ulugbe/oson/ulugbek_face.mp4");
if(video.isOpened())
std::cout<<"open";
cv::Mat frame;
video.read(frame);
cv::imshow("image", frame);
cv::waitKey(0);
video.release();
return 0;
}
I don’t understand the error because the opencv version in the message is not suitable with my current one and the path shown in the error also doesn’t exist (But I remembered it was initially installed there but it was then uninstalled and installed as root).
If you comment out the imshow
and waitKey
lines, the program will not show any errors, so I think the problem is somehow related to it.
Screenshots of my NetBeans configuration:
compiler properties
linker properties
Solution
The path is still «there» because it is stored inside the library that you built. It is preserved because it is useful debugging information.
You built OpenCV without any GUI support. That’s what the error means. It also says:
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 ‘cvWaitKey’
So you should rebuild OpenCV. Run cmake-gui
and look at the output to understand what GUI backends could be possible, and what causes them to be unavailable. Browse the settings/variables and enable a GUI backend if none were enabled.
Answered By — Christoph Rackwitz
Answer Checked By — Marilyn (JavaFixing Volunteer)
I just installed opencv 3.1 from this link. There was no issue or error in building up opencv. So, I checked my version using cv2.__version__
, it is working fine but when I tested it using
temp = cv2.imread('test.png')
cv2.imshow('img',temp)
I got this error, I don’t understand where is the problem? There was no issue while building up and I followed the instructions carefully. Here is the error:
>>> cv2.imshow('img',temp)
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 cvShowImage, file /io/opencv/modules/highgui/src/window.cpp, line 583
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cv2.error: /io/opencv/modules/highgui/src/window.cpp:583: 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 cvShowImage
Сегодня я столкнулся с проблемами, и при запуске cv2.imshow есть ошибка ():
/home/wei/anaconda3/envs/GAN/bin/python /home/wei/Documents/ww/tracking/ft.py
Traceback (most recent call last):
File "/home/wei/Documents/ww/tracking/ft.py", line 88, in <module>
cv2.imshow("Tracking", frame)
cv2.error: OpenCV(3.4.2) /tmp/build/80754af9/opencv-suite_1535558553474/work/modules/highgui/src/window.cpp:632: error: (-2: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 function 'cvShowImage'
Мой CV2 устанавливается в среде кондей, чтобы окружающая среда изолирована друг от друга, и операция удобна. Изучите Кондей по перемещению этой статьиУчебное руководство по установке AnaConda и общая команда чит-лист
Решение:
Введите соответствующую среду, следуйте следующим командам в терминале
conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python