文档详情

matlab红绿灯识别程序设计实验报告

lis****210
实名认证
店铺
DOCX
9.10KB
约4页
文档ID:158499583
matlab红绿灯识别程序设计实验报告_第1页
1/4

matlab 红绿灯识别程序设计实验报告一、知识背景颜色空间:通常拍摄的图像是 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分量的阈值有不同)代码如下:% 设置阈值范围[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(rowY1)];% 各颜色范 围像素点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('信号灯为黄色');endend。

下载提示
相关文档
正为您匹配相似的精品文档