(信号灯八)使用HSV判断信号灯颜色,并将截取的灯区域resize到25*20

这篇博客介绍了如何使用HSV色彩空间来判断交通信号灯的颜色,包括红色、黄色和绿色,并且确定灯在背板上的位置。通过构建的代码,程序可以在不显示图片时达到每秒处理约1000帧的速度。示例结果显示信号灯为绿色,位于横排背板的右侧。
摘要由CSDN通过智能技术生成

构建代码

import cv2
import numpy as np
from matplotlib import pyplot as plt
import time

判断颜色

def findNoneZero(image):
    rows,cols,_= image.shape
    img11 = image[4:rows-4,4:cols-4]
    nonzero = img11.nonzero()
    nonzeroy = np.array(nonzero[0])  # 高索引
    nonzerox = np.array(nonzero[1])  # 宽索引    
    return len(nonzeroy)


def get_thresh_image(rgb_image,display):
    '''
    Determines the red , green and yellow content in each image using HSV and experimentally
    determined thresholds. Returns a Classification based on the values
    '''
    hsv = cv2.cvtColor(rgb_image,cv2.COLOR_BGR2HSV)

    # 红色1
    lower_red1 = np.array([0, 69, 165])
    upper_red1 = np.array([10, 255, 255])
    
    # 红色2
    lower_red2 = np.array([125, 49, 138])
    upper_red2 = np.array([180, 255, 255])
  
    # 橙
    lower_orange = np.array([11, 81, 148])
    upper_orange = np.array([25, 255, 255])
     
    # 黄色
    lower_yellow = np.array([11, 67, 127])
    upper_yellow = np.array([34, 255, 255])
    
    # 类绿色
    lower_green = np.array([35, 25, 151])
    upper_green = np.array([124, 255, 255])
    
    mask_red1 = cv2.inRange(hsv, lower_red1,upper_red1)
    mask_red2 = cv2.inRange(hsv, lower_red2,upper_red2)
    mask_orange = cv2.inRange(hsv, lower_orange,upper_orange)
    mask_yellow = cv2.inRange(hsv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值