How to draw histogram of hsv image?

39 views (last 30 days)
kalyani bedekar
kalyani bedekar on 15 Mar 2016
Commented: sya zamani on 20 Apr 2020
Using imhist we canget histogram of grayscale image. How to draw histogram of hsv image?

Answers (3)

Image Analyst
Image Analyst on 15 Mar 2016
Try this
hsvImage = rgb2hsv(rgbImage);
hImage = hsvImage(:, :, 1);
sImage = hsvImage(:, :, 2);
vImage = hsvImage(:, :, 3);
figure;
subplot(2,2,1);
hHist = histogram(hImage);
subplot(2,2,2);
sHist = histogram(sImage);
subplot(2,2,3);
vHist = histogram(vImage);
  2 Comments
Mario Castro
Mario Castro on 7 Feb 2018
this code do not show any result at all. HSV values are represented in % and degrees.
Image Analyst
Image Analyst on 7 Feb 2018
Of course it does. Did you even run the code? You need to have rgbImage already read in. Here, here is a more complete demo:
rgbImage = imread('peppers.png');
hsvImage = rgb2hsv(rgbImage);
hImage = hsvImage(:, :, 1);
sImage = hsvImage(:, :, 2);
vImage = hsvImage(:, :, 3);
figure;
subplot(2,2,1);
hHist = histogram(hImage);
grid on;
title('Hue Histogram');
subplot(2,2,2);
sHist = histogram(sImage);
grid on;
title('Saturation Histogram');
subplot(2,2,3);
vHist = histogram(vImage);
grid on;
title('Value Histogram');
subplot(2,2,4);
imshow(rgbImage);

Sign in to comment.


Anand
Anand on 15 Mar 2016
If you need the histogram only for visualization purposes, you can obtain it using the colorThresholder app.
Open the RGB image in the colorThresholder app and select the HSV color space. The right-hand pane will show histograms in H,S and V.
Open the image in the Color Thresholder:
>> colorThresholder(rgbImage)
Select HSV Color space.
  1 Comment
sya zamani
sya zamani on 20 Apr 2020
Hi Anand, Sorry for the late question, do you know how to display the HSV histogram as shown in the colorThresholder app? Thanks in advance.

Sign in to comment.


Yoon Thiri Zaw
Yoon Thiri Zaw on 18 Jun 2019
Can i find threshold values using Lab based color histogram? If having code, tell me please!
  1 Comment
Image Analyst
Image Analyst on 18 Jun 2019
Depends on what threshold divides your color channel into foreground and background. No one can tell without seeing your image and an explanation of what you want (foreground) and what you don't want (background) to segment.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!