python-opencv笔记3

由于BGR模式中难以选择某种颜色,当涉及颜色操作时将图片转化到HSV空间中较为方便。其中,H:色度([0,179]),S:饱和度([0,255]),V:明度([0,255])
*换用其它软件时使用的值可能不同

颜色空间转换函数

cv2.cvtColor(<图片>,flag)
BGR–>HSV:
cv2.cvtColor(<图片>,cv2.COLOR_BGR2GRAY)
寻找所有可用flag:

import cv2
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]#寻找cv2中所有以COLOR_打头的命令名称
print(flags)

基于颜色的跟踪:

import cv2 as cv
import numpy as np

img = cv.imread("D:/sourses/picture/001.jpg")
hsv=cv.cvtColor(img,cv.COLOR_BGR2HSV)#转换为HSV空间
lower_blue=np.array([100,43,46])#设定所跟踪的颜色阈值
upper_blue=np.array([124,255,255])
mask=cv.inRange(hsv,lower_blue,upper_blue)#根据设定的取值范围构建掩模
res=cv.bitwise_and(img,img,mask=mask)#对原图像位运算处理

cv.imshow('img',img)
cv.imshow('mask',mask)
cv.imshow('res',res)
cv.waitKey(0)
cv.destroyAllWindows()

python-opencv笔记3_第1张图片001.jpg
结果如下
python-opencv笔记3_第2张图片python-opencv笔记3_第3张图片

寻找所需颜色的HSV值

color=np.uint8([[[0,255,0]]])#**注意用三层中括号**
hsv_color=cv.cvtColor(color,cv.COLOR_BGR2HSV)
print(hsv_color)

将已知的bgr色彩值转化为hsv值后,可以浮动得到上下阈值

参考值:

python-opencv笔记3_第4张图片

你可能感兴趣的:(python-opencv笔记3)