MATLAB Answers

3D histogram of RGB image

37 views (last 30 days)
Hey guys! I'm performing the 3D histogram of RGB image my teacher said me there is a simple and faster way to do all what I'm doing with my code. But I do not find any reference that help me to achieve that.
I want to obtain the image attached. Does anyone knows how?


Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 11 May 2015
I just don't see how hist3 can do it. Despite it's poor choice of a name (in my opinion), it's really a 2D histogram, not a 3D histogram because there are only 2 independent variables. Try my color gamut visualizer program, attached way below, below all the images.
It's a primitive MATLAB version of the really nice one that is an ImageJ plugin.


Show 1 older comment
Image Analyst
Image Analyst on 4 Sep 2017
Because you're counting the number of pixels that have that color. For example, let's say you were looking at the image and found a pixel had the RGB value of (111,222,190). So the count is one. Now let's say while you're scanning the image, you encounter another pixel with that same RGB value. So now there are two pixels. So since the histogram (count array) had a value 1 there (indicating it had so far found 1 pixel with that color), what do you think I should do to that value to make it now say there are two pixels with that color? You need to add 1 to the count. So if you take the existing value and add 1 you'll now have 2, which is the number of pixels you've encountered with that color so far.
salma samiei
salma samiei on 11 Sep 2017
Actually, your answer is related to "gamut3D(rIndex, gIndex, bIndex) = gamut3D(rIndex, gIndex, bIndex) + 1;" part. but I am asking why we plus the value of channels with one?! for example, if the value of red channel in row 2, column 1 = 128 we add it with 1 and save 129 in rindex. I hope my question be clear now?
Image Analyst
Image Analyst on 11 Sep 2017
Because indexes can't be zero, but gray levels can. You can't have indexes in the range 0-255, but you can in the range 1-256 so that's why 1 is added to the index.

Sign in to comment.

More Answers (1)