python - 将图像转换为像素数组
问题描述
我正在尝试将灰度图像的像素转换为 numpy 数组。
在谷歌 colab 上工作。
它显示一条错误消息: TypeError: 'numpy.uint8' object is not iterable
enter code here
##load Library
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from google.colab import files
from scipy import misc #to see image
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from PIL import Image
pil_im = Image.open('papa.png')
pil_imgray = pil_im.convert('LA')
img = np.array(list(pil_imgray.getdata(band=0)), float)
img.shape = (pil_imgray.size[1], pil_imgray.size[0])
plt.imshow(img)
for eachRow in img:
for eachPixel in eachRow:
x_test.append(sum(eachPixel)/3.0)
解决方案
您可以使用 matplotlib 直接加载图像:
plt.imread('papa.png')
或者您可以使用以下命令转换您的 PIL 图像:
img = np.asarray(pil_im)
推荐阅读
- javascript - fs.readdir 没有读取作为参数传递的路径
- elasticsearch - 弹性搜索 - 有没有办法在可能符合“must_not”标准的结果中强制文档?
- arrays - 有没有办法可以将 a[indexOfMin] = a[startIndex] 转换为 ArrayList 形式?我似乎不能正确地这样做
- node.js - User.find 不是函数猫鼬
- angular - 如何从 Ionic 3 在 Modal 上 popToRoot
- android - Android导航如何在第二级片段上添加导航向上按钮
- php - 更新 wp 数据库中的记录
- graphql - 获取 NestJS/GraphQL 请求中的请求键列表
- python - 如何使用两个 for 循环来制作数字网格?
- python - 将两个具有多索引的数据帧相加