Невозможно прочитать изображение в tmp в gcloud через cv2.imread (), оно не возвращает ни одного - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь прочитать изображение из моей папки tmp в моем приложении gcloud django для дальнейшей обработки обнаружения лица, но моя функция cv2.imread () не возвращает ничего, когда я указываю путь к файлу в качестве аргумента. в моем пути к файлу нет проблем, так как я его проверил.

...
im = cv2.imread("/tmp/" + pathname)
print("IMAGE IS ", im)                #returns IMAGE IS None
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
...

Ошибка, которую я получаю

OpenCV (4.2.0) / io / opencv / modules / imgproc / src / color. cpp: 182: ошибка: (-215: подтверждение не выполнено)! _sr c .empty () в функции 'cvtColor'

Проверка существования файла с использованием следующего фрагмента код:

if os.path.exists("/tmp/" + pathname):
       print("IMAGE EXISTS !") //returns this
else:
       print("IMAGE DOESNT EXISTS !")

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Путь к файлу является проблемой. cv2.imread не будет отображать ошибку при вводе неверного пути к изображению. Вы пробовали без / перед tmp?

pathname = "image.jpg"
im = cv2.imread("tmp/"+pathname)
print("IMAGE IS ", im)  
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
0 голосов
/ 29 апреля 2020
import cv2
import numpy as np
import urllib

url = "https://i.stack.imgur.com/AVWX7.jpg";
resp = urllib.urlopen(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)

Я решил, используя этот подход

Чтобы преобразовать GS в обычный URL.

bucket = 'example-bucket'
file = 'sunset.jpg'

gcs_url = 'https://%(bucket)s.storage.googleapis.com/%(file)s' % {'bucket':bucket, 'file':file}

print gcs_url
...