在谷歌colab中加载图像

时间:2018-03-09 05:03:59

标签: python opencv google-colaboratory

我的Jupyter Notebook有以下代码将图像上传到Colab:

from google.colab import files
uploaded = files.upload()

我收到提示输入文件。哪个上传。

我使用以下方法验证文件上传是否成功:

!ls

我发现它就在那里。

我使用以下方法检查当前的工作目录:

import os
os.getcwd()

它告诉我它是/ content

现在,以下任何一个电话......

cv2.imread(img_path, 1)
cv2.imread(img_path, 0)
cv2.imread(img_path)

无法加载文件。

如果我只使用文件名或完整路径,它们也会失败。

有关正在发生的事情的任何想法?

11 个答案:

答案 0 :(得分:8)

使用此功能上传文件。它也会保存它们。

def upload_files():
  from google.colab import files
  uploaded = files.upload()
  for k, v in uploaded.items():
    open(k, 'wb').write(v)
  return list(uploaded.keys())

更新

现在(sep 2018),左侧窗格有一个“文件”选项卡,可让您轻松浏览文件和上传文件。您也可以通过双击文件名来下载。

答案 1 :(得分:3)

Colab google:在多个子目录中上传图片 如果您想使用Colab谷歌上传多个子目录中的图像(或文件),请按照以下步骤操作: - 我假设您的图像(文件)被分成3个子目录(train,validate,test),在主目录中称为(dataDir): 1-将文件夹(dataDir)压缩到(dataDir.zip) 2-在Colab单元格中编写此代码:

from google.colab import files
uploaded = files.upload()

3-按下'选择文件'并从您的PC上传(dataDir.zip)到Colab 现在(dataDir.zip)上传到你的谷歌硬盘! 4-让我们通过编写这个简单的代码将文件夹(dataDir.zip)解压缩到一个名为(data)的文件夹中:

import zipfile
import io
data = zipfile.ZipFile(io.BytesIO(uploaded['dataDir.zip']), 'r')
data.extractall()

5-现在一切准备就绪,让我们通过打印(数据)文件夹的内容来检查:

data.printdir()

6-然后阅读图像,计算它们,拆分它们并围绕它们玩,请写下面的代码:

train_data_dir = 'data/training'  
validation_data_dir = 'data/validation'  
test_data_dir = 'data/test' 
target_names = [item for item in os.listdir(train_data_dir) if os.path.isdir(os.path.join(train_data_dir, item))]
nb_train_samples = sum([len(files) for _, _, files in os.walk(train_data_dir)])  
nb_validation_samples = sum([len(files) for _, _, files in os.walk(validation_data_dir)])
nb_test_samples = sum([len(files) for _, _, files in os.walk(test_data_dir)])
total_nb_samples = nb_train_samples + nb_validation_samples + nb_test_samples

nb_classes = len(target_names)      # number of output classes

print('Training a CNN Multi-Classifier Model ......')
print('\n - names of classes: ', target_names, '\n - # of classes: ', nb_classes)
print(' - # of trained samples: ', nb_train_samples, '\n - # of validation samples: ', nb_validation_samples,
      '\n - # of test samples: ', nb_test_samples,
       '\n - total # of samples: ', total_nb_samples, '\n - train ratio:', round(nb_train_samples/total_nb_samples*100, 2),
      '\n - validation ratio:', round(nb_validation_samples/total_nb_samples*100, 2),
      '\n - test ratio:', round(nb_test_samples/total_nb_samples*100, 2),
     ' %', '\n - # of epochs: ', epochs, '\n - batch size: ', batch_size)

7-就是这样!享受!

答案 2 :(得分:2)

您可以使用以下命令直接从互联网上在colab上获取图像

!wget "copy paste the image address here"

使用!ls

进行检查

使用以下代码显示图像:

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("Sample-image.jpg")
img_cvt=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_cvt)
plt.show()

答案 3 :(得分:2)

您可以通过单击左侧的文件夹绘图按钮将文件手动上传到google colab工作目录。然后可以像在您的计算机上一样访问它们。

enter image description here

答案 4 :(得分:1)

在Google Colab上上传,阅读和查看图像文件的最简单方法。

“ ----------------------- 将图片上传到colab -code ------------ ---------------“

from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

代码说明

