MATLAB: How to extract colour descriptor (set of features) from the image

color spacegamuthistogramimage processingImage Processing Toolbox

Hello, I have the following task. I want to compute the color histogram of an Image in HSV color space. For that I want to uniformly quantize the HSV color space into 240 cubes in which the quantization of each channel is 15 hues (H), 4 saturations (S) and 4 intensities (V ) respectively. And after making this color histogram the values of each bin is my 240 dim vector of color features which I want to get finally. Could someone please help me with the m-code for this task or with the high level plan how to create it? I will really appreciate it. Thank you.

Best Answer

Loop over every pixel in the image and determine the bin, then increment the count. Here's a start
[rows, columns, numberOfColorChannels] = size(rgbImage);
hsvImage = rgb2hsv(rgbImage); % Ranges from 0 to 1.
hsvHist = zeros(15,4,4);
for col = 1 : columns
for row = 1 : rows
hBin = floor(hsvImage(row, column, 1) * 15);
sBin = floor(hsvImage(row, column, 2) * 4);
vBin = floor(hsvImage(row, column, 3) * 4);
hsvHist(hBin, sBin, vBin) = hsvHist(hBin, sBin, vBin) + 1;
end
end