You are on page 1of 41

ABSTRACT

Nowadays, a lot of applications use digital images. For example in face


recognition to detect and tag persons in photograph, for security
control, and a lot of applications that can be found in smart cities, as
speed control in roads or highways, cameras in traffic lights to detect
drivers ignoring red light. Also in medicine digital images are used,
such as x-ray, scanners, etc.).
Image Enhancer is a Windows client application based on Image
Processing techniques. A set of total 64 basic and complex Image
Processing filters are implemented here. Moreover snapshots can be
captured using video surveillance camera/webcam attached with the
computer. This software was developed using Microsoft Dot Net
Framework 4.0 and Visual C#.
These applications depend on the quality of the image obtained. A
good camera is expensive, and the image obtained depends also in
external factor as light. To make these applications work properly,
image enhancement is as important as, for example, a good face
detection algorithm. Image enhancement also can be used in normal
photograph, for pictures done in bad light conditions, or just to improve
the contrast of an image.
There are some applications for smartphones that allow users apply
filters or change the bright, color or contrast on the pictures. This
project compares four different techniques to use in image
enhancement. After applying one of these techniques to an image, it
will use better the whole available dynamic range. Some of the
algorithms are designed for greyscale images and others for color
images. It is used Matlab software to develop and present the final
results.
These algorithms are Successive Means Quantization Transform
(SMQT), Histogram Equalization, using Matlab function and own
function, and V transform. Finally, as conclusions, we can prove that
Histogram equalization algorithm is the simplest of all, it has a wide
variability of grey levels and it is not suitable for color images. V
transform algorithm is a good option for color images. The algorithm is
linear and requires low computational power. SMQT algorithm is non-
linear, insensitive to gain and bias and it can extract structure of the
data.
CERTIFICATE

Dated: _____________________

FINAL APPROVAL

It is certified that project report titled Image Enhancement of


Deblurring Images submitted by Laraib Shabbir and Groupmate-
2 for the partial fulfillment of the requirement of Master Degree in
Computer Science is approved.

COMMITTEE

Dr. Muhammad Akbar


Dean Engineering & CS: Signature:

Mr. Sajjad Haider


HoD Computer Science: Signature:

Mr. Ata Ullah


Head Project Committee: Signature:

Mr. Moyeez Ullah Ghori


Project Coordinator : Signature:

Supervisor Name
Supervisor: Signature:
DECLARATION

We hereby declare that our dissertation is entirely our work and


genuine / original. We understand that in case of discovery of any
PLAGIARISM at any stage, our group will be assigned an F (FAIL) grade
and it may result in withdrawal of our Masters degree.

Group members:

Name Signature

Laraib Shabbir ___________________

Groupmate-2 ___________________
PLAIGRISM CERTIFICATE

This is to certify that the project entitled Image Enhancement of


Deblurring Images, which is being submitted here with for the
award of the Master Degree in Computer Science. This is the
result of the original work by Laraib Shabbir, and Groupmate-2
under my supervision and guidance. The work embodied in this project
has not been done earlier for the basis of award of any degree or
compatible certificate or similar tile of this for any other
diploma/examining body or university to the best of my knowledge and
belief.

Turnitin Originality Report

Processed on 05-April-2017 00:14 PKT


ID: ????????
Word Count: ???????

Similarity Index
08%
Similarity by Source
Internet Sources: 06%
Publications: 0%
Student Papers: 05%

Date: 05/04/2017 Supervisor Name


(Supervisor)
TURNITIN ORIGINALITY REPORT

Image Enhancement of Deblurring Images [MCS] by Laraib Shabbir


and Groupmate-2
From Supervisor Name

Processed on 05-April-2017 00:14 PKT


ID: ???????
Word Count: ???????????

Similarity Index
08%
Similarity by Source
Internet Sources:
6%
Publications:
0%
Student Papers:
5%

SOURCES:

1.2% match (student papers from 05/11/11)


