(信号灯五)使用HSV颜色空间将类绿色区域二值化

本文介绍了如何利用HSV颜色空间对图像中的绿色区域进行二值化处理,通过展示构建代码、执行过程及最终结果,揭示了这种方法在图像识别中的应用。
摘要由CSDN通过智能技术生成

在这里插入图片描述
图片来源:https://www.pianshen.com/article/178932885/

构建代码

import numpy as np
import collections
import cv2
import numpy as np
import matplotlib.pyplot as plt


#定义字典存放颜色分量上下限
#例如:{颜色: [min分量, max分量]}
#{'red': [array([160, 43, 46]), array([179, 255, 255])]}
"""
0是黑色 255是白色
mask = cv2.inRange(hsv, lower_red, upper_red) #lower20===>0,upper200==>0,
函数很简单,参数有三个
第一个参数:hsv指的是原图

第二个参数:lower_red指的是图像中低于这个lower_red的值,图像值变为0
第三个参数:upper_red指的是图像中高于这个upper_red的值,图像值变为0

而在lower_red~upper_red之间的值变成255
""" 

## 下面数字的165,原始数字为46。这里使用165是为了过滤掉亮度比较暗的噪声
def get_green_ColorList():
    dict = collections.defaultdict(list)
    #绿色
    lower_green = np.array([35, 43, 165])
    upper_green = np.array([77, 255, 255])
    color_list = []
    color_list.append(lower_green)
    color_list.append(upper_green)
    dict['green'] = color_list
  
    #青色
    lower_cyan = np.array([78, 43, 165])
    upper_cyan = np.array([99, 255, 255])
    color_list = []
    color_list.append(lower_cyan)
    color_list.append(upper_cyan)
    dict['cyan'] = color_list
  
    #蓝色
    lower_blue = np.array([100, 43, 165])
    upper_blue = np.array([124, 255, 255])
    color_list = []
    color_list.
交通标志识别系统标准完全模板HSV定位基础版-二值化模板.rar 本帖最后由 hcq@@ 于 2013-7-7 11:04 编辑 1、交通标志(警示牌类),其外框一般为红色,所以定位时可采用HSV颜色模型或者RGB颜色模型来提取红色区域,通过regiongroup标记进一步提取目标区域HSV颜色模型:I1=Hsv; %记录颜色亮度为1的数据,以便之后再利用颜色阀值找出红色 figure,imshow;title'); BW=roicolor; %利用颜色阀值将红色对象都都显示为白色,其余都为黑色,至此完成图象的二值化 figure,imshow;title; 复制代码具体参考附件HSV提取基础版.rar RGB颜色模型 IR=double; IG=double; IB=double; for i=1:chang for j=1:kuan if 1.6*IR-IG-IB255 CA=255; else CA=1.6*IR-IG-IB; end end end figure;imshow;title; 复制代码经过对比,对于目标边界清晰的图片,RGB颜色模型的效果很不错,结果在贴图中。 2、分割出来的交通标志,为了便于二值化处理,强烈建议将背景黑色转成白色,这里标准模板只处理了20几张(考虑到可能用不到这么多的模板),如果有需要,可采取灰度—二值化—反色—擦除边缘—归一化步骤,即可处理成新的模板。代码在 附件里面: 3、识别的时候,可先建立数组,和普通的识别方法一样的,识别结果可采取msgbox的显示方法(即根据返回的匹配索引,得出结果)。if x==1 msgbox;end if x==2 msgbox;end if x==3 msgbox;end if x==4 msgbox;end 。。。。。。。同理 复制代码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值