Image Processing - PowerPoint PPT Presentation

About This Presentation
Title:

Image Processing

Description:

digital image . is an array of real ... Image processing using MATLAB. The name MATLAB stands for matrix laboratory . It is a high-performance language for technical ... – PowerPoint PPT presentation

Number of Views:2603
Avg rating:3.0/5.0
Slides: 84
Provided by: 123semina
Category:

less

Transcript and Presenter's Notes

Title: Image Processing


1
Image Processing
2
What is Image Processing ?
  • Image Processing is any form of signal
    processing for which our input is an image, such
    as photographs or frames of video and our output
    can be either an image or a set of
    characteristics or parameters related to the
    image.

3
  • Image Processing generally refers to processing
    of two dimensional picture and by two dimensional
    picture we implies a digital image.
  • A digital image is an array of real or complex
    numbers represented by a finite number of bits.
  • But now in these days optical and analog image
    processing is also possible.

4
Applications
  •   Face detection
  • Feature detection
  • Non-photorealistic rendering
  • Medical image processing
  • Microscope image processing
  • Morphological image processing
  • Remote sensing
  • Automated Sieving Procedures
  • Finger print recognization

5
How image processing is done ?
  • Image processing can be done using various
    softwares and languages such as-
  • Software
  • Matlab
  • Adobe photoshop
  • Irfan view
  • Language
  • VHDL
  • C/C

6
Image processing using MATLAB
7
MATLAB
  • The name MATLAB stands for matrix laboratory .
    It is a high-performance language for technical
    computing. It is an interactive system whose
    basic data element is an array which does not
    require any dimensioning. This allows us to solve
    many technical computing problems, especially
    those with matrix and vector formulations, in a
    fraction of the time.

8
  • MATLAB features a family of add-on
    application-specific solutions called toolboxes.
    These toolboxes are comprehensive collections of
    matlab functions (M-files) that extend the matlab
    environment to solve particular classes of
    problems. Areas in which toolboxes are available
    include image processing, signal processing,
    control systems, neural networks, fuzzy logic,
    wavelets, simulation, and many others..

9
Image Processing Toolbox
10
Image processing toolbox
  • The Image Processing Toolbox is a collection of
    functions that extend the capability of the
    Matlab numeric computing environment. These
    functions are written on M-files and further we
    can extend the capabilities of the Image
    Processing Toolbox by writing our own M-files.
    This toolbox supports a wide range of image
    processing operations such as..

11
Operations of image processing
  • Color corrections such as brightness and contrast
    adjustments, quantization, or color translation
    to a different color space.
  • Image registration, the alignment of two or more
    images.
  • Image segmentation.

12
  • Neighborhood and block operations.
  • Linear filtering and filter design.
  • Transforms.
  • High dynamic range imaging by combining multiple
    images.
  • Deblurring.

13
Image formats supported by Matlab
  • The following image formats are supported by
    Matlab
  •  
  • BMP
  • HDF
  • JPEG
  • PCX
  • TIFF
  • XWB

14
Types of images
  • Intensity image
  • This is the equivalent to a "gray scale image .
    It represents an image as a matrix where every
    element has a value corresponding to how
    bright/dark (each element represent intensities).
  • Binary image
  • This image format also stores an image as a
    matrix but can only color a pixel black or white
    (and nothing in between). It assigns a 0 for
    black and a 1 for white.

15
  • Indexed image
  • This is a practical way of representing color
    images. An indexed image stores an image as two
    matrices. The first matrix has the same size as
    the image and one number for each pixel. The
    second matrix is called the color map and its
    size may be different from the image. The numbers
    in the first matrix is an instruction of what
    number to use in the color map matrix.

16
  • RGB image
  • It represents an image with three matrices of
    sizes matching the image format. Each matrix
    corresponds to one of the colors red, green or
    blue and gives an instruction of how much of each
    of these colors a certain pixel should use. A
    pixel whose color components are (255,255,255) is
    displayed as White. And whose color components
    are (0,0,0) is displayed as Black.

17
Commands for intensity Adjustment
  • Histeq( ) This command is used to improve the
    contrast in the image. This function spreads the
    intensity values over the full range of the
    image, and this process is known as histogram
    equalization.
  • Syntax
  • histeq(Image_name.format)

After
Before
18
  • Imadjust( ) This command is used to adjust the
    contrast of the image. Imadjust increases the
    contrast of the image by saturating 1 of the
    data at both low and high intensities of Image
    and by stretching the intensity.
  • Syntax
  • Imadjust(image_name.format)

19
Examples of imadjust
20
  • Adapthisteq( ) This command is used to perform
    contrast-limited adaptive histogram equalization
    (CLAHE). It is an alternative to function
    histeq, While histeq works on the entire image,
    adapthisteq operates on small regions in the
    image, called tiles.
  • Syntax
  • adapthisteq(Image_name.format)

