【问题标题】:GOOGLE COLAB: cv2.imread return NoneTypeGOOGLE COLAB:cv2.imread 返回 NoneType
【发布时间】:2020-08-17 03:35:51
【问题描述】:

我无法在 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 always returns NoneType

【问题讨论】:

  • 改成img = cv2.imread('/content/drive/My Drive/path_to_image/1.png')
  • 我的驱动器之间的路径中的空间可能导致问题。

标签: python python-3.x opencv google-colaboratory


【解决方案1】:

我通常使用 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

【讨论】:

    【解决方案2】:

    您的图片路径有问题。要么像@sK500 建议的那样,而不是 gdrive,它必须是驱动器。检查你的 mount 语句。

    drive.mount('/content/drive')
    

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

    【讨论】:

      【解决方案3】:

      我认为有一个简单的错字

      替换下面的行

      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'>
      

      【讨论】:

        【解决方案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 放在single quotation 中不起作用!!

        在我的情况下必须如下所示;

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

        已编辑:

        我想出了另一个解决方案来克服 Colab 中这个烦人的"My Drive" 问题。

        第 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
        

        【讨论】:

          【解决方案5】:

          感谢您分享解决方案。我想出了一个更简单的方法来从谷歌驱动程序中导入图像。

          第 1 步:

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

          第二步:

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

          就是这样!

          【讨论】:

            猜你喜欢
            • 2013-07-30
            • 1970-01-01
            • 2020-09-19
            • 1970-01-01
            • 2021-02-27
            • 1970-01-01
            • 2017-05-05
            • 2021-12-08
            相关资源
            最近更新 更多