Ask Your Question

histogram smoothing

asked 2016-04-06 10:12:13 -0500

ahmad_asadi gravatar image

I have an image in RGB, along with its planes' histograms. How I can smooth these histograms?

(histograms are generated using opencv calcHist function)

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2016-04-07 10:51:33 -0500

pklab gravatar image

In general you can use OpenCV filters also on vectors. In this case GaussianBlur works fine:

cv::Mat hist,hist_smoothed;
calcHist(&grayImg, 1, 0, cv::Mat(), hist, 1, &histSize, &histRange, uniform, accumulate);
GaussianBlur(hist, hist_smoothed, Size(smooth_size, smooth_size), 0, 0, BORDER_CONSTANT);
edit flag offensive delete link more

answered 2016-04-06 11:52:37 -0500

kbarni gravatar image

Histograms contain useful information about your image, smoothing it will degrade the information, making the histogram mostly useless.

If you still want to use it, here you are: just replace each value by the mean of its neighbors. e.g. smooth_hist[i]=(hist[i-2]+hist[i-1]+hist[i]+hist[i+1]+hist[i+2])/5. You can use a gaussian weighting, too.

edit flag offensive delete link more


There are some reason to smooth histogram... for example when you are searching for peaks

pklab gravatar imagepklab ( 2016-04-07 10:52:54 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2016-04-06 10:12:13 -0500

Seen: 750 times

Last updated: Apr 07 '16