原始图像如下
代码如下:
clc
clear all
close all
a=imread('C:\Users\40507\Desktop\photograph\origin\xinhaodeng\huangdeng3.jpg');
figure(1),imshow(a);title('检测图像');%读入图像并显示
hsv=rgb2hsv(a);
h=hsv(:,:,1);
s=hsv(:,:,2);
v=hsv(:,:,3);
figure(2),imshow(hsv);title('HSV图像');%转换为hsv图像并显示
I=(0.55<h<0.6)&(0.5<s)%检绿色区域
I2=(0.176<h<0.294)&(0.5<s)%检黄色区域
figure,imshow(I);title('绿色区域')
figure,imshow(I2),title('黄色区域')
结果如下图
我用的明明是两个完全不一样的阈值条件,居然得到了两幅差不多一样的分割图像,我本人也是百思不得其解,特地来请教。
可能有人说是图片问题,我贴出另一幅图的处理
另一幅图如下
对它进行颜色分割如下
值得一提的是以上两幅都是带有黄色信号灯的图像,如果我用带有绿色信号灯的图像来做,就会出现另一种情况,就是出现两幅不一样的图像,检绿色区域的代码可以将绿色区域检测出来,但检黄色区域代码不能将绿色检出来。下面贴出图片。
原始图像如下: