实验总结:红绿灯颜色以及数字识别(一):颜色识别

一、知识背景

颜色空间:通常拍摄的图像是RGB颜色空间,图片的像素点是由R、G、B分量来表示肉眼所看到的颜色。

比如:红色为(255,0,0),黄色为(255,255,0),查找颜色对应的RGB值可查阅相关资料。(个人jio得阔以理解为色彩由红绿蓝三种颜色调和)*

这里附上一个链接: 常用颜色的RGB值.

进行红绿灯识别时,需要转换到HSV空间:H(色调)、S(饱和度)、V(亮度)来进行信号灯识别。(个人认为转到HSV空间更便于由亮度对信号灯区域进行识别)

二、代码实现及注释

1.读入图像并将其从RGB空间转为HSV空间
代码如下:

%% 读入图像并将其从RGB空间转为HSV空间
src=imread('F:\王美丽\图片\红绿灯\6.jpg');light_hsv=rgb2hsv(src);% rgb2hsv:色调、对比度、亮度
H=light_hsv(:,:,1);
S=light_hsv(:,:,2);
V=light_hsv(:,:,3);figure;% 作图
subplot 221;
imshow(src);
title('原始图像');
subplot 222;
imshow(H);
title('H分量');
subplot 223;
imshow(S);
title('S分量');
subplot 224;
imshow(V);
title('V分量');

结果如下:
可以通过鼠标观察信号灯区域的HSV值(Index)
2.对红绿灯颜色设置HSV阈值范围
可以通过对H、S、V三个分量上设置阈值对红绿灯进行范围区分,信号灯的像素点在哪个范围的点最多,信号灯就为对应的颜色。

对于阈值的设置:可通过观察HSV分量或者查表得到(不同环境下的HSV分量的阈值有不同)
代码如下:

% 设置阈值范围
lightsrc0=zeros(size(src));% 设置lightsrc0来对三色范围像素点进行存储
[rowG,colG]=ind2sub(size(light_hsv),find(H>0.4 & H<0.55 & S>0.16 & S<1 & V>0.9));% 绿色阈值范围
[rowR,colR]=ind2sub(size(light_hsv),find(H>0.01 & H<0.2 & S>0.08 & S<1 & V>0.9));% 红色阈值范围
[rowY,colY]=ind2sub(size(light_hsv),find(H>0.09 & H<0.4 & S>0.16 & S<1 & V>0.8));% 黄色阈值范围lightcolor=[size(rowG,1),size(rowR,1),size(rowY,1)];%各颜色范围像素点if max(lightcolor)==size(rowG,1)% 找包含最多像素点的颜色阈值范围,输出结果for i=1:length(rowG)lightsrc0(rowG(i),colG(i))=src(rowG(i),colG(i));% 将对应颜色区域进行提取endfigure;imshow(src);title('信号灯为绿色');% 绿色范围像素点最多
elseif max(lightcolor)==size(rowR,1)for i=1:length(rowR)lightsrc0(rowR(i),colR(i))=src(rowR(i),colR(i));endfigure;imshow(src);title('信号灯为红色');elsefor i=1:length(rowY)lightsrc0(rowY(i),colY(i))=src(rowY(i),colY(i));endfigure;imshow(src);title('信号灯为黄色');end
end

结果如下:

三、作者有话说

1.这是本人第一次写,有许多不足的地方请温柔指出,交流促使进步;

2.悄咪咪说一句,这个格式是真的难调啊,我现在都不清楚如何段前空两格,sos;

3.红绿灯识别是我一门课的实验,在这里记录一个初学者的逼逼叨叨,应该还会有后续,佛系随缘更吧;

4.后续:matlab——红绿灯颜色及数字识别(二)

