Python GOOGLE COLAB:cv2.imread返回非类型

Python GOOGLE COLAB:cv2.imread返回非类型,python,python-3.x,opencv,google-colaboratory,Python,Python 3.x,Opencv,Google Colaboratory,我无法在google colab中使用cv2.imread。我试着这样做 import cv2 img = cv2.imread('/content/gdrive/My Drive/path_to_image/1.png') print(type(img)) >> `<class 'NoneType'>` 我无法理解它为什么返回NoneType对象。图片路径没有问题。 我尝试了以下链接,但没有成功。 我通常使用keras.preprocessing.image中的lo

我无法在google colab中使用
cv2.imread
。我试着这样做

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

>> `<class 'NoneType'>`
我无法理解它为什么返回
NoneType
对象。图片路径没有问题。 我尝试了以下链接,但没有成功。

我通常使用keras.preprocessing.image中的load\u img在google colab中加载图像

img = load_img('/content/gdrive/My Drive/path_to_image/1.png')
它返回时会发出刺耳的声音。如果要将img_转换为数组,可能需要使用keras.preprocessing.image中的img_转换为数组

arr = img_to_array(img)
这些都是我通常导入的图像处理:

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

您的映像路径有问题。要么像@sK500建议的那样而不是gdrive,它必须是drive。检查你的挂载声明

drive.mount('/content/drive')

另外,如果您使用UI直接安装了驱动器,那么它将是驱动器而不是gdrive。如果这没有错,那么您可以使用左侧的UI浏览文件并到达目标图像。然后右键单击它并复制其路径

我认为这是一个简单的打字错误

从中更换以下行

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'>
img=cv2.imread('/content/gdrive/My Drive/Data/cat.png')
打印(类型(img))
#输出

我希望我的解决方案能帮助别人。 在我的例子中,调用
img=cv2.imread('/content/gdrive/my Drive/path_to_image/1.png')
实际上是更快的RCNN中函数的一部分。我无法解析internet上任何其他现有的方法。最后,我像下面那样做了,它成功了

首先,我认为问题在于
cv2。imread()
无法识别
我的驱动器。。
My
驱动器之间的空间。虽然我从一开始就意识到了这一点,但我的尝试如下

"/content/gdrive/'My Drive'/path_to_image/1.png"
但是简单地把
我的驱动器
放在
单引号中
是行不通的

在我的情况下,它必须像下面这样工作

"/content/gdrive/"+"My Drive"+"/path_to_image/1.png"
编辑:

我想出了另一个解决方案来解决Colab中这个恼人的
“我的驱动器”
问题

第1步:

from google.colab import drive
drive.mount("/content/drive/")
import os
os.getcwd()
!mkdir MyDrive   # make a directory called MyDrive
!mount --bind /content/drive/My\ Drive /content/MyDrive
第二步:

from google.colab import drive
drive.mount("/content/drive/")
import os
os.getcwd()
!mkdir MyDrive   # make a directory called MyDrive
!mount --bind /content/drive/My\ Drive /content/MyDrive
第三步:

from google.colab import drive
drive.mount("/content/drive/")
import os
os.getcwd()
!mkdir MyDrive   # make a directory called MyDrive
!mount --bind /content/drive/My\ Drive /content/MyDrive

将其更改为
img=cv2.imread('/content/drive/My drive/path_to_image/1.png')
可能是我的驱动器之间的路径空间导致了问题。