from PIL import Image
import numpy as np
#读入图片
img=Image.open(r"D:\桌面\images\1.jpg")
#如果想可视化展示出这幅图片的话:
#img.show()
#将图片转为numpy数组格式
img_array=np.array(img)
print(img_array.shape)
#输出得到:(810, 1080, 3)
#三个参数的意义是:高,宽,通道数,所以这是一个三通道的图片
#img_array.shape是一个元组,因此#img_array.shape[0]=810,img_array.shape[1]=1080,img_array.shape[2]=3
既然这张图像有三个通道,我们现在想要看一下这张图像的每个通道的每个像素的像素值是多少
array1=img_array[:,:,0]
print(array1)
array2=img_array[:,:,1]
print(array1)
array2=img_array[:,:,2]
print(array1)
这样得到的其实不太直观:
所以我们打断点,在array1=img_array[:,:,0]这行语句的左边打断点:
以调试模式运行这个程序:
点击这个 "作为Array查看",得到:
的确是高为810,宽为1080
同理可以看其他两个通道的每个像素的像素值是多少
作业:判断下面这张图有几个通道?每个通道的像素最大值是多少,像素最小值是多少?
from PIL import Image
import numpy as np
img=Image.open(r"D:\桌面\images\6.png")
#img.show()
img_array=np.array(img)
print(img_array.shape)
#输出得到:(480, 854)
#所以这是一张单通道图像
print(img_array)
发现全都是0或1
验证一下:
print(img_array.max())#1
print(img_array.min())#0
print(img_array.mean())#0.5339114949258392