python - 为什么我不能重塑从图像派生的 numpy 数组?
问题描述
我在一个目录中有几个 PNG 文件,我打算将它们读入数组并且我想将其展平。所有图像都是灰度图像,是两个通道图像值,如 (28,28)。
当我运行这段代码
import numpy as np
import cv2,os,glob
import matplotlib.pyplot as plt
from PIL import Image
arrays_of_images=[]
data_paths = [os.path.join(pth, f) for pth, dirs, files in os.walk(path) for f in files]
for image in data_paths:
img=Image.open(image)
resized=img.resize((28,28))
arrayed=np.array(resized)
raveled=arrayed.ravel()
arrays_of_images.append(raveled)
它让我看到了一个由 (28,28) 维度的数组组成的列表。当我将列表转换为数组时,图像总数为 736,我得到 (736,28,28) 大小的数组。如您所见,该ravel()
功能不起作用。我想将每个图像的数组展平为 (28x28) 大小,并且我想要 (736,28*28) 大小的数组。
这里有什么问题?为什么ravel()
功能不起作用?
我也试过numpy.ndarray.flatten()
了,它对我也不起作用?
之后,我会将这个数组转换为 pandas 数据帧使用to_csv()
函数,并将其用于 K 近邻进行图像相似性检测。
解决方案
推荐阅读
- python - 是否可以从相同的列表中生成相同的 id 但顺序不同?
- postgresql - Alembic 不能自动转换为整数类型
- apache-spark - 将 Power BI 连接到 Spark thrift
- c# - Update void doesnt work for me, what am I missing?
- node.js - 将 gsap 节点模块与 Meteor 一起使用
- mysql - sql连接来自同一个表的值
- android - Save a text file from a Flutter Android app that can be accessed by user
- reactjs - 列表数据更改时,材质 UI 列表滚动不会重置
- python - Kivy Buildozer VM - Can't build apk - Build failed: python-for-android
- node.js - 在 cloudinary 依赖 npm install 之后找不到模块“cloudinary”的声明文件