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

13 views (last 30 days)
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.

Accepted Answer

Image Analyst
Image Analyst on 3 Jul 2015
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
  17 Comments
Image Analyst
Image Analyst on 23 Jan 2021
nissrine, note that an array defined as zeros(n1, n2, n3) is always a 3-D array regardless of what the values of n1, n2, and n3 are.
Now h, s, and v are basically continuous variables in the range of 0-1 and the poster wanted to divide the range of h into 16 bins and s and v into 4 bins.

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!