Using "imhist" function in Matlab to plot multiple histograms on the same figure

user2650768 picture user2650768 · Aug 4, 2013 · Viewed 13.1k times · Source

I'm new to Matlab and am trying to do a bit of image processing. I have two color images that I convert to grayscale. My goal is to be able to put the histograms for both grayscale images on the same figure so I can compare them. My code looks like this:

a=imread('image1.jpg')
agray=rgb2gray(a)
b=imread('image2.jpg')
bgray=rgb2gray(b)
figure,imhist(agray)
figure,imhist(bgray)

The code works fine for looking at the two histograms independently, but I can find how to combine them into one figure for comparison. Please help!!

Answer

Luis Mendo picture Luis Mendo · Aug 4, 2013

If you want both on the same axes and you don't mind loosing the lower bar, try this (I don't have the Image Toolbox right now, so I haven't tested it):

a=imread('image1.jpg')
agray=rgb2gray(a)
b=imread('image2.jpg')
bgray=rgb2gray(b)
[counts,x] = imhist(agray)
stem(counts,x,'b')
hold on
[counts,x] = imhist(bgray)
stem(counts,x,'r')