[python零基础学习] cv2.imread()方法介绍
[python零基础学习] cv2.imread()方法介绍def imread(filename: Any,flags: Any = None) -> Nonefilename:图片的绝对路径或者相对路径。 ps:路径中不能出现中文!flags:图像的通道和色彩信息(默认值为1),即彩色图片。flags = -1,8位深度,原通道flags = 0,8位深度,1通道flags = 1,8位
def imread(filename: Any,
flags: Any = None) -> None
filename:图片的绝对路径或者相对路径。 ps:路径中不能出现中文!
flags:图像的通道和色彩信息(默认值为1),即彩色图片。
flags = -1, 8位深度,原通道
flags = 0, 8位深度,1通道
flags = 1, 8位深度,3通道
flags = 2, 原深度, 1通道
flags = 3, 原深度, 3通道
flags = 4, 8位深度,3通道
那图像的深度,通道信息指的是什么呢?
图像的深度:
图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机中所有图片是以二进制存储 的 | |
---|---|
1 bit | 存储像素点的取值范围为0~1,人眼看来这幅图片是黑色或者白色。 |
4 bit | 存储像素点的取值范围为0~15 |
8 bit | 存储像素点的取值范围为 0~255 |
… | … |
以此类推,我们把计算机存储单个像素点所用到的bit为称之为图像的深度.
图像的通道:
我们知道了图片的深度信息,如果是24位的图片他的取值范围为 0 到 2的24次方,这个取值范围是相当的庞大的,那怎么根据图片某像素的深度值来确定那一像素点的颜色呢?
我们都知道颜色的三元素 Red, Green, Blue. 如果是深度为24=3*8,我们刚好就可以用第一个8位存储Red值,第二个存储Green值,第三个存储Blue值, 2的8次方刚好是255,所以我们一般看到的RGB值都是(0-255,0-255,0-255)这样的值。如果用rgb来表示图片的颜色值,我们称这样的图片通道为3。
代码测试imread():
# cv2.imread()接口读图像,读进来默认是BGR 格式数据格式在 0~255,通道格式为(W,H,C)
img = cv2.imread('./lena.jpg', -1)
plt.subplot(3, 2, 1)
plt.imshow(img)
plt.axis('off')
plt.title('flag = -1')
img_0 = cv2.imread('./lena.jpg', 0)
plt.subplot(3, 2, 2)
plt.imshow(img_0)
plt.axis('off')
plt.title('flag = 0')
img_1 = cv2.imread('./lena.jpg', 1)
plt.subplot(3, 2, 3)
plt.imshow(img_1)
plt.axis('off')
plt.title('flag = 1')
img_2 = cv2.imread('./lena.jpg', 2)
plt.subplot(3, 2, 4)
plt.imshow(img_2)
plt.axis('off')
plt.title('flag = 2')
img_3 = cv2.imread('./lena.jpg', 3)
plt.subplot(3, 2, 5)
plt.imshow(img_3)
plt.axis('off')
plt.title('flag = 3')
img_4 = cv2.imread('./lena.jpg', 4)
plt.subplot(3, 2, 6)
plt.imshow(img_4)
plt.axis('off')
plt.title('flag = 4')
plt.show()
运行结果如下:
更多推荐
所有评论(0)