Applying a Guassian Filter to a histogram
5 views (last 30 days)
Show older comments
I used the fspecial function to apply the guassian filter to the histogram, would this be how it is applied? Would this be how I applied the fspecial function to the histogram?
I = imread('imagehere');
imshow(I);
H = fspecial('guassian',[3 3],.5);
GFilter = imfilter(I,H,'replicate');
imshow(GFilter);
When applying my code to the histogram I use a function in matlab called fspecial (description provided):
h = fspecial('gaussian', hsize, sigma) returns a rotationally symmetric Gaussian lowpass filter of sizehsize with standard deviation sigma (positive). hsize can be a vector specifying the number of rows and columns in h, or it can be a scalar, in which case h is a square matrix. The default value for hsize is [3 3]; the default value for sigma is 0.5.
I was wondering since I am applying this code to a histogram not an image if I should erase the hsize space in the parenthesis. And if I don't, what do I put in as the value for hsize because I have used [3 3] and I am not sure what else to use as its input for hsize.
Thank you.
0 Comments
Accepted Answer
Image Analyst
on 4 Dec 2014
You are not applying the filter to a histogram. Why do you say that? The badly-named "I" is an image, NOT a histogram. To get the histogram you'd do this
[pixelCounts, grayLevels] = imhist(grayImage);
Why would you want to filter the histogram anyway? To smooth it? Well a histogram is a 1-D array so you would not use fspecial() or imfilter(). You'd use conv(), or smooth() or lowess() or sgolayfilt() or other 1-D smoothing filters.
4 Comments
Image Analyst
on 30 Dec 2014
Edited: Image Analyst
on 30 Dec 2014
Well I is a bad name for a few reasons. One is that it tends to look like a 1 (one) and l (lower case L) with many fonts. Another is that when you have lots of single letter variable names that are not descriptive, you end up a virtual alphabet soup of variables and no one can follow your code. It would be much better if you used longer and more descriptive names like grayImage, RGBimage, filteredImage, gaussianFilter, etc. Too often I see a long piece of code with simply named variables like I, k, g, f, t, s, etc. and it just takes a really long time to follow code like that. I know it takes longer to type in code that is descriptive and robust but it will make your code better, and more maintainable.
More Answers (0)
See Also
Categories
Find more on Histograms in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!