当前位置: 代码迷 >> 综合 >> [python零基础学习] cv2.imread()方法介绍
  详细解决方案

[python零基础学习] cv2.imread()方法介绍

热度:79   发布时间:2023-12-27 15:40:15.0
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()

运行结果如下:
运行效果图