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; endend
Best Answer