Submitted to Higher Education Commission Pakistan on 2011-05-11
2.1% match (student papers from 06/05/12)
Submitted to Higher Education Commission Pakistan on 2012-06-05
3.1% match (Internet from 5/11/10)
http://linux.ucla.edu/~leonardr/req.doc
4. 1% match (student papers from 06/02/12)
Submitted to British University in Egypt on 2012-06-02
1% match (Internet from 10/12/10)
http://www.se.rit.edu/~jact/documents/analyze/Software_Requi
rements_and_Specificati ons.pdf
1% match (Internet from 7/16/10)
http://www.ecst.csuchico.edu/~srikanth/Coursework/OOAD/Elab
orateVersion.doc
1% match (student papers from 12/07/12)
Submitted to Higher Education Commission Pakistan on 2012-
12-07
1% match (Internet from 11/24/12)
http://www.softwaretopics.net/srs-document
1% match (student papers from 09/27/12)
Submitted to Higher Education Commission Pakistan on 2012-
09-27
1% match (Internet from 11/29/11)
http://msdn.microsoft.com/en-
us/library/ff402523(v=vs.92).aspx
1% match (student papers from 04/17/10)
Submitted to Colorado Technical University Online on 2010-04-
17
1% match (student papers from 10/28/09)
Submitted to Informatics Education Limited on 2009-10-28
1% match (student papers from 09/15/11)
Submitted to Higher Education Commission Pakistan on 2011-
09-15
ACKNOWLEDGEMENT

We are really grateful because we managed to complete our Image Quality


Enhancement of out of focus images within the time given by our Supervisor lecturers
name. This assignment cannot be completed without the effort and co-operation from our
group members, Binish Surname. We also sincerely thank our lecturers of Computer
Science, for the guidance and encouragement in finishing this assignment and also for
teaching us in this course.

I am highly indebted to (S4P) software house for their guidance and


constant supervision as well as for providing necessary information
regarding the project & also for their support in completing the project.
I would like to express my special gratitude and thanks to industry
persons for giving me such attention and time.

Last but not least, we would like to express our gratitude to our friends and respondents
for the support and willingness to spend sometimes with us to fill in the questionnaires.
TABLE OF CONTENTS
CHAPTER PAGE
Chapter 1: Introduction to project report and project
overview
1.1 Introduction

1.2 Problem
Statement.
1.1.1 From A Customers Perspective..
..
1.1.2 Problem Related this
thesis..
1.3 Proposed
system.
1.3.1 Proposed
System.
1.3.2 Features
...
1.3.3 Objectives...
.
1.3.4 Proposed system features...
.
1.4 Development Methodology..
..
1.5 Resource
Requirement
Chapter 2: Background/Existing Work
2.0 Literature Overview...

2.1 Existing
System..
2.2 Limitations and Drawbacks..
......................
2.2.1 Innovations in project..

2.2.2 Design of
project.
Chapter 3: Software Requirement Specification
3.0 System
Specification.
3.0.1 Hardware Specification.....
.
3.0.2 Software
Specification...
Chapter 4: Project / Work Details

Chapter 5: System Testing

Chapter 6: Conclusion and Future Work

Appendix
References
LIST OF FIGURES
LIST OF TABLES
CHAPTER 1
INTRODUCTION
(Introduction to Project and Project Report)
1.0 INTRODUCTION

Image Enhancer was developed in keeping certain perspectives in


mind. Even the openCV, being one the finest real time computer vision
library in recent times, does not come with an out-of-the-box GUI,
apart from some burning issues like complex usability, memory
management schemes and developmental environment dependencies.

Since there are a very limited number of open source software for
performing image processing research so the need for incorporating all
digital imaging filters integrated in one place was one of the major
goals of this development. As a result, the researchers in the fields of
image processing and computer vision could utilize it in their research
or developers may extend the code for specific application
development.

Also the ability to edit the parameters of an image processing


algorithm is another important aspect in Image Processing research
which increases the reusability of the algorithm significantly. The
parameters of the digital imaging filters can be customized according
to end user choices so that the reusability and popularity of the
software increases for the researchers/developers who want to develop
an image processing workflow. Currently, it also provides support for
several image file types apart from jpg and bmp.

