- Функция cv2.imshow () открывает окно, которое всегда говорит, что не отвечает — python opencv
- 5 ответов
- Команда cv2.imshow не работает должным образом в opencv-python
- cv2.imshow command doesn’t work properly in opencv-python
- 19 Answers 19
- opencv — C ++ программа зависает по команде imshow
- Решение
- OpenCV не работает должным образом с python в Linux с anaconda. Получение ошибки, что cv2.imshow () не реализован
- 11 ответов
Функция cv2.imshow () открывает окно, которое всегда говорит, что не отвечает — python opencv
Я пытаюсь запустить очень простую программу. Чтобы открыть и jpg файл и отобразить его с помощью библиотеки opencv для python. Изначально все работало нормально, но теперь просто открывается окно, которое не показывает изображение, но говорит «не отвечает». Мне нужно зайти в диспетчер задач и закрыть его!
5 ответов
Вы пропустили еще одну строку:
Затем в окне отображается изображение, пока вы не нажмете любую клавишу на клавиатуре. Или вы можете передать следующее:
Здесь окно показывает изображение в течение 1000 мс или 1 секунды. После этого окно само исчезнет. Но в некоторых случаях это не так. Таким образом, вы можете принудительно уничтожить его, используя cv2.destroyAllWindows ()
Ни один из ответов здесь не работал в MacOS. Следующие работы:
Просто добавьте cv2.waitKey(1) после cv2.destroyAllWindows() .
Я слишком недавно работал с opencv 3.2 и matplotlib и обнаружил (путем проб и ошибок комментирования строк), что импорт pyplot из matplotlib имеет своего рода вмешательство в функцию cv2.imshow (). Я не уверен, почему или как это действительно работает, но если кто-то ищет эту проблему и сталкивается с этим старым форумом, это может помочь. Я работаю, чтобы попытаться найти решение этой проблемы.
Если вы использовали записные книжки Python, тогда возникает проблема с использованием cv2.waitKey (0) и cv2.destroyallwindows () в системе на основе Unix для запуска программы opencv.
У меня есть альтернативный метод, который предотвратит замораживание вашего изображения
Шаги: -Скопируйте код из записных книжек Python, создайте файл filename.py и вставьте его — Открыть терминал — CD путь /к /файлу — источник активации VirtualEnvironment — python filename.py
Это будет запускать код прямо из терминала. Надеюсь, это поможет вам. Пример ссылки: https://youtu.be/8O-FW4Wm10s
Я тоже столкнулся с той же проблемой. Я запускаю командную строку Python в Centos 7 со следующим кодом
Даже тогда проблема сохранялась и не решалась. Поэтому я добавил
Добавление этого закрыло окно изображения. При повторном запуске команды будет создан новый экземпляр. Надеюсь, что вы можете попробовать, если у вас все еще есть проблемы.
Источник
Команда cv2.imshow не работает должным образом в opencv-python
Я использую opencv 2.4.2, python 2.7 Следующий простой код создает окно с правильным именем, но его содержимое просто пустое и не показывает изображение:
кто-нибудь знает об этой проблеме?
imshow() работает только с waitKey() :
(Здесь скрыт весь цикл сообщений, необходимый для обновления окна.)
Если вы запускаете интерактивный сеанс ipython и хотите использовать окна highgui, сначала выполните cv2.startWindowThread ().
Подробно: HighGUI — это упрощенный интерфейс для отображения изображений и видео из кода OpenCV. Это должно быть так просто:
Вы должны использовать cv2.waitKey(0) после cv2.imshow(«window»,img) . Только тогда это сработает.
Если вы работаете в консоли Python, сделайте следующее:
Затем, если вы нажмете Enter на изображение, оно успешно закроет изображение, и вы сможете продолжить выполнение других команд.
Я столкнулся с той же проблемой. Я попытался прочитать изображение из IDLE и попытался отобразить его с помощью cv2.imshow() , но окно дисплея зависает и показывает, pythonw.exe что не отвечает при попытке закрыть окно.
В сообщении ниже дается возможное объяснение того, почему это происходит.
» В принципе, не делайте этого из IDLE. Напишите сценарий и запустите его из оболочки или сценарий напрямую, если он находится в Windows, назвав его с расширением .pyw и дважды щелкнув по нему. Очевидно, существует конфликт между собственным событием IDLE. цикл и те, что из наборов инструментов GUI «.
Когда я использовал imshow() сценарий и выполнял его, а не запускал его непосредственно через IDLE, он работал.
Источник
cv2.imshow command doesn’t work properly in opencv-python
I’m using opencv 2.4.2, python 2.7 The following simple code created a window of the correct name, but its content is just blank and doesn’t show the image:
does anyone knows about this issue?
19 Answers 19
imshow() only works with waitKey() :
(The whole message-loop necessary for updating the window is hidden in there.)
If you run an interactive ipython session, and want to use highgui windows, do cv2.startWindowThread() first.
In detail: HighGUI is a simplified interface to display images and video from OpenCV code. It should be as easy as:
You must use cv2.waitKey(0) after cv2.imshow(«window»,img) . Only then will it work.
If you are running inside a Python console, do this:
Then if you press Enter on the image, it will successfully close the image and you can proceed running other commands.
I faced the same issue. I tried to read an image from IDLE and tried to display it using cv2.imshow() , but the display window freezes and shows pythonw.exe is not responding when trying to close the window.
The post below gives a possible explanation for why this is happening
«Basically, don’t do this from IDLE. Write a script and run it from the shell or the script directly if in windows, by naming it with a .pyw extension and double clicking it. There is apparently a conflict between IDLE’s own event loop and the ones from GUI toolkits.«
When I used imshow() in a script and execute it rather than running it directly over IDLE, it worked.
Источник
opencv — C ++ программа зависает по команде imshow
У меня есть C ++ — код, который по какой-то причине продолжает висеть.
Это код:
Теперь я пробовал это в течение 3 дней, буквально стирая каждую строку этого кода и помещая его обратно, все сводится к следующему:
должен быть
imshow ()
что приводит к зависанию программы, так что изображение не отображается.
Странно то, что я дословно скопировал мою более старую программу, она работала, даже работала в новом проекте в течение дня, а затем ВНУТРЕННЕЕ зависла, что означает, что программа просто продолжает работать и работать без какого-либо результата и не может быть закрыта вниз.
Очевидно, я, должно быть, упускаю из виду здесь что-то простое, но я просто не могу его найти.
Моя ОС — Ubuntu 15.10. Кроме того, я только что опробовал ответ SSteves => та же проблема.
Так что, должно быть, какая-то утечка памяти, а не мой код, верно? Как, черт возьми, вы исправляете утечки памяти?
Решение
Попробуй это. Это работает для меня и делает то, что вы описываете.
Я сделал пару небольших изменений:
- Тест индекса цикла должен быть не если вы специально не хотите изменять последнюю строку или столбец.
- Вы можете начать внутренний цикл с int k = j + 1 чтобы избежать ненужных итераций цикла и тому if (k > j) тестовое задание.
- Вы устанавливаете black в трехканальное скалярное значение. Мой все еще работает, когда я изменил его Scalar(0, 0, 0) но ты все равно не должен этого делать.
Я попробовал ваш код, и он также работает. Вы не упоминаете, какую ОС вы используете. Я использую OS X.
Источник
OpenCV не работает должным образом с python в Linux с anaconda. Получение ошибки, что cv2.imshow () не реализован
Это именно та ошибка, которую я получаю. Моя ОС — Ubuntu 16.10.
Ошибка OpenCV: неопределенная ошибка (Функция не реализована. Перестройте библиотеку с поддержкой Windows, GTK + 2.x или Carbon. Если вы работаете в Ubuntu или Debian, установите libgtk2.0-dev и pkg-config, а затем повторно — запустить cmake или настроить скрипт) в cvShowImage, файл /feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp, строка 545 Traceback (последний вызов был последним): Файл «untitled.py», строка 7, в cv2.imshow ( ‘ изображения ‘ , IMG ) cv2.error: /feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: ошибка: (-2) Функция не реализована. Перестройте библиотеку с поддержкой Windows, GTK + 2.x или Carbon. Если вы используете Ubuntu или Debian, установите libgtk2.0-dev и pkg-config, затем повторно запустите cmake или настройте скрипт в функции cvShowImage
0002.png — это изображение в том же каталоге, что и программа. Сначала я установил anaconda с python 3.5, затем установил opencv с помощью команды
Я установил libgtk2.0-dev, как и говорилось в сообщении об ошибке, но я все еще получаю ту же ошибку. Любая помощь приветствуется. Я пытался решить это в течение нескольких часов.
11 ответов
1. Самый простой способ:
Или (для OpenCV 3.1):
2. И если вы не хотите этого делать, вы можете попробовать использовать matplotlib .
3. Или попробуйте собрать библиотеку самостоятельно с помощью опции WITH_GTK=ON или чего-то подобного.
Обновление — 18 июня 2019 г.
Я получил эту ошибку в моей системе Ubuntu (18.04.1 LTS) для openCV 3.4.2, поскольку вызов метода для cv2.imshow не удался. Я использую анаконду. Только следующие 2 шага помогли мне решить:
Если вы используете pip, вы можете попробовать
Если вы в любое время установили OpenCV с помощью pip-пакета opencv-python, учтите следующее примечание, взятое из https://pypi.python.org/pypi/opencv-python
ВАЖНОЕ ПРИМЕЧАНИЕ Диски MacOS и Linux в настоящее время имеют некоторые ограничения:
- функция, связанная с видео, не поддерживается (не скомпилировано с FFmpeg)
- например cv2.imshow() не будет работать (не скомпилировано с поддержкой GTK + 2.x или Carbon)
Также обратите внимание, что для установки из другого источника сначала необходимо удалить пакет opencv-python
Мне приходилось сталкиваться с этой проблемой пару раз, это то, что до сих пор работало последовательно:
Для меня (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, работают нормально.
Хотя на это уже ответили, для меня решение conda-forge сработало со взломом. Моя рабочая станция — машина Centos 6, и я использую виртуальную среду conda (anaconda 2). Создать среду
А затем активировать его
Теперь установите opencv из conda-forge
Теперь установите Matplotlib в этой среде (и это взломать 1)
Давайте проверим, сейчас imshow работает или нет. В терминале активируйте тестовую среду и запустите python. В переводчике делай
Это должно появиться окно с изображением. Я не стал дальше исследовать, как это решило дело.
Примечание 1 : вы можете увидеть некоторую ошибку, связанную с xkb, затем в вашем файле .bashrc добавьте
export QT_XKB_CONFIG_ROOT = / usr / share / X11 / xkb
Примечание 2 : вы можете увидеть некоторую ошибку, связанную с XDG_RUNTIME_DIR, затем в вашем файле .bashrc также добавьте
export XDG_RUNTIME_DIR = .tmp / myruntime и определить myruntime с помощью mkdir -p .tmp / myruntime
Если вы работаете в докере, вы можете получить эту ошибку. Решение деинсталлируйте текущее и установите безголовое
pip install opencv-contrib-python == 3.4.5.20
Если вы пишете на изображение и отображаете его, вам может потребоваться следующее
apt-get update && apt-get install -y libglib2.0-0 libsm6 libxext6 libxrender1
И если вам интересно, как получить дисплей от Docker, это возможно через X11 на вашем хосте
Я использовал pip для установки opencv-python . (https://pypi.org/project/opencv-python/)
1) Удалить пакет opencv из conda:
2) Добавьте в свой файл env.yml:
Удалить opencv из анаконды =
Затем установите opencv с помощью pip:
Это работает для меня.
Обратите внимание, что он жалуется на libgtk2.0-dev и pkg-config. Вот решение. Удалите существующую установку openCV.
Конда удалить opencv3
Установите эти пакеты перед установкой opencv-conda. Установите gtk2 pkg-config.
Теперь установите opencv от menpo conda install -c https://conda.anaconda.org/menpo opencv3
Я следовал этому руководству (OpenCV GTK + 2.x error) и сделал следующее. Это сработало для меня:
- установить пакеты: libgtk2.0-dev и pkg-config
- перейдите в каталог opencv
- Mkdir Release
- CD Release
- Запустите команду: 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 ..
- сделать
- sudo make install
Моя среда — Win 10, и я добавил путь anaconda к переменным среды PATH ‘, сработал cv2.imshow
Источник