Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';numpy数组中数字的含义是什么?_Python_Image Processing_Numpy_Scipy - Fatal编程技术网

Python 什么';numpy数组中数字的含义是什么?

Python 什么';numpy数组中数字的含义是什么?,python,image-processing,numpy,scipy,Python,Image Processing,Numpy,Scipy,在numpy中,array方法可以将图像转换为大数组,问题是,这个数组中的数字是什么意思?(RGB值?灰度值?) 此外,当我将图像转换为模式“1”时 我发现im_arr数组不仅显示0和255: array([[170, 170, 170, ..., 255, 255, 255], [255, 248, 255, ..., 175, 255, 222], [255, 255, 247, ..., 175, 170, 171], ..., [

numpy
中,
array
方法可以将图像转换为大数组,问题是,这个数组中的数字是什么意思?(RGB值?灰度值?)

此外,当我将图像转换为模式“1”时

我发现im_arr数组不仅显示0和255:

array([[170, 170, 170, ..., 255, 255, 255],
       [255, 248, 255, ..., 175, 255, 222],
       [255, 255, 247, ..., 175, 170, 171],
       ..., 
       [ 32, 105, 110, ...,  32, 124,  32],
       [ 32,  32,  32, ..., 101, 115,  39],
       [ 41,  10,  32, ..., 109, 111, 115]], dtype=uint8)

为什么??(我很想知道不同模式数组中数字的含义)

jpeg格式不支持模式1。将其保存为其他格式,png或bmp,然后查看该格式的数组


通过运行
im.convert(“1”)
,您正在将加载的图像转换为两层图像,该图像的像素值应仅为0或255。要做到这一点,

im_arr = np.array(im.getdata(), dtype = np.uint8).reshape(im.size[0], im.size[1])
这样,您将收到所需的双层图像,您可以使用
matplotlib.pyplot.imshow
保存或查看该图像

您收到的奇数来自到numpy数组的转换过程。如果选择不同的数据类型(
np.int
np.int8
np.uint8
,…),您会发现每种类型都返回不同的数组


由于不太了解
PIL.Image
的对象结构,我无法解释这是为什么。但是我认为可以肯定地说,如果没有
.getdata()
的话,结果就是垃圾。

你最初从哪里得到
im
im_arr = np.array(im.getdata(), dtype = np.uint8).reshape(im.size[0], im.size[1])