Using Image Enhancer is quite simple. The end user navigates through
the three interfaces by just pressing the Next or Back buttons. If
any problem occurs during image conversions then the errors and
exceptions are handled in a proper manner with relevant warning or
error dialogues. Users can also use the Refresh button to reload the
picture viewer area.
Similarly, the video buffering interface has a drop down list in which
the users can select the USB/ Surveillance camera according to their
choice from a list of cameras, if connected to the computer. Start,
Stop buttons starts and stops video buffering in the picture box viewer
respectively. Save button saves the snapshot to the disk drive after
stopping the video buffering. The user interface was built in Windows
Form which provides access to native MS Windows interface elements
by wrapping the Windows API in managed code as a replacement of old
and complex Microsoft Foundation Class (MFC) library in C++. The code
was written in Visual C# and fine-tuned for optimal time and space
complexity to support faster execution of the software.
Image Enhancer contains 64 simple and complex imaging filters
covering well known image enhancement techniques (e.g. brightness
correction, increment or decrement, contrast correction or stretching,
RGB scale rotation), Linear Edge Detection Techniques (Simple, Canny,
Sobel), Dithering (Simple, Burkes, Sierra, Stucki, Jarvis Judis Ninke),
Interest Point Detection (Susan Corner Detector) and many more.
Almost all the parameters of an image processing algorithm can be
modified generically as per end user requirements.

Additionally users can use the video buffering from USB/Surveillance


camera to take snapshots from video and apply effects to that image.
Currently our software accepts .jpg, .bmp, .png, .tiff, .tif, .emf, .exif,
.gif, .wmf and .dcm image formats.
More imaging formats to be added later in the upcoming version. The
GUI was developed in Windows Forms Application as a part of Microsoft
.NET framework. This software was written using Visual C# 4.0 using
Visual Studio 2012 IDE. AForge.NET, an open source computer vision
library was used to develop this software. It runs in Windows Platform
(Windows XP Service Pack 3, Windows Vista, and Windows 7/8/8.1).
Microsoft Dot NET client profile is the only dependency which is
required to run this software.
1.1 PROBLEM STATEMENT

1.1.1 THE PROBLEM FROM A CUSTOMERS


PERSPECTIVE

Consider the case where a craftsman travels a long distance to


take thermal images for a client. His assignment is to examine
the temperature of fuses to detect possible overheating. When
he returns back to put together the results he notices that the
images ended up blurred. This is due to that he forgot to focus,
had a hard time adjusting the focus perfectly or that the
autofocus was malfunctioning. Instead of going back to the
workplace and take new IR images, it would be very convenient if
he could connect the camera with the computer and press
deblur button. This would save both time and money.
The Deblurring will use known facts about the optics and detector
to restore the image. It may not be able to reproduce images
with perfect focus, yet it may produce a result that is fine enough
for his client to make a decision.

1.1.2 THE PROBLEM TREATED IN THIS THESIS

The goal with this master thesis is to evaluate the possibility to


restore out- of-focus images taken with FLIRs thermal cameras.
Infrared light has much smaller wavelength than visible light and
thus cannot be perceived by the human eye. Light with these
wavelengths can be used to measure the heat radiation and
reflection of an object to determine its temperature. The out-of-
focus problem occurs when the lens in the camera is slightly
moved due to bad autofocus or when the manual focus is set
incorrectly. This phenomenon can be described by a point spread
function (PSF) which explains how the light is spread when
traveling through the lens and onto the detector. It has been
shown that using the knowledge of this PSF, one is able to restore
some focus to the image. The more knowledge that is known
about the camera, the better restoration can be performed. In
this thesis, only the PSF for out-of-focus will be considered since
the noise levels are too complex to model in the infrared camera.
For example we have noise in both the time and spatial domain.
The different restoration algorithms will be evaluated on how well
high frequency details can be restored from the defocused
image, compared to one taken with best focus. Other important
factors are boundary artifacts and noise enhancements but also
the complexity of the algorithm as well as the computation time.
1.2 PROPOSED SYSTEM
1.2.1 PROPOSED SYSTEM

In order to get de-blurred image, the proposed method is first


normalized the blurred using contrast stretching. Then obtained image
and original image are converted into gray scale. Local edge detection
is applied on both images to get maximum edges. The set of edges
obtained from these two images are merged into one by taking
intersection. On the obtained image blind convolution is applied to get
the de-blurred image.
In this proposed project, four types of defects are considered for
evaluation. There are many types of defects are available
Deblur
Scratch
Stretch
Collapse
Dirty Spot
Cracked Point,
If these defects are not detected properly can affect the production
process massively.

1.2.2. MODULES

Enhancement techniques are to process an image so that the result is


more suitable than the original image. The images received from
different means may not be clear. So we use these enhancements to
improve the image according to our applications.

The techniques used are:-


