我正在尝试将图像转换为像素数组。 这是我目前的代码。
im = Image.open("beeleg.png")
pixels = im.load()
im.getdata() # doesn't work
print(pixels # doesn't work
理想情况下,我的最终目标是将图像转换为仅像素的矢量,例如,如果我有尺寸100x100
的图像,那么我想要一个尺寸为1x10000
的矢量,其中每个值都在[0,255]之间。然后,将数组中的每个值除以256
,并在向量的前面添加1
的偏差。但是,如果不能获得阵列,我无法继续这一切。怎么办?
答案 0 :(得分:0)
Scipy的ndimage
库通常是用于处理像素作为数据(数组)的首选库。您可以使用scipy.ndimage.imread
将文件(支持的最常见格式)加载到numpy数组中,该数组可以轻松地重新整形和数学运算。 mode
关键字可用于在加载时指定颜色空间变换(将RGB图像转换为黑白图像)。在您的情况下,您要求0-255(8位灰度)的单色像素,因此您将使用mode='L'
。有关用法/更多有用的功能,请参阅The Documentation。
答案 1 :(得分:0)
如果使用OpenCV
,gray=cv2.imread(image,0)
将返回带有n rows
x m cols
单通道numpy数组的灰度图像。 rows, cols = gray.shape
将返回图片的高度和宽度。