OpenCV - 颜色空间转换(Python实现)

  1. 转换颜色空间

最常用的两种颜色空间方法 : BGR–GrayBGR–HSV

cv2.cvtColor(input_image, flag)

input_image 转换的图像
flag 转换类型
 对于 BGR-Gray 的转换,我们要使用的 flag 就是cv2.COLOR_BGR2GRAY。
 对于 BGR-HSV 的转换,我们用的 flag 就是cv2.COLOR_BGR2HSV。

在 OpenCV 的 HSV 格式中, H(色彩/色度)的取值范围是 [0, 179],S(饱和度)的取值范围 [0, 255], V(亮度)的取值范围 [0, 255]。但是不同的软件使用的值可能不同。所以当你需要拿 OpenCV 的 HSV 值与其他软件的 HSV 值进行对比时,一定要记得归一化。

  1. 物体跟踪

在我们的程序中,我们要提取的是一个黄色的物体。下面就是就是我们要做的几步:
• 从视频中获取每一帧图像
• 将图像转换到 HSV 空间
• 设置 HSV 阈值到黄色范围。
• 获取黄色物体,当然我们还可以做其他任何我们想做的事。
OpenCV - 颜色空间转换(Python实现)_第1张图片

import cv2
import numpy as np
 
cap = cv2.VideoCapture(0)
while(True):
    ret, frame = cap.read()#获取图像
    # 转换到 HSV
    hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    # 设定橙色的阈值
    lower_blue=np.array([0,50,50])
    upper_blue=np.array([20,255,255])
    # 根据阈值构建掩模
    mask=cv2.inRange(hsv,lower_blue,upper_blue)
    # 对原图像和掩模进行位运算
    res=cv2.bitwise_and(frame,frame,mask=mask)
    # 显示图像
    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    if cv2.waitKey(1) & 0xFF == ord('q'):#监测到键盘输入q关闭
        break
cap.release()#释放摄像头
cv2.destroyAllWindows()#关闭窗口
  1. 找到跟踪对象的HSV值

我们要找到绿色的 HSV 值,我们只需在终端输入以下命令:

green=np.uint8([[[0,255,0]]])	#获取绿色
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)	#转换
print (hsv_green)

[[[ 60 255 255]]]

你可能感兴趣的:(【OpenCV】)