Help with understanding a low pass filter code
조회 수: 3 (최근 30일)
이전 댓글 표시
The aim of this piece of code is to smooth a horizontal histogram by applying a low pass filter.
First horizontal and vertical histograms representing the sum of differences of gray values between neighboring pixels of an image, column-wise and row-wise were used. The horizontal histogram is named horz1 so horz1(i)=sum where 'i' is the column number and 'sum' is sum of differences. Then, a low pass filter was applied. I don't understand the 'applying low pass filter' part. Where do the values 20, 21 and 40 come from? if anyone could help me understand I would really appreciate it.
%%horizontal histogram
disp('Processing Edges Horizontally...');
max_horz = 0;
maximum = 0;
for i = 2:cols
sum = 0;
for j = 2:rows
if(I(j, i) > I(j-1, i))
difference = uint32(I(j, i) - I(j-1, i));
else
difference = uint32(I(j-1, i) - I(j, i));
end
if(difference > 20)
sum = sum + difference;
end
end
horz1(i) = sum;
%%applying low pass filter
sum = 0;
horz = horz1;
for i = 21:(cols-21)
sum = 0;
for j = (i-20):(i+20)
sum = sum + horz1(j);
end
horz(i) = sum / 41;
end
end
댓글 수: 0
채택된 답변
Image Analyst
2017년 6월 24일
That's the window size they chose. A larger window size will give more smoothing. A smaller window size will give less smoothing. We don't know why they chose a window size of 41, all we can guess is that that seemed to be best for the "look" they were after.
Also, don't use "sum" as the name of a variable since it's a built-in function.
Other than that, all I can say is that the code is a poorly thought out mess. I would not recommend using code from this author.
댓글 수: 6
Image Analyst
2017년 6월 26일
I have no idea, especially without an image to see exactly what it's doing. I guess it's to reduce noise.
추가 답변 (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!