Я пытаюсь отобразить изображение в относительном пути в окне, используя OpenCV, но я получаю сообщение об ошибке типа - PullRequest
0 голосов
/ 29 сентября 2019

Очевидно, что сообщение об ошибке является ошибкой типа, но когда я ее печатаю, выводится " Нет ".

Я искал ошибку, потому что этоне массив Numpy, поэтому я преобразовал его в массив Numpy.

Кроме того, я попытался преобразовать переменную с относительными или абсолютными путями.

Img_Folder = os.path.join(os.getcwd(), 'Photo', 'GMD Miss')
File_List = os.listdir(Img_Folder)

img = Img_Folder + File_List[0]
img = np.array(img)
img = cv2.imread(img)

cv2.imshow('img', img)
cv2.waitkey(0)
cv2.destroyAllWindows()

Таким образом, я получил это сообщение об ошибке.

TypeError: Ожидается cv :: UMat для аргумента 'mat'

1 Ответ

0 голосов
/ 29 сентября 2019

Есть ряд проблем с вашим кодом. Основной (о чем идет речь) исходит из строки: img = np.array(img). Вы строите массив np из пути к файлу (, который не имеет смысла ), и вы передаете его imread .

Youследует:

Пример :

>>> import os
>>> import cv2
>>>
>>> img_file_name = os.path.join(os.getcwd(), "..\\..\\c", "2160-0.jpg")
>>> img_file_name  # Make sure that the path contains all the path separators (which doesn't happen in your case, as the last one is missing, because of: `img = Img_Folder + File_List[0]`)
'C:\\WINDOWS\\system32\\..\\..\\c\\2160-0.jpg'
>>>
>>> img = cv2.imread(img_file_name)
>>> type(img), img.shape
(<class 'numpy.ndarray'>, (316, 647, 3))
>>>
>>> cv2.imshow("Image", img)
>>> cv2.waitKey(0)  # Capital K
>>>
>>> cv2.destroyAllWindows()
>>>
...