图像颜色空间转换
在使用OpenCV读去图像文件时,我们得到的图像通道顺序是BGR,每个通道的数值是0~255之间。由于对图像操作的需要,我们会将图像进行颜色空间转换处理,通常是将图像从RGB颜色空间转换到其他颜色空间,比如HSV颜色空间。这个过程需要用到两个opencv库函数。
图像读取函数
cv2.imread()
这个函数有两个参数,第一个是图像文件名,即输入图像的文件所在路径和名称;第二个参数是flag,指定读取图像文件的类型,常见的三种读取图像类型的标志为:
(1)cv2.IMREAD_COLOR: 默认参数,读入彩色图像,忽略alpha通道,数字1;
(2)cv2.IMREAD_GRAYSCALE:读入灰度图片,数字0;
(3)cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,数字-1。转换图像颜色空间函数
cv2.cvtColor()
这个函数同样是两个参数,一个是读入的图像image,一个是指定图像要转换的类型,比如灰度类型,HSV颜色空间,BGR转RGB通道等
以下图为例做实验:

具体代码如下:
1 | # -*-coding:utf-8-*- |
图像转换效果:
图像的创建和复制
在opencv-python中创建图像和复制图像都是numpy数组的操作,本文介绍两种创建图像和两种复制图像的方法。两种创建图像的方式是:
1. 使用np.zeros_like()函数
该函数是将已读取的图片image作为参数传入函数,就可以创建一个和image形状相同的图像,但是都是0像素值。
2. 使用np.zeros()函数
该函数要传入需要创建图像的形状,并且需要指定数组的数据类型,默认值是np.float64
在复制图像时,本文也给出两种实现方法:
1. 使用np.copy()函数
将需要复制的图像image传入该函数,会返回一个numpy数组也即是图像,改变该返回值图像的内容,原图像不会改变。
2. 使用直接赋值的方法
可以采用直接复制的方法将图像image复制给新的变量实现图像的复制,但是这种复制在改变新的图像时,原来的图像也会随着改变。
具体代码如下:
1 | # -*-coding:utf-8-*- |
图像创建和复制结果展示:
更多精彩内容请关注微信公众号《AI与计算机视觉》。