GISC 4360K - Digital Image Processing

Required textbook: Digital Image Processing, 4th Edition by Gonzalez and Woods (2018)

1   Lectures

  1. Lecture 1: How to set up Python for geospatial science and computing
    1. Python basics
  2. Lecture 2: What is digital image processing?
  3. Lecture 3: Digital image fundamentals
    1. Homework 1: Wavelength and image storage
  4. Lecture 4: Zooming, shrinking, and grayscaling of images
    1. Homework 2: Bilinear interpolation
  5. Lecture 5: Relationships between image pixels
    1. Homework 3: Shortest paths
  6. Quiz 1
  7. Lecture 6: Image transformations and slicing
  8. Lecture 7: Logic and arithmetic image operations
    1. Exercise 1: Shadow enhancement using logic operations
    2. Exercise 2: Noise reduction using averaging
    3. Homework 4: Non-shadow enhancing
  9. Lecture 8: Histogram equalization of images
  10. Lecture 9: Local image enhancement and image-smoothing spatial filters
    1. Exercise 3: Shadow enhancement using local enhancement
    2. Exercise 4: Smoothing
    3. Exercise 5: Noise reduction
    4. Homework 5: Local image enhancement
  11. Lecture 10: Image-sharpening spatial filters
    1. Exercise 6: Edge extraction
    2. Exercise 7: Sharpening 1
    3. Exercise 8: Sharpening 2
    4. Exercise 9: Sharpening 3
    5. Homework 6: Image sharpening filter
  12. Quiz 2
  13. Lecture 11: Fourier series
  14. Lecture 12: Introduction to the discrete Fourier transform
    1. Exercise 10: One-dimensional image
    2. Exercise 11: Two-dimensional image
  15. Lecture 13: Introduction to frequency-domain filtering
    1. Exercise 12: Plotting $F(u)e^{2i\pi ux/M}$
    2. Exercise 13: Reading the Fourier spectrum
    3. Exercise 14: Fourier transform components
  16. Lecture 14: Frequency-domain filtering
    1. Exercise 15: Fourier transform
    2. Exercise 16: Ideal low-pass filter
    3. Exercise 17: Gaussian low-pass filter
    4. Exercise 18: Gaussian high-pass filter
    5. Homework 7: Fourier transform
  17. Quiz 3
  18. Lecture 15: Color fundamentals
    1. Homework 8: Color interpolation
  19. Lecture 16: Color models
    1. Exercise 19: RGB-to-CMY conversion
    2. Exercise 20: RGB-to-HSI conversion
    3. Exercise 21: HSI-to-RGB conversion
    4. Homework 9: Color model conversions
  20. Lecture 17: Full-color image processing
    1. Exercise 22: RGB-to-CMY conversion in ArcGIS Pro
    2. Exercise 23: RGB-to-HSI conversion in ArcGIS Pro
    3. Exercise 24: HSI-to-RGB conversion in ArcGIS Pro
    4. Exercise 25: Smoothing
    5. Exercise 26: Sharpening
    6. Exercise 27: Extracting clouds using color segmentation
    7. Homework 10: Removing clouds using color segmentation
  21. Exercise 28: Linear feature extraction using spatial filters (Example 10.2)
  22. Lecture 18: $k$-nearest neighbors algorithm
    1. Exercise 29: $k$-nearest neighbors classification
    2. Exercise 30: Color-based forest classification using the $k$-nearest neighbors algorithm
    3. Exercise 31: Tiling-color-based forest classification using the $k$-nearest neighbors algorithm
  23. Quiz 4

2   How-to’s

3   Review materials

4   Python modules

5   Past materials

6   Past projects

6.1   Spring 2021

i.gabor - A Gabor filter module for GRASS GIS poster by Owen Smith, Spring 2021.svg Edge of pavement extraction using image processing techniques poster by Jacob Lougee, Spring 2021.svg

6.2   Spring 2019

Hurricane Michael damage assessment poster by Zach Reeves, Spring 2019.svg

7   Fourier vector tracing

fourier-grasslogo-with-circles.gif

Animation created using https://github.com/HuidaeCho/vector_tracer.py. Vector data from https://grass.osgeo.org/images/logos/grasslogo.svg.

8   References

9   Journal articles