Applying a Guassian Filter to a histogram
조회 수: 6 (최근 30일)
이전 댓글 표시
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
채택된 답변
Image Analyst
2014년 12월 4일
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
Image Analyst
2014년 12월 30일
편집: Image Analyst
2014년 12월 30일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Histograms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!