5、颜色空间转换(物体跟踪)几何变换(扩展缩放、平移、仿射变换、旋转、透视变换)

本文介绍了如何在Python中利用OpenCV进行颜色空间转换,如BGR到HSV,并演示了如何通过HSV阈值选择蓝色物体进行跟踪。此外,还涉及了图像缩放、平移、仿射变换和旋转等操作,以及透视变换和关键点应用。
摘要由CSDN通过智能技术生成

一、颜色空间转换

BGR,即蓝-绿-红色彩空间,每一个像素点都由一个三元数组来表示,分别代表蓝、绿、红三种颜色。另一个与之相似的颜色空间:RGB,它们只是在颜色的顺序上不同。

RGB[A]准换成灰度:Y=0.299R+0.587G+0.114*B
灰度转换为RGB[A]:R=Y,G=Y,B=Y,A=max(ChannelRange)

该空间广泛用于视频和图像压缩,不能算作纯粹的色彩空间,它是RGB颜色空间的一种解码方式Y通道表示亮度,而Cr和Cb表示红色差值(在RGB空间中R通道和Y的差值)和蓝色差值(在RGB空间中B通道和Y的差值)各自的色度分量。

HSV, H(Hue)是色调,S(Saturation)是饱和度,V(Value)表示黑暗的程度(或光谱的另一端的明亮程度)。

物体跟踪:

从视频中获取每一帧图像
将图像转换到 HSV 空间
设置 HSV 阈值到蓝色范围。
获取蓝色物体,当然我们还可以做其他任何我们想做的事

import cv2
import numpy as np

cap = cv2.VideoCapture(0)
ret = cap.set(3, 640)
ret = cap.set(4, 480)

#定蓝色的阈值
lower = np.array([110, 50, 50])
upper = np.array([130, 255, 255])

#黄色-乒乓球
#lower = np.array([20, 90, 90])
#upper = np.array([30, 255, 255])

while cap.isOpened():
    # 获取每一帧
    ret, frame = cap.read()
    if not ret:
        print('获取相机图像失败')
        break
    # 换到 HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # 根据阈值构建掩模
    mask = cv2.inRange(hsv, lower, upper)
    # mask = cv2.inRange(hsv, lower_black, upper_black)
    # 对原图像和掩模位运算
    res = cv2.bitwise_and(frame, frame, mask=mask)

    # 显示图像
    cv2.imshow('frame', frame)
    cv2.moveWindow('frame', x=0, y=0)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值