1) BLUR 3X3 FILTER
2) BLUR 5X5 FILTER
3) GAUSSIAN 3X3 BLUR FILTER
4) GAUSSIAN 3X3 BLUR FILTER
5) SOFTEN FILTER
6) MOTION BLUR FILTER
7) MOTION BLUR LEFTTORIGHT FILTER
8) MOTION BLUR RIGHTTOLEFT FILTER
9) HIGHPASS 3X3 FILTER
10) EDGE DETECTION FILTER
11) HORIZONTAL EDGEDETECTION FILTER
12) VERTICAL EDGEDETECTION FILTER
13) EDGE DETECTION45DEGREE FILTER
14) EDGE DETECTION TOPLEFTBOTTOMRIGHT FILTER
15) SHARPEN FILTER
16) SHARPEN 3X3 FILTER
17) SHARPEN 5X5 FILTER
18) INTENSE SHARPEN FILTER
19) EMBOSS FILTER
20) EMBOSS 45DEGREE FILTER
21) EMBOSS LEFTBOTTOMRIGHT FILTER
22) INTENSE EMBOSS FILTER

Whenever the image received is misaligned then we use the rotate


techniques.
When the image is noisy then lowpassfiltering technique is used.
To highlight the image then we go for high boost filtering techniques.
For graphical representation we use histogram techniques.

1.2.3. FEATURES

A sum total of 64 simple and complex image processing filters


are incorporated.
Video Buffering is possible with the use of any USB or
Surveillance Camera.
Snapshots of the video can be taken from Video Buffering.
This project uses AForge.Net Framework for computer vision and
image processing.
It is basically a C# framework designed for developers and
researchers by Andrew Kirillov in the fields of Computer Vision
and Artificial Intelligence.
The main advantage of this project is implemented the image
processing technique using Microsoft C# with Visual Studio 2012
IDE and for the taken image, Histogram, Thresholding and Noise
Filtering techniques are applied for the image and the output is
obtained in this project.
1.2.4. OBJECTIVES

The main objectives of this system study are:


To explore image enhancement and optimization techniques for
Deblurring defect identification in images.
To obtain noise removed, enhanced, filtered and normalized
image.
To reduce the defects in images and produce high quality product
with minimum cost and time by automated defect identification.
Smoothing filters are used for blurring and for noise reduction.
Blurring is used in preprocessing steps, such as removal of small
details from an image prior to object extraction and bridging of
small gaps in lines or curves.
Noise reduction can be accomplished by blurring with a linear
filter and also by linear and also by nonlinear filtering.
The principal objective of sharpening is to highlight fine detail in
image or enhance detail that has been blurred, either in error or
as a natural effect of a particular method of image acquisition.
Uses of image sharpening vary and include applications ranging
from electronic printing and medical imaging to industrial
inspection and autonomous guidance in military systems.

1.2.5 GOALS OR AIMS


The goal of this project is to incorporate an image enhancement
block into a standard JPEG decoder for a portable platform.
The enhancement unit will primarily perform two tasks
o Improving the contrast of the image
o Removing any artifacts and noise introduced as a result of
contrast enhancement.
The contrast enhancement technique used manipulates the DCT
coefficients of a JPEG image to improve its quality.
It is carried out in the decompression stage so that the
compressibility of the image is not affected.
Since DCT and its inverse transform IDCT are performed on 8 x 8
blocks of pixels, any image processing algorithm implemented in
the transform domain produces flaws known as blocking artifacts.
These artifacts are a direct result of the independent processing
of blocks which does not take into account the existing
correlations among pixels in adjacent blocks.
So the enhancement unit also tries to minimize these blocking
artifacts introduced as a result of processing in the transform
domain.
1.3 DEVELOPMENT METHODOLOGY

We use Agile Software Development Methodology to develop our Image


Enhancement tool.

AGILE

Readiness for motion, nimbleness, activity, dexterity in motion

AGILITY

The ability to both create and respond to change in order to profit in a


turbulent business environment

1.3.1. AGILE SOFTWARE DEVELOPMENT

Agile software development is a conceptual framework for software


engineering that promotes development iterations throughout the life-
cycle of the project.
Software developed during one unit of time is referred to as an
iteration, which may last from one to four weeks.
Agile methods also emphasize working software as the primary
measure of progress

1.3.2. CHARACTERISTICS OF AGILE SOFTWARE


DEVELOPMENT

Light Weighted methodology


Small to medium sized teams
Vague and/or changing requirements
Vague and/or changing techniques
Simple design
Minimal system into production