Before
After
21
Commands used for various file operations in
image processing toolbox.
  • Imread( ) This command is used to read that
    image on which the operation has to be done.
    Imread returns the image data in the array. If
    the file contains a grayscale image, then it will
    return a two-dimensional (M-by-N) array and if
    the file contains a color image, it will return a
    three-dimensional (M-by-N-by-3) array. The class
    of the returned array depends on the data type
    used by the file format.
  • Syntax
  • Imread(image_name.format)

22
  • Imview( ) This command is used to view the image
    on the screen. And this command is always used
    with the imread and imwrite command, because, it
    views only that image which is under process.
  • Syntax
  • Imview(image_name.format)

23
  • Result of above explained commands.

24
  • Imwrite( , ) This command is used to change the
    format of read file. By using this command we can
    change the file formats from one to another.
  • Syntax
  • Imwrite(image_name.format2,
    image_name.format1)
  • Imfinfo( ) This command is used to obtain the
    information about the image under process. It is
    used to obtain information such as size, position
    of pixels, number of rows and columns etc.
  • Syntax
  • Iminfo(image_name.format)

25
  • Imsubtract( , ) This command is used to create a
    more uniform background, by subtracting the
    background image from the original image.
  • To estimate the background image, we use
    following command
  • backgroundimopen(Image_name.format,strel('dis
    k',15))
  • To see the estimated background image, type
    imview(background)
  • Now subtract the background image from the
    original image, type
  • imsubtract(image_name.format,background)

26
  • Result of the above used commands

27
  • Imresize( , ) This command is used to
    resize the processed image. To enlarge an image,
    specify a magnification factor greater than 1 in
    the command. To reduce an image, specify a
    magnification factor between 0 and 1 in the
    command.
  • Syntax
  • imresize(Image_name.format, value)

28
  • Image Rotation( , ) This command is used to
    rotate the given image. This command accepts two
    primary arguments, one is the image to be rotated
    and other one is rotation angle. We have to
    specify the rotation angle in degrees. If a
    positive value is specified then imrotate rotates
    the image counterclockwise and if a negative
    value then imrotate rotates the image clockwise.
  • Syntax
  • imrotate(Image_name.format, angle_in_degree)

29
Result of the above used commands
30
  • Imcrop( , ) This command is used to crop the
    particular image. It accepts two primary
    arguments
  • The image to be cropped.
  • The coordinates of a rectangle that defines the
    crop area.
  • If we call imcrop without specifying the crop
    rectangle, we can specify the crop rectangle
    interactively. In this case, the cursor changes
    to crosshairs when it is over the image. Position
    the crosshairs over a corner of the crop region
    and press and hold the left mouse button. When we
    drag the crosshairs over the image we specify the
    rectangular crop region. imcrop draws a rectangle
    around the area we are selecting. When we release
    the mouse button, imcrop creates a new image from
    the selected region.

31
 
Syntax Imcrop(image_name.format)
After
Before
If we call imcrop with specifying the crop
rectangle, imcrop operates on the image in the
current axes.Syntax Imcrop(Image_name.format
, rect)
32
  • Imerode( , ) This command is used to erode the
    image. This function accepts two primary
    arguments
  • The input image to be processed (grayscale,
    binary image),
  • A structuring element object, returned by the
    strel function, or a binary matrix defining the
    neighborhood of a structuring element.
  • Syntax
  • Imerode(binary_image.format , strel)

Before
After
33
  • Im2bw This command is used to convert the given
    image in to binary image. This command is mainly
    followed by one another command i.e.
    levelgraythresh(image_name.format).
  • Syntax
  • Levelgraythresh(image_name.format)
  • Bwim2bw(image_name.format, level)

Before
After
34
  • Duller This command is used to fade the image,
    so that, other image on which it is overlapped
    can be easily viewed.
  • Syntax
  • Duller image_name.format
  • This is the amount by which the fading is
    done.
  • Combine This command is used to combine or
    overlap the two images. This is the command on
    which over all project stands.
  • Syntax
  • Combine image1 image2.

0.5
35
Image Conversions
  • We can convert images in any of formats/types
    described above using the following commands.
  • Intensity format to Indexed format. gray2ind(
    )

Gray
Indexed
36
  • indexed format to intensity format.
    ind2gray()

Indexed
Gray
37
  • RGB format to intensity format. rgb2gray( )

RGB
Gray
38
  • RGB format to indexed format. rgb2ind( )

RGB
Indexed
39
IMAGE ANALYSIS
  • Image analysis return information about the
    structure of an image. This section describes
    toolbox functions that we can use for these image
    analysis techniques which includes
  • Edge Detection
  • Boundary Tracing
  • Quadtree Decomposition

40
Edge Detection
  • We can use the edge function to detect edges,
    which are those places in an image that
    correspond to object boundaries. To find edges,
    this function looks for places in the image where
    the intensity changes rapidly. 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.

41
  • Canny Method
  • The most powerful edge-detection method that
    edge provides is the Canny method. The Canny
    method differs from the other edge-detection
    methods in that it uses two different 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. 
  • Syntax
  • Edge (image_name.fomat,'canny')

Before
After
42
Boundary Tracing
  • The toolbox includes two functions you can use
    to find the boundaries of objects in a binary
    image
  • Bwtraceboundary
  • Bwboundaries

43
  • Bwtraceboundary
  • The bwtraceboundary function returns the row
    and column coordinates of all the pixels on the
    border of an object in an image. We must specify
    the location of a border pixel on the object as
    the starting point for the trace.
  • Syntax
  • boundary bwtraceboundary(binary_image,row,
    col,'N')

44
  • Bwboundaries
  • The bwboundaries function returns the row and
    column coordinates of border pixels of all the
    objects in an image.
  • Syntax
  • binary_image _filled imfill(binary_image,'holes'
    )
  • boundaries bwboundaries(binary_image _filled)

45
Example of above explained commands
46
Quadtree Decomposition
  • Quadtree decomposition is an analysis technique
    that involves subdividing an image into blocks
    that are more homogeneous than the image itself.
    This technique reveals information about the
    structure of the image.
  • Syntax
  • qtdecomp(Image_name.format,threshold)

Before
After
47
Noise Removal
  • Digital images are prone to a variety of types
    of noise. There are several ways that noise can
    be introduced into an image, depending on how the
    image is created. For example
  • If the image is scanned from a photograph made
    on film, the film grain is a source of noise.
    Noise can also be the result of damage to the
    film, or be introduced by the scanner itself.
  • If the image is acquired directly in a digital
    format, the mechanism for gathering the data
    (such as a CCD detector) can introduce
    noise.Electronic transmission of image data can
    introduce noise.
  • The Image Processing toolbox provides a number
    of different ways to remove or reduce noise in an
    image. Different methods are better for different
    kinds of noise. The method which is used mostly
    to remove noise is Filtering.

48
Filtering
  • Filtering is a technique for modifying or
    enhancing an image. It is a neighborhood
    operation, in which the value of any given pixel
    in the output image is determined by applying
    some algorithm to the values of the pixels in the
    neighborhood of the corresponding input pixel. A
    pixel's neighborhood is some set of pixels,
    defined by their locations relative to that
    pixel. Filtering is further categories as
    following
  • Linear Filtering
  • Median Filtering
  • Adaptive Filtering

49
Image Histogram
  • An image histogram is a chart that shows the
    distribution of intensities in an indexed or
    intensity image. The image histogram function
    imhist creates this plot by making n equally
    spaced bins, each representing a range of data
    values. It then calculates the number of pixels
    within each range.
  • Syntax
  • Imhist(Image_name.format)

50
Histogram of a given image
51
Project fingerprint Recognition
52
Project Fingerprint Recognition
  • Fingerprint Recognition or Fingerprint
    Authentication refers to the automated method of
    verifying a match between two human fingerprints.
    Fingerprints are one of many forms of biometrics
    used to identify an individual and verify their
    identity.
  • Fingerprint Recognition touches on two major
    classes of algorithms, one is based upon PATTERNS
    and other one is based upon MINUTIA.

53
Patterns of Fingerprints
  • The basic patterns of fingerprint ridges
    includes -
  • Arch pattern An arch is a pattern where the
    ridges enter from one side of the finger, rise in
    the center forming an arc, and then exit the
    other side of the finger as shown in following
    figure..

54
  • Loop Pattern It is a pattern where the ridges
    enter from one side of a finger, form a curve,
    and tend to exit from the same side they enter as
    shown in the following figure..

55
  • Whirl Pattern It is completely different from
    others. In this ridges form circularly around a
    central point on the finger as shown in the
    following figure..

56
Minutia Features
  • The major Minutia features of fingerprint ridges
    includes
  • Ridge Ending The ridge ending is the point at
    which a ridge terminates and this could be better
    explained with the help of image, which is shown
    below..

57
  • Bifurcations These are the points at which a
    single ridge splits into two ridges as shown in
    the following image..

58
  • Short ridges (or dots) These are ridges which
    are significantly shorter than the average ridge
    length on the fingerprint as shown in the
    following image..

Short Ridge (or Dot)
59
Methods of Fingerprint Recognition
  • There are various methods of fingerprint
    recognization using MATLAB which includes-
  • Overlapping or Combining.
  • Comparing slopes of ridges.
  • Other methods.

60
Overlapping or Combining Method
61
  • Overlapping or Combining Method
  • It is the one of the oldest technique of
    fingerprint matching. In this the two images of
    known fingerprints and unknown fingerprints are
    overlapped and checked for similarities. Also for
    recognization the position of the pixels of
    combined image is matched with the other images
    for the better result.

62
  • Basically for overlapping the images, firstly
    they are converted into the binary images and
    then they are overlapped. Also for improving the
    results some other operation are also done like
    normalization, thinning etc.. according to the
    requirements.

63
Program for overlapping
64
  • Program
  • iimread('fp1.bmp')
  • imview(i)
  • levelgraythresh(i)
  • bwim2bw(i,level)
  • imview(bw)
  • imview(bw)
  • imshow(bw,1 0 0 0 0 1)

65
  • Result of the above used commands

66
  • i2imread('fp2.bmp')
  • imview(i2)
  • levelgraythresh(i)
  • bw2im2bw(i2,level)
  • imview(bw2)
  • imview(bw2)
  • imshow(bw2,1 0 0 0 0 1)

67
Result of the above used commands
68
  • duller bw2 0.5
  • imview(duller)
  • combinebwduller
  • imview(combine)

69
Result
  • From the above program, we come to know that
    whether two finger prints are similar or not.
  • As it is clear from the above program that two
    fingerprints does not overlap each other
    completely. Hence these finger prints are of two
    different persons.

70
  • Advantages
  • It is the simplest method for fingerprint
    authentication.
  • It is less time consuming method.
  • It is comparatively easy to implement.
  • It is an interactive method for recognizing
    fingerprints.
  • Disadvantages
  • It does not give us accurate result everytime
    because it does not relates the minutia features.
  • We can only overlap the pictures having same
    dimensions.

71
Comparing slopes of ridges
72
Comparing slopes of ridges
  • This method is mainly used in these days for
    fingerprint authentication. In this method we
    compare the slopes of the ridges of two images of
    fingerprints. This method is mainly based upon
    matching minutia.

73
Program for comparing slopes
74
  • Program
  • Step 1 Load Image
  • RGB imread('fingerprint.bmp')
  • imshow(RGB)
  • imview(RGB)

Original image
75
  • Step 2 Extract The Region Of Interest
  •  
  • start_row 73
  • start_col 105
  • cropRGB RGB(start_row134, start_col233, )
  • figure, imshow(cropRGB)
  • imview(RGB)
  • offsetX start_col-1
  • offsetY start_row-1

Cropped image
76
  • Step 3 Threshold The Image
  • Convert the image to black and white for
    subsequent extraction of the edge coordinates
    using bwtraceboundary routine.
  • I rgb2gray(cropRGB)
  • threshold graythresh(I)
  • BW im2bw(I,threshold)
  • BW BW
  • Figure, imshow(BW)
  • i2edge(BW, 'canny')
  • figure, imshow(i2)
  • imview(i2)

Binary image
Canny image
77
  • Step 4 Find Initial Point On Each Boundary
  • The bwtraceboundary routine requires that you
    specify a single point on a boundary. This point
    is used as the starting location for the boundary
    tracing process.
  • dim size(i2)
  • col1 40
  • row1 min(find(i2(,col1)))
  • row2 30
  • col2 min(find(i2(row2,)))

78
  • Step 5 Trace The Boundaries
  • boundary1 bwtraceboundary(BW, row1, col1,
    'N', 8, 70)
  • boundary2 bwtraceboundary(i2, row2, col2,
    'E', 8, 90,'counter')
  • figure, imshow(RGB)
  •  
  •  
  •  
  • imview(RGB)
  • plot(offsetXboundary1(,2),offsetYboundary1(,1)
    ,'g','LineWidth',2)
  • plot(offsetXboundary2(,2),offsetYboundary2(,1)
    ,'g','LineWidth',2)

Marked image
79
  • Step 6 Fit Lines To The Boundaries
  • ab1 polyfit(boundary1(,2), boundary1(,1), 1)
  • ab2 polyfit(boundary2(,2), boundary2(,1), 1)

80
  • Step 7 Find The Angle Of Intersection
  • Use the dot product to find the angle.
  • vect1 1 ab1(1)
  • vect2 1 ab2(1)
  • dp dot(vect1, vect2)
  • length1 sqrt(sum(vect1.2))
  • length2 sqrt(sum(vect2.2))
  • angle 180-acos(dp/(length1length2))180/pi

81
Result of all used command in program
82
Result
  • Angle between the marked ridges of image is
    142.0786 .

83
  • Advantages
  • This one is more accurate than the overlapping
    method because it is based upon minutia.
  • It is an interactive method for recognizing
    fingerprints.
  • Disadvantages
  • It is more time consuming as compared to the
    former.
  • More complex program.
Write a Comment
User Comments (0)
About PowerShow.com