opencv颜色空间转换:cv.cvtColor()、cv.inRange、cv.bitwise_and等函数解析;BGR、HSV、HSL、GRAY等简介

0 引言

使用opencv进行视觉识别处理时,大多数函数需要图片为单通道(灰色),同时我们也可以通过cv.inRange、cv.bitwise_and等函数的操作,完成以颜色为特征的图像提取,达到一定程度上的图像识别。(完整代码附于文末,其中本文未提到的函数,在本专栏前几节均有提到,欢迎大家去翻阅)

1 先简单了解一下颜色空间

颜色空间主要包括BGR、HSV、HSL、GRAY等等,还有很多颜色空间,大家感兴趣可以去搜索了解了解。但博主目前最主要使用到的就是上述4种。
BGR:三通道,蓝色(B)、绿色(G)、红色(R)
HSV:三通道,色调(H),饱和度(S),明度(V)
HSL:三通道,色相(H)、饱和度(S)、亮度(L)
GRAY:单通道,灰度空间
注:三通道的颜色空间由三个参数共同作用成一种颜色。

2 将BGR转换为HSV

对于色彩空间的转换,可以使用函数cv.cvtColor(src, code),该函数输入值为两个参数,src是指处理的对象窗口,code是指颜色空间转换的类型:
例cv.COLOR_BGR2GRAY,color自然指颜色,而BGR2GRAY与BGR to GRAY同义,就是告诉计算机将BGR色彩空间转换为灰度空间。
本节将BGR转换为HSV具体程序如下:

import cv2 as cv
import numpy as np
cap=cv.VideoCapture(0)
while(1):
    #读取帧
    _,frame=cap.read()
    #转换颜色空间BGR到HSV
    hsv=cv.cvtColor(frame,cv.COLOR_BGR2HSV)

3 提取图片中的指定颜色

提取颜色有两个步骤,首先是指定我们要提取什么颜色,然后进行像素对比提取。指定颜色我们可以给一个范围,比如说我们想要提取绿色,那么我们给出范围(最大值与最小值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值