Unfiltered vs. Filtered - What is the Difference?

Unfiltered

Unfiltered Image

Unfiltered images and animations have not had high-pass median filtering applied to them. The backscatter intensity shown is the result of background subtraction, multiplication by the range-squared, and converting the range-corrected signal into decibels (dB) after adding a constant offset.


Why do we filter results?

Application of high pass median filters allows humans and algorithms to focus attention on important small scale features in the images. In the case of our lidar data, there are at least two known systematic features in the data that we have reason to eliminate with high pass median filtering: (1) the effects of attenuation and (2) random variations in the laser pulse energy that cause streaks in the unfiltered images.

Filtered

Filtered Image

Filtered images and animations are the result of taking the unfiltered data and applying a numerical high-pass median filter in the radial dimension. For the images shown here, a 333 point filter was used (333 points x 1.5 m/point = 500 m filter length). In general, high pass median filters remove features and trends that are larger than half the filter length, or in this case 250 m.

The high-pass median filter is a rolling, or gliding, type of nonlinear filter. In this case, every point in the one-dimensional array (except the points within half a filter length of the ends) have the "neighborhood median" subtracted. The neighborhood is defined as all points in the array within half of the filter width from that point. The median is the middle value of the points in the neighborhood after sorting them. Here is the IDL code used to perform the high pass median filtering:


pro high_pass_med_filter, a, b, c
; a = input array
; b = number of points in the filter window
; c = output array

; determine how many points are in the input array
size_info=size(a)
n=size_info(1)

; next make the output array the same size as the input array
c=fltarr(n)

for i=0+(b/2),n-(b/2)-1 do begin
     window=a(i-b/2:i+b/2)
     med_val=median(window)
     c(i)=a(i)-med_val
endfor

return
end

High-pass median filtering is the odd cousin of the much more generally well-accepted median filtering commonly used in image processing to smooth data. In the case of median filtering, all the points within the neighborhood are sorted and the median is used to replace the center point.