我的路径中有一些图片。
我的程序必须计算多少张红色的图片。
我开始循环播放,但是我对如何检测图片是否为红色感到困惑。
这是我的循环:
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);
答案 0 :(得分:1)
如果您正在阅读彩色图像,则所有图像都将具有红色,绿色和蓝色通道,因此size(img,3)
将始终等于3。实际上,您必须检查每个图像的像素内容才能得出图熄灭是否有红色。
但是在此之前,您必须定义像素变为红色的含义。您是在谈论近似红色,还是像RGB(255,0,0)这样的纯红色?定义为红色后,您可以遍历每个图像的像素,并检查是否至少有一个像素满足您的定义。如果是这样,则可以增加计数器。