SOME MORE CHARACTERISTICS ARE:


Modularity
Iterative
Time-bound
Incremental
Convergent
People-oriented
Collaborative

1.3.3. EXISTING AGILE METHODOLOGIES

Extreme Programming (XP)


Agile Unified Process (AUP)
Scrum

1.3.3.1. EXTREME PROGRAMMING

Most prominent Agile Software development method


Prescribes a set of daily stakeholder practices
Extreme levels of practicing leads to more responsive software.
Changes are more realistic, natural, and inescapable.
1.3.3.2. AGILE UNIFIED PROCESS (AUP)

AUP is a simplified version of RUP

1.3.3.2.1. Phases of Agile Unified Process (AUP)

Inception
Elaboration
Construction
Transition

1.3.3.2.2. DISCIPLINE OF AGILE UNIFIED PROCESS


(AUP)

Model
Implementation
Test
Deployment
Configuration Management
Project Management
Environment
1.3.3.3. SCRUM

It is an Agile S/w development method for project management

1.3.3.3.1 CHARACTERISTICS

Prioritized work is done.


Completion of backlog items
Progress is explained
Agile Software Development
1.4. RESOURCE REQUIREMENT

1.4.1. HARDWARE REQUIREMENT

Processor : Intel Core i3 or higher


RAM : 4096 MB
Hard Disk Drives : 500 GB
Monitor : Color Monitor
Keyboard : Multimedia Keyboard
Mouse : Logitech Mouse
NIC : Realtek / Intel 10/100
Mbps
Camera : Canon with 16 mega
pixel

1.4.2. HARDWARE REQUIREMENT

Operating System : Windows 7 or


higher
Technology : Image processing
Tool : MATLAB R2012a
IDE : Microsoft Visual Studio
AForge.Net 2.4.0 or
higher
Microsoft Dot Net
Framework 4.0 or higher
Language : C Sharp
CHAPTER 2
BACKGROUND / EXISTING WORK
(Literature Review, Existing Work)
CHAPTER 3
SOFTWARE REQUIREMENT
SPECIFICATION
3.1. SYSTEM SPECIFICATION

3.1.1. HARDWARE SPECIFICATION

Processor : Intel Core i3 or higher


RAM : 4096 MB
Hard Disk Drives : 500 GB
Monitor : Color Monitor
Keyboard : Multimedia Keyboard
Mouse : Logitech Mouse
NIC : Realtek / Intel 10/100 Mbps
Camera : Canon with 16 mega pixel

3.1.2. SOFTWARE SPECIFICATION

Operating System : Windows 7 or higher


Technology : Image processing
Tool : MATLAB R2012a
IDE : Microsoft Visual Studio
AForge.Net 2.4.0 or higher
Microsoft Dot Net Framework
4.0 or higher
Language : C Sharp
CHAPTER 4
PROJECT / WORK DETAILS
CHAPTER 5
SYSTEM TESTING
CHAPTER 6
CONCLUSION AND FUTURE WORK
APPENDIX
REFERENCES
REFERENCE
1. Microsoft Developer Network 2014 Code Metrics Values. Available
at http://msdn.microsoft.com/enus/library/bb385914.aspx.
2. Wikipedia 2014 Cyclomatic Complexity. Available at
http://en.wikipedia.org/wiki/Cyclomatic_complexity.
3. AForge.NET 2014 AForge.NET. Available at http://
www.aforgenet.com.
4. Matalas, I, Benjamin, R and Kitney, K 1997 An Edge Detection
Technique Using the Facet Model and Parameterized Relaxation
Labeling. Pattern Analysis and Machine Intelligence, IEEE
Transactions on, 328-341. 5. Smith, S M and Brady, J M eds. 1997
SUSANA New Approach to Low Level Image Processing, 45-71.
5. [1]. Abrahamsson P, Salo O and Ronkainen J. Agile software
development methods (Review and analysis).
6. [2]. Scott W Ambler. Agile model driven development.
7. [3]. Cohen D, Lindvall M, Costa P. Agile software development.
8. [4]. http://en.wikipedia.org/wiki/Agile_Modeling.
9. [5]. http://en.wikipedia.org/wiki/Extreme_Programming.
10. [6]. http://en.wikipedia.org/wiki/Agile_Unified_process.
11. [7]. http://en.wikipedia.org/wiki/Scrum_28development29.
12.