digital image processing - mmumullana.org · digital image processing the field of digital image...
TRANSCRIPT
COURSE – ECE-411IMAGE PROCESSING
Er. DEEPAK SHARMA
Asstt. Prof., ECE department.
MMEC, MM University, Mullana.
Why Image Processing?
For Human Perception
To make images more beautiful or understandable
Automatic Perception of Image
We call it Machine Vision, Computer Vision, Machine
Perception, Computer Recognition
For Storage and Transmission
smaller, faster, more effective
Image Processing for New Image Generation (New trends)
Computer Graphics introduced Image Processing and
Computer Vision technologies
ECE-411 (Image Processing)
The Electromagnetic Spectrum
Images based on radiation from the EM spectrum
EM : wave stream of mass less particles
Each particle contains energy
ECE-411 (Image Processing)
Example: a cell
Image of a cell corrupted by
electronic noise.
Result after averaging
several noisy images (a
common technique for noise
reduction)
ECE-411 (Image Processing)
Example: an x-ray
An original x-ray image
Result possible after
contrast and edge
enhancement
ECE-411 (Image Processing)
Example: image deblurring
Image of a human face
blurred by uniform motion
during exposure.
Resulting image after
application of a deblurring
algorithm
ECE-411 (Image Processing)
Simple Image Model
Monochrome image (or simply image) refers to a 2-
dimensional light intensity function f(x,y).
x and y denote spatial coordinates
the value of f(x,y) at (x,y) is proportional to the brightness (or gray
level) of the image at that point.
ECE-411 (Image Processing)
Simple image formation
f(x,y) = i(x,y)*r(x,y) 0 < i(x,y) < ∞ ; illumination or intensity of incident light
0 < r(x,y) < 1 ; reflectance or reflectivity of object.
In real situation
Lmin ≤ f(x,y)) ≤ Lmax
ECE-411 (Image Processing)
Why Digital? Unification of processing
Computers is at the center of information processing
Digital information is just right form for computer
processing
Text, Image, Sound, Movie, and other Multimedia are
digitized into computer
Noise reduction
Digital processing reduces noises
Guarantee the same quality regardless of time and place
Easy storage
Since the same form is used for every information, it can be
stored in H/D, CD, DVD, Flash memory, etc.
Transmission
Less Bandwidth ECE-411 (Image Processing)
Digital image
A digital image is an image f(x,y) that has been discretized
both in spatial coordinates and in brightness.
Considered as a matrix whose row and column indices
represent a point in the image.
The corresponding matrix element value represents the gray
level at that point.
The elements of such an array are referred to as:
image elements or picture elements (pixels or pels)
ECE-411 (Image Processing)
ECE-411 (Image Processing)
Digital Image Processing
The field of digital image processing refers to processing
digital images by using computers.
Image processing is a branch in which both the input and
output of a process are images.
The goal of computer vision is to use computers to emulate human vision, including learning, making inferences and taking actions.
The area of image analysis is in between image processing and computer vision.
ECE-411 (Image Processing)
Types of Processes in Image Processing
There are 3 types of computerized processes. Low level processes mid level processes and high level processes.
Low-level processes involve primitive operations such as image preprocessing to reduce noise, contrast enhancement and image sharpening.
Here both the input and output are images.
Mid-level processing involves segmentation (partitioning image into regions), description of objects to reduce them to a form so that a computer can process and classification (recognition) of objects.
Here inputs are images but outputs are attributes extracted from images.
ECE-411 (Image Processing)
In high-level processing, we ‘make sense’ of a collectionof recognized objects.
The process of acquiring an image of a text, processing it,extracting (segmenting) individual characters, describingcharacters suitable for computer processing andrecognizing those individual characters are in the scope ofdigital image processing.
Making sense of the content of the page (text) is viewedas the domain of image analysis and computer vision.
ECE-411 (Image Processing)
Fundamental steps in Digital Image
Processing
Image acquisition
Image enhancement
Image Restoration
Color Image Processing
Image Compression
Morphological Processing
Image Segmentation
Representation and description
Recognition
ECE-411 (Image Processing)
Fundamental steps in Digital Image
Processing
ECE-411 (Image Processing)
Steps in an image processing system
Image acquisition
This stage involves preprocessing, such as scaling.
Acquire a digital image using an image sensor
In detail, devices that are sensitive to
energy(electromagnetic, sound, … )
If not digital, an analog-to-digital conversion process is
required
The nature of the image sensor (and the produced image)
are determined by the application
In general, CCD(charge-coupled device) or CMOS sensors
are widely used
Examples : Digital camera, Video camera, Scanner, ..ECE-411 (Image Processing)
CCD (Charged-Coupled Device) cameras
Tiny solid state cells convert light energy into electrical
charge.
The image plane acts as a digital memory that can be read
row by row by a computer.
ECE-411 (Image Processing)
Steps in an image processing system
Image enhancement – Here we bring out details that were obscured or highlight some features of interest in an image. (eg) increasing the contrast of an image.
Image Restoration – Here we talk about how to improve the appearance of an image. Unlike enhancement, which is subjective, this is objective.
Color Image Processing – Due to Internet, this area is becoming popular. Various color models are worthy to know.
Wavelets – Representing the images in various degrees of resolution in the basis of wavelets.
ECE-411 (Image Processing)
Steps in an image processing system
Compression – It is a technique for reducing the storage required to save an image or bandwidth needed to transmit.
Morphological Processing – It deals with tools for extracting image components that are useful in the representation and description of shape.
ECE-411 (Image Processing)
Steps in an image processing system
Segmentation
Broadly defined: breaking an image into its constituent parts
In general, one of the most difficult tasks in image processing
Good segmentation simplifies the rest of the problem
Poor segmentation make the task impossible
Output is usually raw pixel data: may represent region boundaries,
points in the region itself, etc.
Boundary representation can be useful when the focus is on external
shape characteristics (e.g. corners, rounded edges, etc.)
Region representation is appropriate when the focus is on internal
properties
ECE-411 (Image Processing)
Steps in an image processing system
Representation & description
Representation: transforming raw data into a form suitable
for computer processing
Description (also called feature extraction) deals with
extracting features that result in some quantitative
information of interest or features which are basic for
differentiating one class of objects from another
In terms of character recognition, descriptors such as lakes
(holes) and bays help differentiate one part of the alphabet
from another
ECE-411 (Image Processing)
Steps in an image processing system
Recognition & Interpretation
Recognition: The process which assigns a label to an object
based on the information provided by its descriptors
may be the alphanumeric character A
Interpretation: Assigning meaning to an ensemble of
recognized objects.
35487-0286 may be a ZIP code
ECE-411 (Image Processing)
The knowledge base
• Knowledge about a problem domain is coded into an image
processing system in the form of a knowledge database
May be simple:
detailing areas of an image expected to be of interest
May be complex
A list of all possible defects of a material in a vision
inspection system
Guides operation of each processing module
Controls interaction between modules
Provides feedback through the system
ECE-411 (Image Processing)
Steps in an image processing system
Not all image processing systems would require all
steps/processing modules
Image enhancement for human visual perception may not
go beyond the preprocessing stage
A knowledge database may not be required
Processing systems which include recognition and
interpretation are associated with image analysis systems in
which the objective is autonomous (or at least partially
automatic)
ECE-411 (Image Processing)
Components of an Image Processing
System
ECE-411 (Image Processing)
Basic components of a general-purpose
system used for digital image processing Image sensors – Two elements are needed to acquire digital
images.
First one is the physical device that is sensitive to energyradiated by the object that we want to image.
The second one, called the digitizer, is a device forconverting the output of the physical sensing device intodigital form.
Ex. - in a digital video camera, the sensors produce anelectrical output proportional to light intensity.
ECE-411 (Image Processing)
Basic components of a general-purpose
system used for digital image processing
Specialized Image Processing Hardware -
It consists of digitizer plus hardware that performs other primitive operations such as an arithmetic logic unit (ALU), which performs arithmetic and logical operations on entire image.
This type of hardware is also called as front-end subsystem and its characteristic is speed.
This unit does things that require fast data throughputs which main computer cannot handle.
Computer – In an image processing system it is a general-purpose computer.
Software – It consists of specialized modules that does specific tasks (eg. matlab)
ECE-411 (Image Processing)
Basic components of a general-purpose system
used for digital image processing
Mass storage – An image of 1024 X 1024 size, storing theintensity of each pixel in 8 bits, requires one megabyte ofstorage.
For short-time storage, we can use computer memory.
Another method is to use a specialized board called framebuffer, that store one or more images and can be accessedrapidly.
They enable us to instantaneously zoom, scroll (verticalshift) and pan (horizontal shift).
For on-line storage magnetic disks or optical-media areused.
The archival storage needs massive capacity but areaccessed infrequently.
Image Displays – These are mainly color TV monitors.
Hardcopy – These devices include laser printers, filmcameras, inkjet units, etc.
ECE-411 (Image Processing)
Sampling & Quantization
Image sampling
Digitization of spatial coordinates (x,y)
Quantization
Amplitude digitization
The quality of a digital image is determined to a large degree
by the number of samples and discrete gray levels used in
sampling and quantization
ECE-411 (Image Processing)
Sampling & Quantization
ECE-411 (Image Processing)
ECE-411 (Image Processing)
The intensity variation sampled at regular
intervals along the scan line
0 10 20 30 40 50 60 70 80 90 10050
100
150
200
250
300
ECE-411 (Image Processing)
Four level intensity quantization of
sampled scan line
0 10 20 30 40 50 60 70 80 90 10060
80
100
120
140
160
180
200
220
240
260
ECE-411 (Image Processing)
Formulation of Digital Image
ECE-411 (Image Processing)
ECE-411 (Image Processing)
Image Resolution
Spatial Resolution (x,y)
Spatial resolution is the smallest discernible detail in an image
A line pair : a line and its adjacent space
A widely used definition of resolution is the smallest number of discernible line pairs per unit distance .
Ex: 100 line pairs/mm
But, unit distance or unit area is omitted in most cases
ECE-411 (Image Processing)
Spatial Resolution
ECE-411 (Image Processing)
Image Resolution(Cont..)
Gray-level Resolution
Gray-level resolution is the smallest discernible change in
gray level (but, highly subjective!)
Due to hardware considerations, we only consider
quantization level
Usually an integer power of 2. The most common level is
28=256
However, we can find some systems that can digitize the
gray levels of an image with 10 to 12 bits of accuracy.
ECE-411 (Image Processing)
Gray-level Resolution
ECE-411 (Image Processing)
Storage
For MxN image with L(=2k) discrete gray level The number, b, of bits required to store the image is
b = M*N*k bits
Ex1: 1024x1024x8bit = 1Mbytes
Common image file formats GIF (Graphic Interchange Format) -
PNG (Portable Network Graphics)
JPEG (Joint Photographic Experts Group)
TIFF (Tagged Image File Format)
PGM (Portable Gray Map)
FITS (Flexible Image Transport System)
ECE-411 (Image Processing)
Overview of MATLAB Data Types
Data Types
Logical (0 or 1)
Char Numeric
Integer
Signed Unsigned
Fraction
Single Double
Function handling
StructureCell or Array
Overview of MATLAB Data Types
Data types in MATLAB
Double (64-bit double-precision floating point)
Single (32-bit single-precision floating point)
Int32 (32-bit signed integer)
Int16 (16-bit signed integer)
Int8 (8-bit signed integer)
Uint32 (32-bit unsigned integer)
Uint16 (16-bit unsigned integer)
Uint8 (8-bit unsigned integer)
Image types
x(m,n) = 0 or 1: binary image
x(m,n) = 0, 1, 2, … P-1: grayscale image
P typically something like 256, 512 or some power of 2.
256 is really the most common
0 = black, P = white
x(m,n) = [0 to P-1, 0 to P-1, 0 to P-1]
Red, green, blue color image
Like three grayscale images
x(m,n) = index into color map.
Color map = three column table with all possible colors
Image index says which row in that table gives RBG
valuesfor that pixel
So long as table is known, very easy to store indices
Image Type
Difference between Indexed Image and
RGB Image
Indexed Image RGB Image
Important MATLAB commands
imread: Read an image
figure: creates a figure on the screen.
imshow(g): which displays the matrix g as an image.
pixval : turns on the pixel values in our figure.
impixel(i,j): the command returns the value of the pixel (i,j)
iminfo: Information about the image.
Converting between Data classes and
Image types
Converting between data classes
Converting between Image classes to data classes
Converting between Image classes
Note : When converting between data classes, it is important to
keep in mind the value range for each data classes should be in
range.
Converting between data classes
General syntax for converting data classes
A = given data class
B = data class in which we want to convert A
B = data_class(A)
Ex : A in uint8 and we want to convert in to double, then
B = double(A)
Converting between data classes
• Ex 1:double to unsigned integer of 8 bit
A =
34.6500
>> B =uint8(A)
B =
35
Converting between data classes
Ex 2 : Double to unsigned integer of 8 bit
A =
265.7800
>> B = uint8(A)
B =
255
>> C = -2.76
C =
-2.7600
>> D = uint8(C)
D =
0
Note : Here range of unsigned integer of 8 bits is [0 255]
Converting between data classes
Rule for conversion
Convert to ‘0’ all the values are less than ‘0’.
Convert to 255 all the values are greater than 255
Convert numbers between 0-255 to corresponding integer
values. E.g.: 5.8 convert into 6
Converting between Image classes to data
classes
Conversion should perform necessary scaling for the toolbox
to recognize the data as valid image data.
Ex: im2uint8
Function set all the value less than 0 to 0
And set 1 all the value those are greater than 1
Now image range is in [0 1]
Multiplies 255 to all values and round off to integer.
Now range is in [0 255]
Converting between Image classes to data
classes
Ex 3: image of class double to unsigned integer 8
f =
1.4897 0.6715 1.6302
1.4090 -1.2075 0.4889
1.4172 0.7172 1.0347
>> g=im2uint8(f)
g =
255 171 255
255 0 125
255 183 255
Ex 4: unsigned integer8 to double
>> h = uint8(h)
h =
26 67 12
212 156 178
23 45 67
>> g = im2double(h)
g =
0.1020 0.2627 0.0471
0.8314 0.6118 0.6980
0.0902 0.1765 0.2627
Ex 4:
Function im2double convert input image to double format in
range [0 1].
Divide all values by 255 (in case of uint8, if uint16 than divide
by 65535)
Range of image in double format must be [0 1]
Function mat2gray convert any matrix to gray image of double
data class.
Ex 5 : any matrix to image
h =
26 67 12
212 156 178
23 45 67
>> g = mat2gray(h)
g =
0.0700 0.2750 0
1.0000 0.7200 0.8300
0.0550 0.1650 0.2750
Ex 6 : any matrix to binary image using threshold 0.6h =
26 67 12
212 156 178
23 45 67
>> g = mat2gray(h)
g =
0.0700 0.2750 0
1.0000 0.7200 0.8300
0.0550 0.1650 0.2750
>> g=im2bw(h,0.6)
g =
0 0 0
1 1 1
0 0 0
Ex 6:
Function im2bw(f,T) convert any image into binary image
with threshold T.
All the values less than T are set to 0
All the values greater than T are set to 1
First all values are converted into double and than threshold is
applied.
Some important function
function convert input into Valid input Image data
class
im2uint8 uint8 Logical,uint8,uint16 and
double
im2uint16 uint16 Logical,uint8,uint16 and
double
mat2gray double (in range [0,1]) Logical,uint8,uint16 and
double
im2double double Logical,uint8,uint16 and
double
im2bw logical uint8,uint16 and double
Converting between Image classes
Important function
gray2ind - intensity image to index image
ind2gray - indexed image to intensity image
rgb2gray - RGB image to grayscale
rgb2ind - RGB image to indexed image
Ex 7: rgb image to gray
>> f = imread('lenna.png');
>> g = rgb2gray(f);
>> subplot(1,2,1);imshow(f);
>>subplot(1,2,2);imshow(g);
Array Indexing
MATLAB support many powerful indexing scheme that
simplifying array manipulation and improve the efficiency of
program.
For image processing toolbox
Vector indexing
Matrix indexing
Images are represented in matrix.
Vector Indexing
• Array of dimension 1xn : row vector
• Array of dimension nx1 : column vector
• First element will start from 1 not from 0 (zero)
• Ex: consider following vector
v = [3 8 2 7 5 9 1 4]
Different commands for vector indexing
1. v(3) = [3 8 2 7 5 9 1 4] = 2 % to access 3rd element
2. V’ = produce column vector of “v”
Note : transpose operator (.‘)
Vector Indexing(cont.)
3. v(1:3) produce element from index 1 to 3
v(1:3) = [3 8 2 7 5 9 1 4] = 3 8 2
4. v(3:5) = [3 8 2 7 5 9 1 4] = 2 7 5
5. v(end) = [3 8 2 7 5 9 1 4] = 4 % to access last element of array
6. v(5:end) = [3 8 2 7 5 9 1 4] = 5 9 1 4 % to access 5th to last element
7. v(: ) = produce column matrix
8. V(1:2:end) = [3 8 2 7 5 9 1 4] = 3 2 5 1
9. V([1 4 7]) = [3 8 2 7 5 9 1 4] = 3 7 1
Note : index 1:2:end means start from 1 count up by 2 and end with last element. Steps can be negative,
Ex.: V(end:-2:1) = [3 8 2 7 5 9 1 4] = 3 2 5 1
Start with last element count down by 2 and end with first element
Matrix indexing
Matrix can be written in MATLAB
>> A= [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> size(A) ; % to find dimention of matrix
3 3
Matrix indexing(cont..)
Examples for matrix indexing
1. To extract element of 3rd row ,2 column
A =
1 2 3
4 5 6
7 8 9
A(3,2) = 8
Note : general format is A(row, column)
2. To extract all element from 2nd row
A(2,:) = 4 5 6
3. To extract all element from 3rd column
A(:,3) = 3
6
9
4. to fetch top 2 row
A(1:2,1:3) = 1 2 3
4 5 6
Same for to fetch last 2 column A(1:3, 2:3)