rotorliu / Image-Processing-Techniques

Implementations of Fourier Transform, Laplacian Pyramids, Edge Detection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Image-Processing

Implementations of Fourier Transform, Laplacian Pyramids, Edge Detection

This repository describes Image Processing techniques such as Fourier Transform, Laplacian Pyramids, Edge Detection using Difference of Gaussian, Laplacian of Gaussian. These were implemented as part of assignments for the course CSE573: Computer Vision and Image Processing at University at Buffalo, The State University of New York during Fall 2016.

Execution requires the following packages

  • Numpy
  • Matplotlib
  • Scipy

Fourier Transform

Fourier Transform is an important image processing tool to decompose an image to its sine-cosine compositions. The output of this technique represents the image in the frequency domain transformed from the spatial domain. A detailed expaination about Fourier Transformations of Images can be found here

Fourier Transform can be executed with the command python FourierTransform.py

Mean Squared Error between Input Image and the inverse transform is 1.1592e-18

Laplacian Pyramids

Laplacian Pyramids is a pyramid representation of images obtained by repeated smoothing and subsampling saving the difference image between the original and smoothed image at each subsampled level. This technique can be used in image compression.

Laplacian Pyramids can be executed with the command python LaplacianPyramids.py

Input Image

Laplacian Pyramid

Reconstructed Image

A mean squared error of 0 was obtained between the input image and reconstructed image indicating perfect reconstruction

Edge Detection

Edge Detection is a image processing technique to find boundaries of objects in an image. It is performed by detecting areas in the image with rapid changing intensity. It is used in image segmentation and data extraction.

Edge Detectors can be executed with the command python main.py

Input Image

Difference of Gaussian

Difference of Gaussian works by performing Gaussian blurs of different radius on an image and then computing the difference between the outputs of the blurring. Edges are detected by detection of zero crossings in the image and thresholding to keep only the strong edges.

Difference of Gaussian Edge Detector

Laplacian of Gaussian

Laplacian of Gaussian is a second-derivative image processing technique of identifying areas of rapid change(edge) in images. An image is filtered using a Gaussian filter to blur the image and avoid noise. This is done because the Laplacian filter is very sensitive to rapid change including noise. Zero crossing is detected to identify edges in the image.

Laplacian of Gaussian Edge Detector

About

Implementations of Fourier Transform, Laplacian Pyramids, Edge Detection


Languages

Language:Python 100.0%