零基础学习opencv 色彩空间 color space

RGB 色彩空间是立方体的  HSV的色彩空间是圆柱形

在opencv当中 hsv中的H 的取值范围是 0到180,在其他地方都是360

按照老师的理解来说,八位的int 只能够表示0到255,而0到360超出了这个范围,为了避免超出这个范围,我们就把H的范围调到了0到180

在opencv当中,获取的对象 获取的图像很具有一个特征的颜色,比如说红色,黄色,绿色,把这个转到hsv色彩空间,就能够把这个颜色找到。

def color_space_demo(imgae): 定义一个方法 

gary = cv.cvtColor(imgae, cv.COLOR_BGR2GRAY) 转换到GRAY 空间

cv.imshow("gary",gary)

hsv = cv.cvtColor(imgae,cv.COLOR_BGR2HSV) 转换到HSV空间

cv.imshow("hsv",hsv)

yuv = cv.cvtColor(imgae, cv.COLOR_BGR2YUV) 转换到YUV空间

cv.imshow("yuv",yuv)

Ycrch = cv.cvtColor(imgae, cv.COLOR_BGR2YCrCb) 转换到YCrCb 空间

cv.imshow("YCRCH", Ycrch)

我们要通过这些代码学会inRange 和通道的分离与合并


def extract_object_demo(image):

capture = cv.VideoCapture("G:/pr/10.mp4")//读取本地电脑里面的一个视频文件夹 

while(True):

ret, frame = capture.read() 如果视频里面有值,ret返回为真,没了就返回为假

if ret ==False: 当False时,没有东西了,直接break掉,

break

hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV) 将导入出来的frame转化为 HSV

lower_hsv = np.array([37, 43, 46])  设置HSV的低值 如上图所示

high_hsv = np.array([77,255,255]) 设置HSV的高值 如上图所示

mark = cv.inRange(hsv, lowerb=lower_hsv,upperb=high_hsv) inRange 得到的是一个二值图像,

cv.imshow("video", frame)

cv.imshow("video", mark)

c = cv.waitKey(40)

if c ==27:

break

通道的分离和合并

分离 :b,g,r - cv.split(scr) 就可以把三个通道分离出来

src[:,:,2]=0 将src图像的r通道赋值为0 因为0,1,2的原因 

通道合并:cv.merge(b,g,r) 这样就能把三个通道合并起来

你可能感兴趣的:(零基础学习opencv 色彩空间 color space)