MATLAB Answers

how to draw 3d histogram of an image ad shown in figure

38 views (last 30 days)

Accepted Answer

Walter Roberson
Walter Roberson on 26 Feb 2021
Histogram implies that you are binning the data, and the coordinates are associated with the edge or central value of the bin. 3D histogram implies that you are binning the data with respect to two different coordinates.
However, in the diagrams you show, at least to the resolution you present, there is no binning of data. We can see that one of the independent axes is length 600 and the other is length 800, but uint8 has at most 256 different values, and int16 or uint16 there is no obvious reason why you would bin in widths of 41 input values in one direction and in widths of 55 input values in the other direction.
It does not seem likely that you want histograms at all. I would suggest that you are instead looking for bar charts.
a = imread('flamingos.jpg');
a = imresize(a, 0.25);
h = bar3(a(:,:,1)); set(h, 'EdgeColor', 'none'); title('red')
  4 Comments
Image Analyst
Image Analyst on 14 Mar 2021 at 17:29
You could also replace
r = a(:,:,1);
g = a(:,:,2);
b = a(:,:,3);
with
[r, g, b] = imsplit(a);

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 21 Feb 2021
This is done by the histogram2() function. Check out the help for examples. Let us know if you can't figure it out for your data, and attach your data after reading this:
  5 Comments
Image Analyst
Image Analyst on 26 Feb 2021
What you said abount histogram doesn't make sense. But perhaps you want to do something like the attached demo. Or else see Walter's answer. Otherwise, give us an example of what you'd like to see.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by