Linear Image Processing and Filtering

Linear Image Processing and Filtering

Linear Image Processing and Filtering n Math of 2-d linear systems n Separability n Shift-invariant linear systems, 2-d convolution n Integral image for fast box-filtering n 2-d frequency response n Blurring and sharpening n Zoneplate 1 0.8 n Image sampling/aliasing 0.6 0.4 0.2 n Wiener filtering 0 2 3 2 0 1 n 0 Nonlinear noise reduction/sharpening ω -1 y -2 -2 ω -3 x Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 1 Linear image processing n Image processing system S(.) is linear, iff superposition principle holds: S α ⋅ f $#x, y&% + β ⋅ g $#x, y&% = α ⋅ S f $#x, y&% + β ⋅ S g $#x, y&% for all α, β ∈! ( ) ( ) ( ) n Any linear image processing system can be written as g = Hf Note: matrix H need not be square. by sorting pixels into a column vector T f = ( f ⎣⎡0,0⎦⎤ f ⎣⎡1,0⎦⎤ f ⎣⎡N −1,0⎦⎤ f ⎣⎡0,1⎦⎤ f ⎣⎡N −1,1⎦⎤ f ⎣⎡0, L −1⎦⎤ f ⎣⎡N −1, L −1⎦⎤ ) Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 2 Impulse response n Another way to represent any linear image processing scheme N−1 L−1 g[α,β ] = ∑∑ f [x, y]⋅h[x,α, y,β ] x=0 y=0 impulse response n Input: unit impulse at pixel [a,b] &$ 1 x = a ∧ y = b f [x, y] = δ [x − a, y − b] = % 0 else n Output: impulse response '& N−1 L−1 g[α,β ] = ∑∑δ [x − a, y − b]⋅h[x,α, y,β ] = h[a,α,b,β ] x=0 y=0 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 3 Interpretation #1: superposition of impulse responses δ [x − a, y − b] f [a,b] g[α,β] = h[a,α,b,β] f [a,b] a x + α b x y β a + x α b x y β + Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 4 Interpretation #2: linear combination of input values N −1 L−1 f [x, y]⋅h[x,α, y,β] g[α,β] = ∑∑ f [x, y]⋅h[x,α, y,β] x=0 y=0 x α ∑ x y β x α ∑ x y β Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 5 Relationship of H and h[x,α,y,β ] y → x → x → x → •• • ↓ α ↓ α ↓α x → x → x → •• • ↓ α ↓ α ↓ α • • • β ↓ • • • • • • x → x → x → •• • ↓ α ↓ α ↓ α Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 6 Separable linear image processing n Impulse response is separable in [x,α] and [y,β], i.e., can be written as N−1 L−1 g[α,β ] = ∑∑ f [x, y]⋅hx [x,α ]hy [y,β ] x=0 y=0 n Processing can be carried out l row by row, then column by column L−1 N−1 g[α,β ] = ∑hy [y,β ]∑ f [x, y]⋅hx [x,α ] y=0 x=0 l column by column, then row by row N−1 L−1 g[α,β ] = ∑hx [x,α ]∑ f [x, y]⋅hy [y,β ] x=0 y=0 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 7 Separable linear image processing (cont.) n If the digital input and output images are written as a matrices f and g, we can conveniently write T g = Hy ⋅ f ⋅Hx ⎡ h 0,0 h 0,1 h ⎡0, L −1⎤ ⎤ ⎡ h 0,0 h 0,1 h ⎡0, N −1⎤ ⎤ ⎢ y [ ] y [ ] y ⎣ g ⎦ ⎥ ⎢ x [ ] x [ ] x ⎣ g ⎦ ⎥ ⎢ ⎥ ⎢ ⎥ h 1,0 h 1,1 h ⎡1, N −1⎤ hy [1,0] hy [1,1] hy ⎡1, Lg −1⎤ ⎢ x [ ] x [ ] x ⎣ g ⎦ ⎥ H = ⎢ ⎣ ⎦ ⎥ Hx = y ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ h L 1,0 h L 1,1 h ⎡L 1, L 1⎤ ⎢ hx [N −1,0] hx [N −1,1] hx ⎡N −1, Ng −1⎤ ⎥ ⎢ y [ − ] y [ − ] y ⎣ − g − ⎦ ⎥ ⎣ ⎣ ⎦ ⎦ ⎣ ⎦ n Output image g has size Lg x Ng n If the operator does not change image size, Hx and Hy are square matrices Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 8 Example: Separable Haar transform Original Bike 256x256 256x256 Haar transform Hx=Hy=Hr256 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 9 Haar transform n Haar transform matrix for sizes N=2,4,8 ⎛ 1 1 2 0 2 0 0 0 ⎞ 1 ⎛ 1 1 ⎞ ⎜ ⎟ Hr2 = ⎜ ⎟ ⎜ 1 1 2 0 −2 0 0 0 ⎟ 2 ⎝ 1 −1 ⎠ ⎜ ⎟ ⎜ 1 1 − 2 0 0 2 0 0 ⎟ ⎛ ⎞ 1 ⎜ 1 1 − 2 0 0 −2 0 0 ⎟ 1 1 2 0 Hr8 = ⎜ ⎟ ⎜ ⎟ 8 ⎜ 1 −1 0 2 0 0 2 0 ⎟ 1 ⎜ 1 1 − 2 0 ⎟ ⎜ ⎟ Hr 1 −1 0 2 0 0 −2 0 4 = ⎜ ⎟ ⎜ ⎟ 4 1 −1 0 2 ⎜ 1 −1 0 − 2 0 0 0 2 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 1 1 0 2 0 0 0 2 ⎟ ⎝⎜ 1 −1 0 − 2 ⎠⎟ ⎝ − − − ⎠ n Can be computed by taking sums and differences n Fast algorithms by recursively applying Hr2 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 10 Example: Subsampling n Image subsampling 2:1 horizontally and vertically n Small input image of size 8x8, output image size 4x4 ⎡ 1 0 0 0 ⎤ ⎢ ⎥ ⎢ 0 0 0 0 ⎥ ⎢ 0 1 0 0 ⎥ ⎢ 0 0 0 0 ⎥ Hx = Hy = ⎢ ⎥ ⎢ 0 0 1 0 ⎥ ⎢ 0 0 0 0 ⎥ ⎢ 0 0 0 1 ⎥ ⎢ ⎥ ⎣ 0 0 0 0 ⎦ Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 11 Example: Subsampling (cont.) n A somewhat better technique for 2:1 image size reduction ⎡ 0.5 0 0 0 ⎤ ⎢ ⎥ ⎢ 0.5 0 0 0 ⎥ ⎢ 0 0.5 0 0 ⎥ ⎢ 0 0.5 0 0 ⎥ Hx = Hy = ⎢ ⎥ ⎢ 0 0 0.5 0 ⎥ ⎢ 0 0 0.5 0 ⎥ ⎢ 0 0 0 0.5 ⎥ ⎢ ⎥ ⎣ 0 0 0 0.5 ⎦ Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 12 Side by side comparison Hx = Hy = Hx = Hy = ! 1 0 0 0 $ ! 0.5 0 0 0 $ # 0 0 0 0 & # & # & # 0.5 0 0 0 & # 0 1 0 0 & # 0 0.5 0 0 & # 0 0 0 0 & # 0 0.5 0 0 & # & # & # 0 0 1 0 & # 0 0 0.5 0 & # 0 0 0 0 & # 0 0 0.5 0 & # 0 0 0 1 & # 0 0 0 0.5 & # & # & " 0 0 0 0 % " 0 0 0 0.5 % Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 13 Another example: filtering n Each pixel is replaced by the average of two horizontally (vertically) neighboring pixels ⎡ 0.5 0 0 ⎤ ⎢ ⎥ ⎢ 0.5 0.5 ⎥ ⎢ 0 0.5 0.5 ⎥ ⎢ 0.5 0.5 ⎥ Hx = Hy = ⎢ ⎥ ⎢ 0.5 0.5 ⎥ ⎢ 0.5 0.5 ⎥ ⎢ 0.5 0.5 0 ⎥ ⎢ ⎥ 0 0 0.5 0.5 ⎣ ⎦ n Shift-invariant operation (except for image boundary) Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 14 Shift-invariant systems and Toeplitz matrices n For a separable, shift-invariant, linear system hx [x,α]= hsiv/x [α − x] and hy [y,β]= hsiv/y [β − y] n Matrices Hx and Hy are square, and Toeplitz matrices, e.g., ⎡ h 0 h 1 h N −1 ⎤ ⎢ siv/x [ ] siv/x [ ] siv/x [ ] ⎥ ⎢ hsiv/x [−1] hsiv/x [0] hsiv/x [N − 2] ⎥ Hx = ⎢ ⎥ ⎢ ⎥ ⎢ hsiv/x [1− N ] hsiv/x [2 − N ] hsiv/x [0] ⎥ ⎣ ⎦ n Operation is a 2-d separable convolution („filtering“) N −1 L−1 g[α,β]= ∑∑ f [x, y]⋅hsiv/x [α − x]hsiv/y [β − y] x=0 y=0 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 15 Non-separable 2-d convolution n Convolution kernel of linear shift-invariant system („filter“) can also be non-separable N −1 L−1 g[α,β]= ∑∑ f [x, y]⋅hsiv [α − x,β − y] x=0 y=0 n Viewed as a matrix operation . g = Hf . H is a block Toeplitz matrix Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 16 Structure of H for non-separable convolution y → x → x → x → •• • ↓ α ↓ α ↓ α x → x → x → •• • ↓ α ↓ α ↓ α • • • β ↓ • • • • • • x → x → x → •• • ↓ α ↓ α ↓ α Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 17 Convolution: superposition of impulse responses f [a,b]δ [x − a, y − b] g[x, y] = hsiv [x − a, y − b] f [a,b] a + x x b x 1 x 5 2 3 4 y + y a + x x b x 1 x 5 + 2 3 4 y y + Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 18 Convolution: linear combination of neighboring pixel values N −1 L−1 g , f x, y h x, y f [x, y]⋅hsiv [α − x,β − y] [α β]= ∑∑ [ ]⋅ siv [α − β − ] x=0 y=0 α x x 4 3 2 5 x 1 ∑ xx β + y y x x 4 3 2 5 x 1 ∑ + x β y y α Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 19 Convolution examples Original Bike blurred by convolution Bike Impulse response „box filter“ ⎛ 1 1 1 1 1 ⎞ ⎜ 1 1 1 1 1 ⎟ 1 ⎜ ⎟ ⎜ 1 1 [1] 1 1 ⎟ 25 ⎜ 1 1 1 1 1 ⎟ ⎜ ⎟ ⎝ 1 1 1 1 1 ⎠ Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 20 Convolution examples Original Bike blurred horizontally Bike Filter impulse response 1 1 1 [1] 1 1 5 ( ) Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 21 Convolution examples Original Bike blurred vertically Bike Filter impulse response ⎛ 1 ⎞ ⎜ 1 ⎟ 1 ⎜ ⎟ ⎜ [1] ⎟ 5 ⎜ 1 ⎟ ⎜ ⎟ ⎝ 1 ⎠ Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 22 Integral image j[x, y]= j[x, y −1]+ f [x, y] i[x, y]= i[x −1, y]+ j[x, y] x y f [x, y] i[x, y]= ∑∑ f [u,v] u=0 v=0 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 23 Box filtering with integral image B D C A Sum = A + B – C – D Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 24 Gaussian filtering by repeated box filtering N times … Variance σ2 σ 12 / N n Approximate convolution with Gaussian kernel by convolution with box kernel, repeated N times n Convolution with box kernel can be computed efficiently using integral image Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 25 Gaussian filtering by repeated box filtering Direct implementation: 6561 multiplications and 6560 additions per pixel x-y separable filtering: 162 multiplications and 160 additions per pixel Original image Gaussian filtered 500x500 σ = 20, 81x81 kernel 20 additions or subtractions per pixel Box filtered Box filtered Box filtered Box filtered after N = 1 after N = 2 after N = 3 after N = 4 Digital Image Processing: Bernd Girod, © 2013 Stanford University -- Linear Image Processing and Filtering 26 1-d discrete-time Fourier

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    87 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us