GOOGLE COLAB: cv2.imread вернуть NoneType - PullRequest
2 голосов
/ 02 мая 2020

Я не мог использовать cv2.imread в Google Colab. Я пытался вот так:

import cv2
img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png')
print(type(img))

>> `<class 'NoneType'>`

Я не знаю, почему это выдает это !! Я попробовал ниже это снова ... используя r

img = cv2.imread(r'/content/gdrive/My Drive/path_to_image/1.png')

Я не мог понять, почему он возвращает объект NoneType. Там нет проблем с изображением пути. Я попробовал следующую ссылку, но не смог добиться успеха. cv2.imread всегда возвращает NoneType

Ответы [ 4 ]

2 голосов
/ 03 мая 2020

Надеюсь, мое решение кому-нибудь поможет. В моем случае вызов img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png') фактически был частью функции в FASTER RCNN. Я не мог разрешить любые другие существующие методы в inte rnet. Наконец я сделал это, как показано ниже, и это сработало.

Прежде всего, я думаю, что проблема в cv2.imread() не распознает My Drive .. пробел между My & Drive. Хотя я узнал это с самого начала, моя попытка была такой, как показано ниже.

"/content/gdrive/'My Drive'/path_to_image/1.png"

Но просто вставить My Drive в single quotation не получилось !!

Должно быть, как показано ниже работать в моем случае;

"/content/gdrive/"+"My Drive"+"/path_to_image/1.png"

Отредактировано:

Я нашел другое решение, чтобы преодолеть эту досадную проблему "My Drive" в Colab.

шаг 1:

from google.colab import drive
drive.mount("/content/drive/")

шаг 2:

import os
os.getcwd()
!mkdir MyDrive   # make a directory called MyDrive

шаг 3:

!mount --bind /content/drive/My\ Drive /content/MyDrive
0 голосов
/ 02 мая 2020

Что-то не так в вашем пути изображения. Либо как @ sK500 предложил вместо gdrive это должен быть диск. Проверьте оператор монтирования.

drive.mount('/content/drive')

Также, если вы подключили диск напрямую с помощью пользовательского интерфейса, он будет использоваться вместо gdrive. Если это не так, то вместо этого вы используете пользовательский интерфейс слева для просмотра файлов и достижения целевого изображения. Затем щелкните правой кнопкой мыши и скопируйте его путь.

0 голосов
/ 03 мая 2020

Я думаю, что в

есть простая опечатка, замените следующую строку с

img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png').  

на

img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png')

Я пытался точно так же (удаление g из gdrive). По какой-то причине colab не выдает ошибку, если папка неверна.

img = cv2.imread('/content/gdrive/My Drive/Data/cat.png')
print(type(img))

#output
<class 'numpy.ndarray'>
0 голосов
/ 02 мая 2020

Я обычно использую load_img из keras.preprocessing.image для загрузки изображений в Google Colab.

img = load_img('/content/gdrive/My Drive/path_to_image/1.png')

возвращает. вам может понадобиться использовать img_to_array из keras.preprocessing.image, если вы хотите получить его в массив.

arr = img_to_array(img)

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

from keras.preprocessing.image import load_img,img_to_array,array_to_img,save_img
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...