matlab——红绿灯颜色及数字识别(一)相关推荐

  1. matlab——红绿灯颜色及数字识别(三)

    实验总结:红绿灯颜色以及数字识别(三):形状识别 一.知识背景   在matlab--红绿灯颜色及数字识别(二)中已经完成了对信号灯区域的裁剪,对信号灯形状的识别这里设置了三条辅助线来进行完成对笔画的 ...

  2. matlab——红绿灯颜色及数字识别(二)

    实验总结:红绿灯颜色以及数字识别(二):提取信号灯区域 一.知识背景 这里放一些链接来供查阅参考: 1.连通量函数:   Matlab中bwlabel函数的使用 2.膨胀.腐蚀:   形态学操作:膨胀 ...

  3. 【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 1861期】

    ⛄一.OCR简介 OCR技术是光学字符识别的缩写, 是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息, 再利用文字识别技术将图像信息转化为可以使用的计算机输入技术. ...

  4. Matlab深度学习-手写体数字识别

    Matlab深度学习 文章目录 Matlab深度学习 前言 一.MNIST手写体数字数据 二.用到的深度学习框架-LeNet5 2-0 LeNet5的网络架构 2-1 框架实现-通过Matlab GU ...

  5. Matlab基于颜色的车牌识别

    %function carreco clc; clear all; %========================================================== %说明: % ...

  6. lenet5手写数字识别 matlab,LeNet5实现手写体数字识别(基于PyTorch实现)

    import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from  ...

  7. 基于FPGA的数字识别实现

    前言 数字识别在我们生活中很常见,比如车牌识别.本篇博客就将介绍数字识别的方法,由于只是研究数字识别的方法,我们就不用硬件平台,而是用Modelsim和Matlab来仿真验证. 具体方法如下: 我们用 ...

  8. 手写数字识别问题(5)——完结

    经过接近15周的艰苦努力,毕业设计(基于MATLAB的手写数字识别系统)已经完结. 设计过程中遇到的部分问题可查阅博客: 手写数字识别问题(1)--关于MNIST数据集 手写数字识别问题(2)--利用 ...

  9. matlab 职坐标,机器人之【机器视觉与图像处理】基于MATLAB的圆检测、颜色识别、数字识别...

    本文主要向大家介绍了机器人之[机器视觉与图像处理]基于MATLAB的圆检测.颜色识别.数字识别,通过具体的内容向大家展现,希望对大家学习机器人有所帮助. 对产品中心的检测:设置好路径之后,包含关系是在 ...

最新文章

  1. 循环for语句 if语句
  2. 基于.net技术的代码高亮显示组件
  3. xshell使用命令总结
  4. matlab decomposition filters,MATLAB小波去噪求助(附算法和显示图片)!不知自己哪个地方出了问题,求指点! - 信息科学 - 小木虫 - 学术 科研 互动社区...
  5. 不简单的 SimpleDateFormat
  6. 记一次CPU占用率和load高的排查
  7. LeetCode 462 Minimum Moves to Equal Array Elements II
  8. 【前端Talkking】CSS系列-css3之box-shadow介绍
  9. 排得更好VS估得更准VS搜的更全「推荐、广告、搜索」算法间到底有什么区别?...
  10. 送出15个Google Wave邀请,需要的赶快
  11. html5作品分析报告,性能报告之HTML5 性能测试报告
  12. 单片机(ISIS 7 Professional):实现简易十字路口红绿灯代码项目
  13. 《CSS世界》(张鑫旭)pdf
  14. 修改IE浏览器点击右键“查看源文件”时的打开程序
  15. 51单片机使用超声波进行测距
  16. 常见遥感卫星基本参数大全
  17. 香河哪有学计算机编程,香河计算机程序设计员职业资格证书
  18. 联想K29昭阳K29笔记本联想K49A在dos下刷入bios教程
  19. 卷积神经网络系列之softmax,softmax loss和cross entropy的讲解
  20. 网页服务器版本,华为网页版本进云服务器

热门文章

  1. Android项目大全
  2. CSS 实现超过固定高度后出现展开折叠按钮
  3. Task 08(树模型组队总结
  4. 闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
  5. Excel VBA 根据单元格内容更改工作表名称
  6. fastjson之@JSONField注解的几个的使用详细示范
  7. 使用阿里云ECS服务器搭建java环境
  8. SheetJS生成/解析Excel
  9. matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma
  10. 开发框架-.Net:Learun(力软敏捷开发)