open cv2图像通道变换

open cv2有150种颜色通道转换的方法,使用最广的有两种:BGR↔Gray,BGR↔HSV,关于其他的通道转换方法,可以使用以下代码进行获取:

import cv2

dir_cv2=dir(cv2)

for i in dir_cv2:

    if i.startswith('COLOR_'):

        print(i)


运行得到的一部分结果:

COLOR_BAYER_BG2BGR

COLOR_BAYER_BG2BGRA

COLOR_BAYER_BG2BGR_EA

COLOR_BAYER_BG2BGR_VNG

COLOR_BAYER_BG2GRAY

COLOR_BAYER_BG2RGB

COLOR_BAYER_BG2RGBA

.

.

.

注意:对于HSV(H:色相,就是区分不同颜色的属性;S:饱和度;V:明度),open cv的色相范围是[0,179],饱和度和明度都是[0,255]

颜色通道转化

使用函数:cv2.cvtColor(img,transformation_method)

img:源图像

transformation_method:也就是图像颜色通道转化的方向,就是上面提到的那150种方法。cv2.COLOR_BGR2GRAY是用于从BGR格式转化为Gray格式。类似的,cv2.COLOR_BGR2HSV是从BGR转化为HSV格式。

颜色追踪

因为HSV通道对于图片中对象的寻找能力强于BGR,但是我们一般接触到的图像是BGR图像,怎么样把特定的BGR的值转化为HSV值呢?

下面的例子是在HSV通道中找出在BGR中纯绿色代表的HSV值:

green = np.uint8([[[0,255,0 ]]]) 

#创建一个三维数组(uint8表示数组的元素都是无符号一个字节的数,范围是0-255),由于green.shape=(1,1,3),这个数组就可以视为一个点,并且这点的三个通道(BGR)分别是0,255,0,没有红色和蓝色成分并且绿色成分是满的,也就是一个绿色的点

hsv_green = cv2.cvtColor(green,cv2.COLOR_BGR2HSV)  #转换颜色通道

print (hsv_green)


未完。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容