другая IDE не работает с openCV, кроме IDLE - PullRequest
0 голосов
/ 09 ноября 2019

Я уже проверил, что моя библиотека Python и openCV определенно работают. скажем так, простой cv2.imshow () работает нормально при использовании с IDLE. но когда я попытался использовать другую IDE, такую ​​как Visual Studio и Pyscripter, используя один и тот же код, IDE не может показать изображение и выдает ошибку. но когда я попытался напечатать (cv2. версия ), все работало нормально. что означает, что моя IDE может нормально использовать библиотеку openCV. мой pyscripter также дает тот же вывод, что и VS. Я уже отключил любой антивирус. почему работает только IDLE?

import cv2

print(cv2.__version__)

img = cv2.imread('cat.jpg')

cv2.imshow('img', img)`

IDLE против VS, использующего тот же код

python (64 бита): 3.7.5 opencv (pip): 4.1.1 VisualStudio: 2019 16.3.8

обновление: Я обнаружил эту ошибку:

cv2.error: OpenCV (4.1.1) C: \ projects \ opencv-python \ opencv \ modules \ highgui \ src \ window.cpp: 352: ошибка: (-215: утверждение не выполнено) size.width> 0 && size.height> 0 в функции 'cv :: imshow'

поэтому я добавил модуль c ++ в свой VS и добавил следующую строку в код:

cv2.waitKey(0)
cv2.destroyAllWindows()

он работает, но немного запаздывает по сравнению с IDLE, кто-нибудь может объяснить, почему?

1 Ответ

0 голосов
/ 09 ноября 2019

Какую ошибку вы получаете на других IDE? Если вы наберете print(img), получите ли вы None на других IDE?

Кроме того, если вы укажете pip list, я могу посмотреть, смогу ли я воспроизвести вашу ошибку с пакетами, которые вы в данный момент установили.

Вы пытались использовать виртуальную среду для Python ( virtualenv , Anaconda или Miniconda )? Это хороший способ использовать разные версии python и ваши пакеты, не вступая в конфликт с системным python.

Я установил новую среду с пакетами на Anaconda conda create -n test python=3.7 opencv jupyter и запустил команды в opencv, как вы упомянули. Он работал в следующих установленных IDE:

  • Visual Studio 2019
  • Код Visual Studio
  • JetBrains PyCharm
  • GNU emacs
  • Jupyter Notebooks (IPython) (на самом деле не IDE)

Для каждой IDE вам нужно будет указать их на интерпретатор python, который был настроен с использованием вашей виртуальной среды (могу предоставитьболее подробные инструкции). Я подозреваю, что происходит то, что python настроен не так, как другие ваши IDE. import sys; print(sys.path) может сказать вам, если это так. Или, может быть, бэкэнд другой - дело в том, что существует слишком много переменных, и было бы лучше создать виртуальную среду, чтобы увидеть, если вы получите ту же ошибку.

РЕДАКТИРОВАТЬ: я сделал блокнот Jupyter, который вы можете использоватьдля тестирования. Если вы хотите увидеть его запуск, вы можете нажать на Binder в правом верхнем углу (или начать с Colab) . Дело в том, что если вы скачали этот блокнот и запустили его в среде Python, он должен работать (я включил инструкции по настройке conda в блокнот). NBViewer , GitHub Repository

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...