如何计算图像是否为红色?

时间:2019-01-06 15:59:25

标签: matlab colors

我的路径中有一些图片。

我的程序必须计算多少张红色的图片。

我开始循环播放,但是我对如何检测图片是否为红色感到困惑。

这是我的循环:

sdirectory = 'E:\SEMESTER 7\Computer Vision\Tugas\UAS - Pencocokan Objek';
namafile = dir([sdirectory '/*.jpg']);
jml_obj = []
for k = 1:length(namafile)
    filename = [sdirectory '/' namafile(k).name];
    img = imread(filename);
    red = img(:,:,1);
    if(size(img,3)==3) %i think here is the key
        jml_obj=[jml_obj 1]
    else
        jml_obj=[jml_obj 0]
    end
end
jml_obj;
jumlah=sum(jml_obj);
textLabel1=  sprintf('Jumlah %i ',jumlah);
set(handles.jml, 'String', textLabel1);

1 个答案:

答案 0 :(得分:1)

如果您正在阅读彩色图像,则所有图像都将具有红色,绿色和蓝色通道,因此size(img,3)将始终等于3。实际上,您必须检查每个图像的像素内容才能得出图熄灭是否有红色。

但是在此之前,您必须定义像素变为红色的含义。您是在谈论近似红色,还是像RGB(255,0,0)这样的纯红色?定义为红色后,您可以遍历每个图像的像素,并检查是否至少有一个像素满足您的定义。如果是这样,则可以增加计数器。