谷歌协作平台:cv2.imread返回NoneType。

4

我在Google Colab中无法使用cv2.imread。 我尝试了以下方法;

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


1
更改为img = cv2.imread('/content/drive/My Drive/path_to_image/1.png') - user12690225
也许路径中 My Drive 之间的空格导致了问题。 - fmw42
5个回答

4
希望我的解决方案能够帮助到别人。在我的情况下,调用 img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png') 实际上是 FASTER RCNN 中一个函数的一部分。我无法解决互联网上存在的任何其他方法。最后,我像下面这样做了,它起作用了。
首先,我认为问题在于 cv2.imread() 不能识别 My Drive ...即MyDrive之间的空格。尽管我从一开始就认识到了这个问题,但我的尝试如下...
"/content/gdrive/'My Drive'/path_to_image/1.png"

但是仅仅将我的驱动器(My Drive)放在单引号中并不能起作用!!

必须按照以下方式才能在我的情况下正常工作;

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

编辑:

我提出了另一种解决Colab中令人烦恼的“我的驱动器”问题的方法。

步骤1:

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

步骤 2:

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

步骤三:

!mount --bind /content/drive/My\ Drive /content/MyDrive

1
感谢您分享解决方案。我想出了一个更简单的方法来从Google Driver导入图像。
步骤1:
#import google driver
from google.colab import drive
drive.mount("/content/drive/")

第二步:

img0 = cv2.imread('/content/MyDrive/image_path/image.jpg')

就是这样了!


0

你的图片路径有问题。像@sK500建议的那样,它应该是drive而不是gdrive。检查你的挂载语句。

drive.mount('/content/drive')

如果您直接使用UI挂载驱动器,则它将成为驱动器,而不是gdrive。 如果这不是错误的话,那么您可以使用左侧的UI浏览文件并到达目标图像。 然后右键单击它并复制其路径。


0

我通常使用keras.preprocessing.image中的load_img在google colab中加载图像。

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

它返回ing。如果您想将其转换为数组,您可能需要使用keras.preprocessing.image中的img_to_array。

arr = img_to_array(img)

这些都是我通常导入的图像处理:

from keras.preprocessing.image import load_img,img_to_array,array_to_img,save_img

0

我认为这里有个简单的打字错误

请将以下行替换为

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

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

我尝试了完全相同的操作(从gdrive中删除g)。由于某种原因,当文件夹错误时,Colab不会抛出错误。

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

#output
<class 'numpy.ndarray'>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接