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

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~158 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():


    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()

运行结果如下:

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

Original: https://blog.csdn.net/qq_38817767/article/details/119802051
Author: 是小伟伟啊
Title: [python零基础学习] cv2.imread()方法介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/632796/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球