Запуск базовой программы OpenCV на Python - PullRequest
0 голосов
/ 12 февраля 2019

Я новичок, пытающийся изучать opencv.Я успешно установил opencv в моей системе Ubuntu и пытался запустить несколько кодов из Интернета, и я столкнулся с этой проблемой

# import the necessary packages
from __future__ import print_function
import imutils
import cv2

# load the Tetris block image, convert it to grayscale, and threshold
# the image
print("OpenCV Version: {}".format(cv2.__version__))
image = cv2.imread("tetris_blocks.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)[1]

# check to see if we are using OpenCV 2.X or OpenCV 4
if imutils.is_cv2() or imutils.is_cv4():
    (cnts, _) = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE)

# check to see if we are using OpenCV 3
elif imutils.is_cv3():
    (_, cnts, _) = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE)

# draw the contours on the image
cv2.drawContours(image, cnts, -1, (240, 0, 159), 3)
cv2.imshow("Image", image)
cv2.waitKey(0)

В результате должно быть изображение, но появляется следующая ошибка:

runfile('/home/viper_36/pythontemp/temp.py', wdir='/home/viper_36/pythontemp')
OpenCV Version: 4.0.0
Traceback (most recent call last):

  File "<ipython-input-1-202e5c8bcd5b>", line 1, in <module>
    runfile('/home/viper_36/pythontemp/temp.py', wdir='/home/viper_36/pythontemp')

  File "/home/viper_36/anaconda3/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 704, in runfile
    execfile(filename, namespace)

  File "/home/viper_36/anaconda3/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/home/viper_36/pythontemp/temp.py", line 11, in <module>
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

error: OpenCV(4.0.0) /io/opencv/modules/imgproc/src/color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

1 Ответ

0 голосов
/ 12 февраля 2019

Последняя строка вашей ошибки: (-215:Assertion failed) !_src.empty() in function 'cvtColor' Много вам говорит!

«Утверждение» означает, что программа что-то проверяет: «если то, что будет дальше, не соответствует действительности: я брошуошибка."Что будет дальше !_src.empty() можно перевести как «исходное изображение не пустое».Это должно быть правдой, иначе утверждение вызовет ошибку.

Все это означает, что указанный вами путь к изображению находится не там, где находится изображение.Убедитесь, что изображение тетриса находится в той же папке, в которой вы выполняете.Или используйте абсолютный путь.В Ubuntu это должно выглядеть примерно так: /home/<user>/path/to/image/tetris_blocks.png Если вы нажмете ctrl-c изображение в проводнике, будет скопирован абсолютный путь!

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