在视频中捕捉红绿灯的方法

作者尝试通过截取视频帧并转换为HSV颜色空间来识别红绿灯,但遇到ROI选取问题,目前只能全屏处理后再裁剪。代码实现了读取视频、转换颜色空间和面积判断,但轮廓识别不够精确,期望能改进ROI选择和绿灯定位方法。
摘要由CSDN通过智能技术生成

本人尝试在视频截取红绿灯的图像,奈何技术不过关,在roi(感兴趣区域上)截取不过关。只能采取截取全屏的方法进行识别。下面是我的方法

  1. 导入所需的库

  1. 载入视频

  1. 获取指定的区域

  1. 图像转为HSV颜色空间

  1. 定义红绿值的范围

  1. 找取红绿区域的轮廓

首先我们需要导入cv2和numpy两个库,

随后载入视频,以cap为变量名,然后我的视频路径是写为在python文件中有个子文件命名为video。

import cv2
import numpy as np

# 加载视频
cap = cv2.VideoCapture('video/acc.mp4')

然后我们开始让电脑读取视频每一帧,当视频无法读取时直接退出。

while True:
    # 读取一帧
    ret, frame = cap.read()
    if ret == False:
        break

然后在视频中获取指定的图像,因为在后来在指定区域无法正确截取感兴趣区域,所以我直接获取整个屏幕,之后再截取roi区域,并进行hsv转换。

    frame = cv2.resize(frame, (1920, 1200))
    # 截取roi区域
    roiColor = frame[100:300, 300:800]
    # 转换hsv颜色空间
    hsv = cv2.cvtColor(roiColor, cv2.COLOR_BGR2HSV)

后面分别定义红绿值的范围,并计算出现红绿图像的面积,达到一定的面积就认定为是红绿灯图像

综上可看到,我的代码还不够完整,也有很多谬误,馨如自己无法指定roi区域截取,然后没办法更好识别红绿灯的轮廓,只能计算到达一定面积认定为红绿灯而不是圆形的轮廓进行识别,再者识别为绿灯时,不能再指定的方框内,这是我的不足,希望大家看到我的文章说一下见解,给我意见啦。respect!🌹

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值