https://github.com/as567652/noise-reduction-using-fourier-transform
Implementing Case Specific Noise Reduction using Discrete Fourier Transform (DFT).
https://github.com/as567652/noise-reduction-using-fourier-transform
computer-vision digital-image-processing discrete-fourier-transform matplotlib opencv python3
Last synced: 4 months ago
JSON representation
Implementing Case Specific Noise Reduction using Discrete Fourier Transform (DFT).
- Host: GitHub
- URL: https://github.com/as567652/noise-reduction-using-fourier-transform
- Owner: as567652
- Created: 2021-10-07T17:24:31.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-22T19:25:49.000Z (over 3 years ago)
- Last Synced: 2025-01-12T09:29:23.851Z (6 months ago)
- Topics: computer-vision, digital-image-processing, discrete-fourier-transform, matplotlib, opencv, python3
- Language: Python
- Homepage:
- Size: 1.31 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Noise Reduction Using Fourier Transform
Implementating Case Specific Noise Reduction using Discrete Fourier Transform (DFT).


## Table of contents
* [Introduction](#introduction)
* [Approach](#approach)
* [Technologies](#technologies)
* [Setup](#setup)
* [Launch](#launch)
* [Illustrations](#illustrations)
* [Status](#status)
* [Sources](#sources)
* [Other](#other)## Introduction
General method to remove Periodic Noise is by using different type of filters. This technique is generally called **Periodoc Noise Reduction by Frequency Domain Filtering**. Different filters that can be used to remove periodic noise are
- Bandreject Filter
- Bandpass Filter
- Notch Filter and many more.
If Noise is periodic, we can simply use any of the above filters to minimize noise content in the image.
If noise is not periodic than manually we need to remove noise. Important note here is that first we have to change Spatial Domain into frequency Domain, to apply filter.## Approach
- To change spatial domain into frequency domain first we apply **Discrete Fourier Transform (DFT)** on the image.
- Now we are able to see spectrum of the image.
- We can see that there is not a pattern here that we can follow to remove noise.
- We just create a mask of spectrum image in such a way that central light burst is there. Others are blacked out.
- We adjust radius of central burst that is needed to be left out.
- We than multiply mask and DFT (Discrete Fourier Transform)
- We apply **IDFT (Inverse Discrete Fourier Transform)** to obtain modified Image## Technologies
#### Software Used :
* VS Code : 1.58.2
#### Languages Used :
* Python 3
#### OS used :
* Ubuntu 20.04.3 LTS 64-bit## Setup
First you must have these libraries and languages installed on your system -
* [Python 3](https://www.python.org/)
* [OpenCV](https://opencv.org/)## Launch
To run the code, run this commands in terminal with main.py as in current directory and images in Images folder along with main.py
```
$ python3 main.py
```
Windows will pop-up with resultant images. (Press **X** to view next image).## Illustrations
### Step By Step Image Transformation For Noise Reduction
![]()
![]()
![]()
![]()
## Project status
***Completed***## Sources
* Images used in this project may be subject to copyright.
* [Digital Image Processing (Third Edition) by Rafael C. Gonzalez and Richard E. Woods](https://www.amazon.com/Digital-Image-Processing-Rafael-Gonzalez/dp/013168728X)
* [OpenCV Documentation](https://docs.opencv.org/2.4/opencv_tutorials.pdf)
## Other
This code was contributed by Abhinav Sharma.