difference of image histograms

hello, in Matlab is equal to do the histogram of difference of two grayscale images and the difference of the two histograms of the images? How to perform the difference of two histograms and plot the negative values of this difference?
thank you for the help,
Giuseppe

Réponses (1)

KALYAN ACHARJYA
KALYAN ACHARJYA le 29 Mai 2020
Modifié(e) : KALYAN ACHARJYA le 29 Mai 2020

0 votes

im1=rgb2gray(imread('image1_name'));
im2=rgb2gray(imread('image2_name'));
diff_hist=imhist(im1)-imhist(im2);
plot(diff_hist)
Ensure that both have same data type images to get the same range of bins

10 commentaires

KALYAN ACHARJYA
KALYAN ACHARJYA le 30 Mai 2020
giuseppe catarinella Comment moved here
ok thanks. The code works although it doesn't plot a histogram but a line without bar. is it right? a question: is the result obtained with this code the same if I had: im3=imsubtract(im1,im2); histogram(im3) or imhist(im3)? What is the difference between imhist() and histogram()? another question: in a histogram is it possibile to exclude a value of bin like, for example, the value 0 because its column is higher than the others? sorry for the numerous questions. Thank you so much for the support.
im1=rgb2gray(imread('image1_name'));
im2=rgb2gray(imread('image2_name'));
diff_hist=imhist(im1)-imhist(im2);
bar(diff_hist)
KALYAN ACHARJYA
KALYAN ACHARJYA le 30 Mai 2020
giuseppe catarinella Comment moved here
Ok, thank you. Is there any function to find histogram's peaks? After that, how to set thresholds to classify the different ranges of values in the histogram? Thanks a lot for the support.
KALYAN ACHARJYA
KALYAN ACHARJYA le 30 Mai 2020
Modifié(e) : KALYAN ACHARJYA le 30 Mai 2020
hostgram_peak=max(diff_hist)
Ses the lobes in the histogram, are there any distinct difference to classify different objects.
KALYAN ACHARJYA
KALYAN ACHARJYA le 30 Mai 2020
Please write your comment, in the comment section (Just below), not in answer section.
giuseppe catarinella
giuseppe catarinella le 30 Mai 2020
Sorry. The function max doesn't work. I'm using histogram() not imhist(). How to solve this problem? I would classify some histograms based on the number of peaks and their position. Is it possible to achieve this task? If yes, how can I do this? Thank you.
Image Analyst
Image Analyst le 30 Mai 2020
Try findpeaks() in the Signal Processing Toolbox. Or fit to multiple Gaussians. See attached demos.
giuseppe catarinella
giuseppe catarinella le 30 Mai 2020
Thank you. I'm using histogram() to plot image histograms. This function returns an histogram object. Can I use findpeaks() to find the number of peaks and their position on histogram? Thank you so much for the support.
Image Analyst
Image Analyst le 30 Mai 2020
Yes, if you want. It can be tricky to get findpeaks() to get just the peaks you want and not all of the peaks you don't want, but you can play around with the tons of input parameteters until it gets just the ones you want.
giuseppe catarinella
giuseppe catarinella le 31 Mai 2020
Ok, thank you so much. This advise was very useful. I'd like to ask other questions about this argument. First, using the function findpeaks(), how can I show also the x coordinates of the peaks. I remind you that I have a histogram of an image and I would to show the bin values of the peaks in addition to the values of counts that the function already returnss. Second, is it possible to use findpeaks() function for a vector of objects of type histogram and consequently use histogram() function for a vector of images? If yes, how can I do this? Thank you very much for the support.

Connectez-vous pour commenter.

Produits

Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by