5

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!!

user2650768
  • 71
  • 2
  • 2
  • 3

2 Answers2

4

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')
Luis Mendo
  • 110,752
  • 13
  • 76
  • 147
  • 1
    Looks nicer as `stem(x,counts,'b','Marker','none');` (maybe just on my matlab version). Also, `;` are your friends ;>) – Buck Thorn Aug 04 '13 at 19:28
  • Yes, much better without markers; and also more similar to what `imhist` without output arguments does – Luis Mendo Aug 04 '13 at 19:31
  • 1
    You're welcome! If an answer has worked for you, it's standard practice in StackOverflow that you mark it as "accepted" (tick mark to the left of the answer). You can only mark as accepted one answer per question. I'm telling you this in case you don't know, since I see you are new here. – Luis Mendo Aug 10 '13 at 13:59
1

Try this!

figure (x),
subplot(2,1,1); imhist(agray);
subplot(2,1,2); imhist(bgray);
Jeru Luke
  • 20,118
  • 13
  • 80
  • 87