colab中运行此代码后,将出现一个带有两个按钮“选择文件”和“取消上传”的小gui,使用这些按钮,您可以选择任何本地文件并将其上传。

“ ----------------------- 检查图像是否已上传 ----------------- --------------“

运行此命令:

import os
!ls
os.getcwd()

!ls-将为您提供上传文件的名称

os.getcwd()-将为您提供上传文件的文件夹路径。

“ ----------------------------- 从上传的文件中获取图像数据 ------ --------“

运行代码:

0 import cv2
1 items = os.listdir('/content')
2 print (items)
3 for each_image in items:
4  if each_image.endswith(".jpg"):
5   print (each_image)
6   full_path = "/content/" + each_image
7   print (full_path)
8   image = cv2.imread(full_path)
9   print (image)

代码说明

第1行:

items = os.listdir('/content')
print(items)

项目将包含上载文件的所有文件名的列表。

第3至9行:

第3行中的

for循环可帮助您遍历上载的文件列表。

第4行,就我而言,我只想读取图像文件,因此我选择仅打开 以".jpg"

结尾的文件

第5行将帮助您查看图像文件名

第6行将帮助您使用文件夹生成图像数据的完整路径

第7行,您可以打印完整路径

第8行将帮助您读取彩色图像数据并将其存储在image变量中

第9行可以打印图像数据

“ -------------------------- 查看图片 ---------- ---------------“

import matplotlib.pyplot as plt
import os
import cv2
items = os.listdir('/content')
print (items)    

for each_image in items:
  if each_image.endswith(".jpg"):
    print (each_image)
    full_path = "/content/" + each_image
    print (full_path)
    image = cv2.imread(full_path)
    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
plt.figure()
plt.imshow(image)
plt.colorbar()
plt.grid(False)

快乐的编码,就这么简单。

答案 5 :(得分:1)

您可以使用此功能绘制提供路径的图像。 使用函数可以很好地构造代码。

from PIL import Image # Image manipulations
import matplotlib.pyplot as plt
%matplotlib inline

# This function is used more for debugging and showing results later. It plots the image into the notebook
def imshow(image_path):
  # Open the image to show it in the first column of the plot 
  image = Image.open(image_path)  
  # Create the figure 
  fig = plt.figure(figsize=(50,5))
  ax = fig.add_subplot(1, 1, 1) 
  # Plot the image in the first axe with it's category name
  ax.axis('off')
  ax.set_title(image_path)
  ax.imshow(image) 

答案 6 :(得分:0)

假设您可能没有从内存中写入文件?

上传后尝试以下代码:

with open("wash care labels", 'w') as f:
    f.write(uploaded[uploaded.keys()[0]])

将“wash care labels.xx”替换为您的文件名。这会从内存中写入文件。然后尝试调用该文件。

希望这适合你。

答案 7 :(得分:0)

哈克在colab上传图片文件!

https://colab.research.google.com/

以下代码将图像(文件)从本地驱动器加载到colab。

from google.colab import files
from io import BytesIO
from PIL import Image

uploaded = files.upload()
im = Image.open(BytesIO(uploaded['Image_file_name.jpg']))

使用以下命令在google colab笔记本中查看图像:

import matplotlib.pyplot as plt

plt.imshow(im)
plt.show()

答案 8 :(得分:0)

更简单的方法:

由于colab提供了挂载Google驱动器的选项

  1. 将图像上传到您的Google驱动器
  2. 单击装载驱动器(上传图标的右侧)
  3. 查看'drive/My Drive/'下的文件

代码以检查文件

import glob
glob.glob("drive/My Drive/your_dir/*.jpg")

答案 9 :(得分:0)

将其上传到笔记本后,执行此操作

import cv2
import numpy as np
from google.colab.patches import cv2_imshow

img = cv2.imread('./your image file.jpg')
cv2_imshow(img)
cv2.waitKey()

答案 10 :(得分:0)

from deepface import DeepFace
import cv2
import matplotlib.pyplot as plt

from google.colab import files
from io import BytesIO
from PIL import Image

uploaded = files.upload()


next line

# im = Image.open(BytesIO(uploaded['img.PNG']))
img = cv2.imread("theCorona.PNG")
plt.imshow(img[:,:, ::-1])
plt.show()