Как считать, если изображение имеет красный цвет? - PullRequest
0 голосов
/ 06 января 2019

У меня есть несколько картинок на моем пути.

Моя программа должна посчитать, сколько фотографий имеет красный цвет.

Я запускаю цикл, но я запутался в том, как определить, имеет ли картинка красный цвет.

Вот мой цикл:

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 голосов
/ 06 января 2019

Если вы читаете на цветных изображениях, то все изображения будут иметь красный, зеленый и синий каналы, поэтому size(img,3) всегда будет равно 3. Вы на самом деле должны проверить содержимое пикселя каждого изображения, чтобы выяснить, имеет красный.

Но перед этим вы должны определить, что значит для пикселя быть красным. Вы говорите о приблизительно красном или чисто красном, как RGB (255,0,0)? Получив определение красного цвета, вы можете зациклить пиксели каждого изображения и проверить, соответствует ли хотя бы один пиксель вашему определению. Если это так, то вы можете увеличить счетчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...