im = imread('peacock.jpg');
im_lab = rgb2lab(im);
L = round(im_lab(:,:,1));
a = round(im_lab(:,:,2));
b = round(im_lab(:,:,3));
L_partition = {[0, 30], [31, 61], [62, 100]};
a_partition = {[-128, -44], [-43, 41], [42, 127]};
b_partition = {[-128, -44], [-43, 41], [42, 127]};
combs = combvec(1:3,1:3,1:3).';
in_range = @(frame, range) (frame >= range(1)) & (frame <= range(2));
result = cell(size(combs,1), 4);
for i=1:size(combs,1)
comb = combs(i,:);
l_part = L_partition{comb(1)};
a_part = a_partition{comb(2)};
b_part = b_partition{comb(3)};
pxlSum = sum(in_range(L,l_part).*in_range(a,a_part).*in_range(b,b_part), 'all');
result(i,:) = [{l_part} {a_part} {b_part} {pxlSum}];
end
T = cell2table(result, 'VariableNames', {'L range', 'a range', 'b range', 'pixel count'});
disp(T)
Best Answer