Как открыть изображение с помощью cv2 в модуле python - PullRequest
0 голосов
/ 07 июля 2019

Так что это код, который у меня есть, и он работает нормально, как и должно быть, он отображает изображение, пока вы не нажмете кнопку:

import cv2
def open_img():
   template = cv2.imread('templates\\img_test.jpg')
   cv2.imshow('template', template)
   cv2.waitKey(0)
   cv2.destroyAllWindows()
open_img()

Этот скрипт называется 'img_mod' и хранится в 'обнаружение.Теперь я хотел бы вызвать эту функцию из другого скрипта:

from detection import img_mod
img_mod.open_img()

, это создает следующую ошибку:

Traceback (most recent call last):
  File "D:/Projects/BJ/Sandbox.py", line 3, in <module>
    img_mod.open_img()
  File "D:\Projects\BJ\detection\img_mod.py", line 6, in open_img
    cv2.imshow('template', template)
cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

Мне кажется, что это ошибка указания cv2.Но я понятия не имею, почему это не работает.Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 07 июля 2019

Это то, что происходит, когда imread() не может прочитать изображение и возвращает None, а None передается imshow().

Есть несколько возможностей. Наиболее вероятно, что вы находитесь не в том каталоге, в котором, как вы думаете, вы находитесь, и в текущем каталоге нет папки templates. Вы можете справиться с этим, передав полный путь к img_test.jpg.

0 голосов
/ 07 июля 2019

Ваше изображение в

D:\Projects\BJ\detection\templates\img_test.jpg

, но теперь вы пытаетесь загрузить его из

D:\Projects\BJ\templates\img_test.jpg

, потому что вы запускаете другой файл Python.

0 голосов
/ 07 июля 2019

Сообщение об ошибке связано с ошибкой подтверждения: size.width>0 && size.height>0

Это означает, что функция не выполняет действие, поскольку некоторые условия не выполняются.

Вероятно, ваше изображениеtemplates\\img_test.jpg недействительно или не существует.Попробуйте, например, указать полный путь к действительному файлу изображения.

...