Image Filter: Aim of The Project

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Image Filter

Aim of the Project


• Designing an Image Filter that uses a 3X3 Sliding Window.
• Downloading the image file to be filtered using a serial Receiver from a
file into the memory.
• Apply filtering operations on the image which includes Smoothening
Filter and a Sharpening Filter.
• Integrating switching between different filters using a switch.
• Uploading the filtered Image back into another file through Transmitter.

Scope
• The format of the image must be pgm.
• The image is Grayscale image with pixel values lying between 0 to 255.
• The convolution matrix is a 3X3 matrix which varies with the type of filter.
• The Filters shall include two operations sharpening and smoothening.

Why is our goal hard to achieve?


Downloading and Uploading of file:
• The downloading of file from memory reads integers as characters which
need to be converted into integers using correct ASCII to Integer
Conversion.
• Comments, spaces, Tabs and New lines in the file need to be dealt.
• The returned Matrix which is in form of integers need to be converted
back into characters based on their ASCII codes and uploaded back into
the file in the pgm format int the standard format.
Invalid Pixel Values:
• The convolution matrix calls for the need to represent decimal or
fractional values, which needs to be dealt appropriately.
• The negative numbers also needs to be represented using a signed
representation or other forms like 2’s complement form etc.
• When the convolution matrix is scaled up by some factor the pixel values
may exceed 255 which need to be dealt at the end by division of a factor.
• Due to negative values in the sharpening convolution matrix some values
may fall below zero, such values need to be scaled up to zero value.
Design Plan:

The modules and the signals present are:


Receiver: This receives data as rx_in serially and transmits it parallely
as rx_data. rx_full denotes that the integer has been converted and
ready for storage in memory.
Character_to_integer: This takes the rx_full as input and converts the
characters received into integral number and outputs it as integer_in.
It gives out write enabling signal as wen1 and the address of the
memory block where the integer needs to be stored as wr_addr1.
Memory_In: It receives wen1, wr_addr1 and integer1 as input. The
int_process gives the integer stored for processing in the convolution
module.
Convolution Module: It receives ren1 and rd_addr1 as inputs from
memory_out to read the integers for convolution processing and
sends the processed output to memory_out for storage at address
wr_addr2. The value is sent as integer_out and wen2 is the write
enabling signal.
Memory_out: It sends the numbers digit by digit to the Integer to
Character module. The ren2 signal and rd_addr2 facilitates the
reading of integers from the memory_out.
Integer to Character: This module converts the character to 8 digit bit
vector and outputs the same to Transmitter.
Transmitter: It receives the data as tx_data and transmits the same to
computer for writing it in a file.

Timeline:
By 2nd Week we plan to complete the part implementing the downloading of
the file and conversion of character stream to Integer and vice versa.
By 3rd Week we plan to complete the Convolution Module implementing the
filtering part.
By 4th Week we plan to test the project and make some necessary corrections.

Real Applications of the project:


• Can be used by Investigation departments to apply image filters to
extract information about a person.
• Can be used to improve image quality to allow better Optical Character
Recognition on images to extract text.
• Can be used in general photo editing tools.

Submitted By

Sourav Bansal – 2018CS50421

Manav Bansal – 2018CS50410

You might also like