【问题标题】:what is type of this data?这个数据的类型是什么?
【发布时间】:2020-01-19 23:16:00
【问题描述】:

请告诉我 train_images 的类型?它的 nparray?

    data_dir = self.data_dir
    fd = open(os.path.join(data_dir, 'train-images-idx3-ubyte'))
    loaded = np.fromfile(file=fd, dtype=np.uint8)
    train_images = loaded[16:].reshape((60000, 28, 28,1)).astype(np.float)

我的另一个问题是:如何将一个文件夹的 jpg 图像转换为 train_images 格式?我想制作训练和测试数据集。 谢谢

【问题讨论】:

  • print( type(train_images) )
  • 我没有运行这段代码。因为我没有那个数据
  • Stackoverflow 不是论坛,而是 Question@Answers 门户。您应该在一页上提出一个问题。对于其他问题,您应该使用按钮
  • 我不知道你用什么模块,但是很多数据科学模块都有加载图像和直接创建numpy数组的功能。 IE。 cv2.imread(filename), matplotlib.pyplot.imread(filename), np.array(imageio.imread(filename))

标签: python image-processing computer-vision data-science


【解决方案1】:

要检查任何对象的类型,您可以使用type()

print( type(train_images) ) 

许多模块(不仅适用于数据科学)具有加载图像和直接创建 numpy 数组的功能,或者可以使用np.array() 轻松转换。

import numpy as np
import matplotlib.pyplot as plt

filename = 'image.jpg'

import matplotlib.pyplot

img = matplotlib.pyplot.imread(filename)

print(type(img), img.shape)
plt.imshow(img)
plt.show()

可能需要将颜色 BGR 转换为 RGB

import cv2

img = cv2.imread(filename)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

print(type(img), img.shape)
plt.imshow(img)
plt.show()

import imageio

img = np.array(imageio.imread(filename))
img = np.array(img)

print(type(img), img.shape)
plt.imshow(img)
plt.show()

import PIL.Image

img = PIL.Image.open(filename)
img = np.array(img)

print(type(img), img.shape)
plt.imshow(img)
plt.show()

需要旋转 - 交换轴

import pygame

img = pygame.image.load(filename)
img = pygame.surfarray.array3d(img)
img = img.swapaxes(0, 1)

print(type(img), img.shape)
plt.imshow(img)
plt.show()

import skimage

img = skimage.io.imread(filename)

print(type(img), img.shape)

plt.imshow(img)
plt.show()

import scipy.misc

img = scipy.misc.imread(filename)

print('scipy:', type(img), img.shape)

plt.imshow(img)
plt.show()

它加载图像但显示警告:

DeprecationWarning: `imread` is deprecated!
`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.
Use ``imageio.imread`` instead.

它必须从PIL.Image 转换为numpy.array

from keras.preprocessing.image import load_img

img = load_img(filename)
img = np.array(img)

print('keras:', type(img), img.shape)

plt.imshow(img)
plt.show()

【讨论】:

    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多