The function is not implemented rebuild the library with windows

Issue I was working on a sign language detection project on jupyter notebook. While runnin...

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, в три простых шага.

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

enter image description here

Ответ №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, упоминается в следующих шагах:

  1. Во-первых, удалите текущий пакет opencv, который установлен в вашей системе, введя следующую команду в терминале conda remove opencv.
  2. Если ваша версия python 3.6 или выше, измените ее на стабильную версию, что можно сделать, набрав в conda install python=3.5.
  3. Позже снова установите пакет 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

решать:

Понравилась статья? Поделить с друзьями:
  • The forest не запускается на windows 10
  • The flip clock screensaver для windows
  • The file system wasn t safely closed on windows fixing
  • The file c windows system32 msvcrt dll could not be opened
  • The file autorun dll could not be loaded windows 10