Optical Character Recognition Project Report
Optical Character Recognition Project Report
1. INTRODUCTION
1.1 Introduction to Project:
OCR technology provides reproductive systems by scanning and imaging systems the
ability to convert images of characters in a font of machine character can be understood
or recognized by a computer. Thus, images of characters in a font of machine are
drawn from a bitmap of the image reproduced by the scanner. This project is
completely based on concept of IMAGE PROCESSING (IP).
The OCR process involves several aspects such as segmentation, feature extraction and
classification. Image Processing Toolbox for MATLAB provides a feature set that extends
the product's capabilities to develop new algorithms and applications in the field of process
and image analysis. The environment and create mathematical MATLAB is ideal for image
processing, because these images are, after all, dies. This toolbox includes functions for:
* Filter design.
* 2D transformations.
Image processing is an absolutely crucial area of work for those groups and industries that
are working in areas such as medical diagnostics, astronomy, geophysics, environmental
science, data analysis in laboratories, industrial inspection, etc. Although not originally
developed for users who are visually impaired, Optical Character Recognition (OCR)
technology has become an aid for inputting documents quickly by and for users with vision
impairments. A complete OCR system consists of a scanner, the recognition component, and
OCR software that interacts with the other components to store the computerized document
in the computer. The process of inputting the material into the computer begins with the
scanner taking a picture of the printed material. Then, during the recognition process, the
picture is analyzed for layout, fonts, text and graphics. Finally, the picture of the document is
converted into an electronic format that can be edited with an application software. OCR
systems designed specifically for users with visual impairments have modified interfaces that
can be used with minimal assistance. In addition, technological developments will see an
increase in accuracy, including the ability of these products to decipher even handwritten
materials.
In general, OCR systems work as an external device with the user's existing assistive
technology. Once the picture is in electronic format, it is accessed for reading and/or editing
through the user's braille, speech or magnification technology. Since some products work
better with certain speech or braille systems, therefore, it is important to note its
compatibility with the other products in the user's computer system . Some products,
however, have an adaptive device built in. These are referred to as "stand-alone reading
machines." Of these, some products have the added flexibility of working either as a stand
alone or with a computer
In addition to whether the system is stand-alone or works in conjunction with the user's
computer, there are many other features to consider depending on the user's needs, including:
accuracy of scanning, and whether the product can handle poor-quality print or image print,
such as faxes; level of flexibility in terms of the material's size and format, such as large
paper documents and books, and whether the system will offers automatic adjustment of
brightness, contrast and orientation of print (vertical or horizontal); whether the user controls
are accessible, such as braille keypads or speech feedback: whether manuals are supplied in
braille and/or on casette, and the level of online technical support.
1.3 Advantages:
Ø There are many documents in world which are not avaliable in computer
readable format.(specially in regional languages).
Ø OCR has enabled scanned documents to become more than just image files, turning
into fully searchable documents with text content that is recognized by computers.
Ø With the help of OCR, people no longer need to manually retype important
documents when entering them into electronic databases. Instead, OCR extracts
relevant information and enters it automatically. The result is accurate, efficient
information processing in less time.
1.4 Applications:
Basic Application:
OCR can be used to enter data automatically into a computer for dissemination and
processing.
Banking:
The uses of OCR vary across different fields. One widely known application is in banking,
where OCR is used to process checks without human involvement. A check can be inserted
into a machine, the writing on it is scanned instantly, and the correct amount of money is
transferred. This technology has nearly been perfected for printed checks, and is fairly
accurate for handwritten checks as well, though it occasionally requires manual confirmation.
Overall, this reduces wait times in many banks.
Healthcare:
In the legal industry, there has also been a significant movement to digitize paper documents.
In order to save space and eliminate the need to sift through boxes of paper files, documents
are being scanned and entered into computer databases. OCR further simplifies the process
by making documents text-searchable, so that they are easier to locate and work with once in
the database. Legal professionals now have fast, easy access to a huge library of documents
in electronic format, which they can find simply by typing in a few keywords.
Digital Library:
Digital library can be made with the help of OCR by converting large book collections into
computer readable text format for on-line viewing of content.
2. Review of Literature
2.1 Goal:
Ø Performing the mechanical or electronic translation of images of handwritten,
typewritten or printed text (usually captured by a scanner) into machine-editable text.
Ø Accuracy in Character Recognition
Ø Fast performance so that we can process more documents in short time
Face Recognition:
A facial recognition system is a computer application for automatically identifying or
verifying a person from a digital image or a video frame from a video source. One of the
ways to do this is by comparing selected facial features from the image and a facial database.
Speech Recognition :
While OCR converts visible words or characters to text Speech recognition system converts
audible words to text. It is also known as automatic speech recognition or computer speech
recognition and it converts spoken words to text.
3. System Analysis:
3.1 Requirement Analysis
Hardware Requirements:
Ø WINDOWS O.S , 1 GB RAM , 80-120 GB HDD
Ø 2.0 GHZ PROCESSOR
Ø SCANNER , WEB CAM
Software Requirements:
Ø MATLAB 7.0 AND ABOVE VERSION
Ø Text Editor
WHY MATLAB?
RS2 The system should do Essential Noise in the image Since real life
filtering of image should be removed images have
before processing it. by filtering it so noise, system
that processing should have
should not have any noise removal
glitch. facility.
RS3 The system should Essential System should This will make
work on background works irrespective system work for
of various colours. of background various
colour.(yellow,pink documents
etc..)
3.3 Feasibility:
The feasibility study of “Optical Character Recognition” are based on the following
aspects:
Ø Technical
The implementation of our project is quite simple. There are very few components
required for our project. One of the components required is a scanner, MATLAB
Software, Working Pentium 4 PC. Due to the less number of components required
“Optical Character Recognition” becomes technically feasible.
Ø Financial
The system requires only two major components i.e. a scanner and MATLAB. Out of
these the MATLAB is bit expensive and the other two things are easily affordable.
Also no servicing of product is required since it is software based.
Ø Resources
All the resources are easily available and time available is sufficient to complete
project . However testing phase may suffer due to short span of time
Ø Operational
System is Operationally feasible since it can satisfy all requirements in requirement
analysis phase.
Ø Product Size
No product size risk is involved.
Ø Business Impact
There are no specific business risks associated with the project, as this project is not
associated with any budget as the project is being built as a mini project
Ø Development Environment
The development environment is not too complicated as the project is being built on
MATLAB
Ø Technology Newness
The software used for this project not an old technology and can be understood to people
who have little knowledge of this language.
Risk Projection :
Risks Category Probability Impact
Faulty scans. TE 50% 2
Multicoloured background TE 40% 3
Deadline tightened. BU 60% 2
PS-Project Size
BU-Business Impact
TE-Technology to be built.
Impact values:
1-Catastrophic
2-Critical
3-Marginal
4-Negligible
The time required to build the project was calculated. There was less time to complete the
project as size increased.
Refinement/context: 1.Misinterpretion of some aspect of the system.
Refinement/context:
Use various image enhancement techniques specially image filtering to remove high
frequency noise.
Current Status:
Description:
Multicoloured Background
Refinement/context:
4. Project Planning:
4.1 Timeline Chart
July August September October
W W W W W W W W W W W W W W W W
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1) Gathering
Initial
Requirement
s.
Meet Internal
Guide
Identify needs
& Constraints
Determine
Goals & Scope
Establish
specification.
Gathering standard
character and interrelating
various functions
Milestone: - Design Specification complete.
5) Development
Developing Code for
various supportive
functions
Developing code for main
OCR function
Milestone: - Development Phase complete.
7) Testing Phase
Testing characters
Valid Input Testing
Proposed Time
Actual Time
System
analysis
System
Design
Coding
Testing
5. System Design:
5.1 Block Diagram
Ø Image Acquisition :
In this step we aquire image with the help of scanner.
Ø Filtering Process:
In this step ,Noise in the image is removed.
Ø Character recognition:
In this step various character in the images are recognized. All processing is done in
MATLAB software.
Ø Display Output:
Optically Recognized Characters i.e output of the system is displayed on screen.
6. IMPLEMENATION
6.1 Functions used
The following functions have been used while implementing the OCR system:
BWLABEL
Syntax:
L = bwlabel(BW,n)
[L,num] = bwlabel(BW,n)
Description:
L = bwlabel(BW,n) returns a matrix L, of the same size as BW, containing labels for the
connected objects in BW. n can have a value of either 4 or 8, where 4 specifies 4-connected
objects and 8 specifies 8-connected objects; if the argument is omitted, it defaults to 8.
The elements of L are integer values greater than or equal to 0. The pixels labeled 0 are the
background. The pixels labeled 1 make up one object, the pixels labeled 2 make up a second
object, and so on.
[L,num] = bwlabel(BW,n) returns in num the number of connected objects found in BW.
FIND:
Find indices and values of nonzero element
Syntax:
indices = find(X)
[i,j] = find(X)
[i,j,v] = find(X)
[...] = find(X, k)
find(X, k, 'first')
Description:
indices = find(X) returns the linear indices corresponding to the nonzero entries of the array
X. If none are found, find returns an empty matrix. In general, find(X) regards X as X(:),
which is the long column vector formed by concatenating the columns of X.
[i,j] = find(X) returns the row and column indices of the nonzero entries in the matrix X. This
syntax is especially useful when working with sparse matrices. If X is an N-dimensional
array with N > 2, j contains linear indices for the dimensions of X other than the first.
[i,j,v] = find(X) returns a column vector v of the nonzero entries in X, as well as row and
column indices
[...] = find(X, k) or [...] = find(X, k, 'first') returns at most the first k indices corresponding to
the nonzero entries of X. k must be a positive integer, but it can be of any numeric data type.
[...] = find(X, k, 'last') returns at most the last k indices corresponding to the nonzero entries
of X.
IMREAD
Read image from graphics file
Syntax
A = imread(filename,fmt)
[X,map] = imread(filename,fmt)
[...] = imread(filename)
[...] = imread(URL,...)
Description
The imread function supports four general syntaxes, described below. The imread function
also supports several other format-specific syntaxes. See Special Case Syntax for information
about these syntaxes.
MAX
Maximum elements of an array
Syntax
C = max(A)
C = max(A,B)
C = max(A,[],dim)
[C,I] = max(...)
Description
C = max(A) returns the largest elements along different dimensions of an array. If A is a
vector, max(A) returns the largest element in A. If A is a matrix,max(A) treats the columns
of A as vectors, returning a row vector containing the maximum element from each column.
If A is a multidimensional array, max(A) treats the values along the first non-singleton
dimension as vectors, returning the maximum value of each vector.
C = max(A,B) returns an array the same size as A and B with the largest elements taken from
A or B.
C = max(A,[],dim) returns the largest elements along the dimension of A specified by scalar
dim. For example, max(A,[],1) produces the maximum values along the first dimension (the
rows) of A.
[C,I] = max(...) finds the indices of the maximum values of A, and returns them in output
vector I. If there are several identical maximum values, the index of the first one found is
returned.
MIN
Minimum elements of an array
Syntax
C = min(A)
C = min(A,B)
C = min(A,[],dim)
Description
C = min(A) returns the smallest elements along different dimensions of an array. If A is a
vector, min(A) returns the smallest element in A.C,I] = min(...)
If A is a matrix, min(A) treats the columns of A as vectors, returning a row vector containing
the minimum element from each column.
C = min(A,B) returns an array the same size as A and B with the smallest elements taken
from A or B.f A is a multidimensional array, min operates along the first nonsingleton
dimension.
C = min(A,[],dim) returns the smallest elements along the dimension of A specified by scalar
dim. For example, min(A,[],1) produces the minimum values along the first dimension (the
rows) of A.
[C,I] = min(...) finds the indices of the minimum values of A, and returns them in output
vector I. If there are several identical minimum values, the index of the first one found is
returned.
IMVIEW
Display image in the Image Viewer
Syntax
imview(I)
imview(RGB)
imview(X,map)
imview(I,range)
imview(filename)
imview(...,'InitialMagnification',initial_mag)
h = imview(...)
Description:
imview(I) displays the intensity image I. imview(RGB) displays the true-color image RGB.
imview(I,range) displays the intensity image I, where range is a two-element vector [LOW
HIGH] that controls the black-to-white range in the displayed image. imview displays the
value LOW (and any value less than LOW) as black, and the value HIGH (and any value
greater than HIGH) as white. Values in between are displayed as intermediate shades of gray.
range can also be empty ([]), in which case imview displays the minimum value of I as black
and the maximum value of I as white. In other words, imview(I,[]) is equivalent to
imview(I,[min(I(:)) max(I(:))]).
imview(filename) :displays the image contained in the file specified by filename. The file
must contain an image that can be read by imread. If the file contains multiple images, the
first one is displayed.
With no input arguments, imview displays a file chooser dialog box so you can select an
image file interactively. H = imview(...) returns a handle H to the tool. close(H) closes the
image viewer. imview close all closes all image
FUNCTION
Function M-files
Description
You add new functions to the MATLAB vocabulary by expressing them in terms of existing
functions. The existing commands and functions that compose the new function reside in a
text file called an M-file.
M-files can be either scripts or functions. Scripts are simply files containing a sequence of
MATLAB statements. Functions make use of their own local variables and accept input
arguments.
The name of an M-file begins with an alphabetic character and has a filename extension of
.m. The M-file name, less its extension, is what MATLAB searches for when you try to use
the script or function.
A line at the top of a function M-file contains the syntax definition. The name of a function,
as defined in the first line of the M-file, should be the same as the name of the file without
the .m extension. For example, the existence of a file on disk called stat.m with
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n));
defines a new function called stat that calculates the mean and standard deviation of a
vector. The variables within the body of the function are all local variables. A sub function,
visible only to the other functions in the same file, is created by defining a new function with
the function keyword after the body of the preceding function or subfunction.
n = length(x);
mean = avg(x,n);
stdev = sqrt(sum((x-avg(x,n)).^2)/n);
mean = sum(x)/n;
Subfunctions are not visible outside the file where they are defined. Functions normally
return when the end of the function is reached. Use a return statement to force an early
return.
ISEMPTY
Test if array is empty
Syntax:
f = isempty(A)
Description
tf = isempty(A) returns logical true (1) if A is an empty array and logical false (0) otherwise.
An empty array has at least one dimension of size zero, for example, 0-by-0 or 0-by-5.
Examples
B = rand(2,2,2);
B(:,:,:) = [];
isempty(B)
ans =1
MEDFILT2
Perform two-dimensional median filtering
Syntax
B = medfilt2(A,[m n])
B = medfilt2(A)
B = medfilt2(A,'indexed',...)
Description
Median filtering is a nonlinear operation often used in image processing to reduce "salt and
pepper" noise. Median filtering is more effective than convolution when the goal is to
simultaneously reduce noise and preserve edges.
B = medfilt2(A,[m n]) performs median filtering of the matrix A in two dimensions. Each
output pixel contains the median value in the m-by-n neighborhood around the corresponding
pixel in the input image. medfilt2 pads the image with 0's on the edges, so the median values
for the points within
B = medfilt2(A) performs median filtering of the matrix A using the default 3-by-3
neighborhood.
WHILE
Repeat statements an indefinite number of times
Syntax
while expression
statements
end
Description
while repeats statements an indefinite number of times. The statements are executed while
the real part of expression has all nonzero elements.
Arguments Expression:
expression is a MATLAB expression, usually consisting of variables or smaller expressions
joined by relational operators (e.g., count < limit) or logical functions (e.g., isreal(A)).
Statements
statements is one or more MATLAB statements to be executed only while the expression is
true or nonzero.
SIZE
Array dimensions
Syntax
d = size(X)
[m,n] = size(X)
m = size(X,dim)
[d1,d2,d3,...,dn] = size(X)
Description
d = size(X) returns the sizes of each dimension of array X in a vector d with ndims(X)
elements.
[d1,d2,d3,...,dn] = size(X) returns the sizes of the first n dimensions of array X in separate
variables.If the number of output arguments n does not equal ndims(X), then for:
n > ndims(X) size returns ones in the "extra" variables, i.e., outputs ndims(X)+1 through n.
n < ndims(X) dn contains the product of the sizes of the remaining dimensions of X, i.e.,
dimensions n+1 through ndims(X).
FOR
Repeat statements a specific number of times
Syntax
statements
end
Description
The general format is
statement
...
statement
end
The columns of the expression are stored one at a time in the variable while the following
statements, up to the end, are executed.
In practice, the expression is almost always of the form scalar :scalar, in which case its
columns are simply scalars.
The scope of the for statement is always terminated with a matching end.
IF
Conditionally execute statements
Syntax
if expression
statements
end
Description
MATLAB evaluates the expression and, if the evaluation yields a logical true or nonzero
result, executes one or more MATLAB commands denoted here as statements.
When you are nesting ifs, each if must be paired with a matching end.
When using elseif and/or else within an if statement, the general form of the statement is
if expression1
statements1
elseif expression2
statements2
else
statements3
end
Arguments expression
expression is a MATLAB expression, usually consisting of variables or smaller expressions
joined by relational operators (e.g., count < limit), or logical functions (e.g., isreal(A)).
Simple expressions can be combined by logical operators ( &, |,~) into compound
expressions such as the following. MATLAB evaluates compound expressions from left to
right, adhering to operator precedence rules.
Statements
statements is one or more MATLAB statements to be executed only if the expression is
true or nonzero.
ZERO
Transmission zeros of LTI models
Syntax
z = zero(sys)
[z,gain] = zero(sys)
Description
zero computes the zeros of SISO systems and the transmission zeros of MIMO systems. For
a MIMO system with matrices (A,B,C,D), the transmission zeros are the complex values
lmbda for which the normal rank of drops.
Z = zero(sys) returns the (transmission) zeros of the LTI model sys as a column vector.
[z,gain ] = zero(sys) also returns the gain (in the zero-pole-gain sense) if sys is a SISO
system
FCLOSE
Close one or more open files.
Syntax
status = fclose(fid)
status = fclose('all')
Description
status = fclose(fid) closes the specified file if it is open, returning 0 if successful and -1 if
unsuccessful. Argument fid is a file identifier associated with an open file.
status = fclose('all') closes all open files (except standard input, output, and error), returning 0
if successful and -1 if unsuccessful.
Syntax
BW = edge(I,'sobel')
BW = edge(I,'sobel',thresh)
BW = edge(I,'sobel',thresh,direction)
[BW,thresh] = edge(I,'sobel',...)
----------------
BW = edge(I,'prewitt')
BW = edge(I,'prewitt',thresh)
BW = edge(I,'prewitt',thresh,direction)
[BW,thresh] = edge(I,'prewitt',...)
------
BW = edge(I,'roberts')
BW = edge(I,'roberts',thresh)
[BW,thresh] = edge(I,'roberts',...)
---------------
BW = edge(I,'log')
BW = edge(I,'log',thresh)
BW = edge(I,'log',thresh,sigma)
[BW,threshold] = edge(I,'log',...)
-------
BW = edge(I,'zerocross',thresh,h)
[BW,thresh] = edge(I,'zerocross',...)
-----------
BW = edge(I,'canny')
BW = edge(I,'canny',thresh)
BW = edge(I,'canny',thresh,sigma)
[BW,threshold] = edge(I,'canny',...)
Description
edge takes an intensity image I as its input, and returns a binary image BW of the same size
as I, with 1's where the function finds edges in I and 0's elsewhere.edge supports six different
edge-finding methods: The Sobel method finds edges using the Sobel approximation to the
derivative. It returns edges at those points where the gradient of I is maximum
The Prewitt method finds edges using the Prewitt approximation to the derivative. It returns
edges at those points where the gradient of I is maximum.
The Roberts method finds edges using the Roberts approximation to the derivative. It returns
edges at those points where the gradient of I is maximum.
The Laplacian of Gaussian method finds edges by looking for zero crossings after filtering I
with a Laplacian of Gaussian filter. The zero-cross method finds edges by looking for zero
crossings after filtering I with a filter you specify.
The Canny method finds edges by looking for local maxima of the gradient of I. The gradient
is calculated using the derivative of a Gaussian filter. The method uses two thresholds, to
detect strong and weak edges, and includes the weak edges in the output only if they are
connected to strong edges. This method is therefore less likely than the others to be fooled by
noise, and more likely to detect true weak edges.
The parameters you can supply differ depending on the method you specify. If you do not
specify a method, edge uses the Sobel method.
Sobel Method
BW = edge(I,'sobel') specifies the Sobel method.
BW = edge(I,'sobel',thresh) specifies the sensitivity threshold for the Sobel method. edge
ignores all edges that are not stronger than thresh. If you do not specify thresh, or if thresh is
empty ([]), edge chooses the value automatically.
BW = edge(I,'sobel',thresh) specifies the sensitivity threshold for the Sobel method. edge
ignores all edges that are not stronger than thresh. If you do not specify thresh, or if thresh is
empty ([]), edge chooses the value automatically.
FOPEN
Open a file or obtain information about open files
Syntax
fid = fopen(filename)
fids = fopen('all')
Description
fid = fopen(filename) opens the file filename for read access. (On PCs, fopen opens
fid is a scalar MATLAB integer, called a file identifier. You use the fid as the first
argument to
other file input/output routines. If fopen cannot open the file, it returns -1. Two file
identifiers are
automatically available and need not be opened. They are fid=1 (standard output) and fid=2
(standard error).
fid = fopen(filename, mode) opens the file filename in the specified mode. The mode
'w' Open file, or create new file, for writing; discard existing contents, if any.
'a' Open file, or create new file, for writing; append data to the end of the file.
'w+' Open file, or create new file, for reading and writing; discard existing contents, if any.
'a+' Open file, or create new file, for reading and writing; append data to the end of the file.
filename can be a MATLABPATH relative partial pathname if the file is opened for reading
only. A
relative path is always searched for first with respect to the current directory. If it is not
found, and reading only is specified or implied, then fopen does an additional search of the
MATLABPATH.
WINOPEN
Open file in appropriate application (Windows only)
Syntax
winopen('filename')
Description
winopen('filename') opens filename in the appropriate Microsoft Windows application. The
winopen function uses the appropriate Windows shell command, and performs the same
action as if you double-click the file in the Windows Explorer. If filename is not in the
current directory, specify the absolute path for filename.
FPRINTF
Write formatted data to file
Syntax
count = fprintf(fid,format,A,...)
Description
count = fprintf(fid,format,A,...) formats the data in the real part of matrix A (and in any
additional matrix arguments) under control of the specified format string, and writes it to the
file associated with file identifier fid. fprintf returns a count of the number of bytes written.
Argument fid is an integer file identifier obtained from fopen. (It can also be 1 for standard
output (the screen) or 2 for standard error. Omitting fid causes output to appear on the screen.
Format String
Conversion specifications begin with the % character and contain these optional and required
elements:
Flags (optional)
LOAD
Load workspace variables from disk
Syntax
load
load('filename')
load('-mat', 'filename')
load('-ascii', 'filename')
S = load(...)
Description
load loads all the variables from the MAT-filematlab.mat, if it exists, and returns an error if it
doesn't exist.
load('filename') loads all the variables from filename given a full pathname or a
MATLABPATH relative partial pathname. If filename has no extension, load looks for a file
named filename.mat and treats it as a binary MAT-file. If filename has an extension other
than .mat, load treats the file as ASCII data.
load('filename', 'X', 'Y', 'Z') loads just the specified variables from the MAT-file. The
wildcard '*' loads variables that match a pattern (MAT-file only).
load('filename', '-regexp', exprlist) loads those variables that match any of the
load('-mat', 'filename') forces load to treat the file as a MAT-file, regardless of file extension.
If the file is not a MAT-file, load returns an error.
load('-ascii', 'filename') forces load to treat the file as an ASCII file, regardless of file
extension. If the file is not numeric text, load returns an error.
S = load(...) returns the contents of a MAT-file in the variable S. If the file is a MAT-file, S is
a struct containing fields that match the variables retrieved. When the file contains ASCII
data, S is a double-precision array.
load filename -regexp expr1 expr2 ... is the command form of the syntax.
Use the functional form of load, such as load('filename'), when the file name is
UNLOAD
Remove the current target application from the target PC
Syntax
unload(target_object)
target_object.unload
Arguments
Description
Method of a target object. The kernel goes into loader mode and is ready to download new
target application from the host PC.
6.2 Screenshots
Input image
Filtered Image
Inverted Clipped
Output
7. Testing
Unit Testing:
In computer programming, a unit test is a method of testing the correctness of particular
module of source code. Each functions in Source Code has been tested individually. Testing
Results were found satisfactory. Each function in source code has given positive results while
working on Images with various extensions.
8. Future
Ø Recognition will be done from captured images rather than from the actual item
Ø Robotics and computer vision
Ø mixing methodologies and making more use of context.
Ø Processing of skewed documents
Ø Grouping of symbols and indentification of characters.
9. Conclusion
What does the future hold for OCR? Given enough entrepreneurial designers and sufficient
research and development dollars, OCR can become a powerful tool for future data entry
applications. However, limited availability of funds in a capital-short environment could
restrict the growth of this technology. It will be very difficult to identify a single application
that could generate a sufficient return on investment for extensive research. Marketing
professionals will have to create enough general use applications to justify these
expenditures. But, given the proper impetus and encouragement, the automated entry of data
by OCR is one of the most attractive, labor reducing technologies available.
10. Biblography
10.1 Internet References:
Ø http://en.wikipedia.org/wiki/Optical_character_recognition
Ø http://www.mathworks.com/
Ø http://www.mathworks.com/image-video-processing/
Ø http://www.mathtools.net/MATLAB/
10.2 Books:
Table of Contents
1. INTRODUCTION .............................................................................................................................. 1
1.1 Introduction to Project: .......................................................................................................... 1
. ........................................................................................................................................................... 1
1.2 Why this Project: .................................................................................................................... 3
1.3 Advantages: ............................................................................................................................ 3
1.4 Applications: ........................................................................................................................... 4
Basic Application: ........................................................................................................................... 4
Banking: .......................................................................................................................................... 4
Healthcare: ..................................................................................................................................... 4
Digital Library: ................................................................................................................................ 4
Invoice and Shipping Receipt Processing: ...................................................................................... 4
Robotics and Computer vision: .................................................................................................... 5
Document identification & Automatic number-plate readers:...................................................... 5
2. Review of Literature ....................................................................................................................... 6
2.1 Goal: ....................................................................................................................................... 6
2.2 Other Existing Systems: .......................................................................................................... 6
Face Recognition: ........................................................................................................................... 6
Speech Recognition : ...................................................................................................................... 6
3. System Analysis: ............................................................................................................................. 7
3.1 Requirement Analysis............................................................................................................. 7
Hardware Requirements: ............................................................................................................... 7
Software Requirements: ................................................................................................................ 7
WHY MATLAB? ............................................................................................................................... 7
3.2 Software Requirement Specification:.................................................................................... 9
3.3 Feasibility:............................................................................................................................. 10
3.4 Risk Analysis: ........................................................................................................................ 11
Risk Identification: ........................................................................................................................ 11
Risk Projection : ............................................................................................................................ 12
Sort the risk table with respect to the impact values .................................................................. 13