SlideShare a Scribd company logo
April 21, 2010




   Varun K. Nagaraja
Final Year, Dept of ECE
    NITK Surathkal
Basics of Image Processing using MATLAB




Computer Vision and Related Fields
Basics of Image Processing using MATLAB
Basics of Image Processing using MATLAB



                  Activity Recognition




Image Stitching
Basics of Image Processing using MATLAB



    Medical Image Enhancement




            Image Morphing
Basics of Image Processing using MATLAB




                           Basic operation with Matrices

% Use colon at the end to suppress               % Transpose of a matrix
% output                                         A_trans = A’

% To enter a matrix with real elements           A_trans =
A = [5 3 7; 8 9 2; 1 4.2 6e-2]
                                                        5.0000        8.0000    1.0000
A =                                                     3.0000        9.0000    4.2000
                                                        7.0000        2.0000    0.0600
      5.0000   3.0000     7.0000
      8.0000   9.0000     2.0000                 % Matrix addition
      1.0000   4.2000     0.0600                 C = A + A_trans

% To enter a matrix with complex                 C =
% elements
X = [5+3*j 7+8j; 9+2j 1+4j;]                          10.0000         11.0000   8.0000
                                                      11.0000         18.0000   6.2000
X =                                                    8.0000          6.2000   0.1200

   5.0000 + 3.0000i     7.0000 + 8.0000i
   9.0000 + 2.0000i     1.0000 + 4.0000i
Basics of Image Processing using MATLAB




                           Basic operation with Matrices

% Matrix multiplication (element wise)
C = A .* A_trans

C =

   25.0000   24.0000      7.0000
                                                 These commands or functions can be run in the
   24.0000   81.0000      8.4000
                                                 MATLAB command prompt or as Script files (.m)
    7.0000    8.4000      0.0036
                                                 Either
% Matrix multiplication                          • type edit <filename>.m in MATLAB command
C = A * A_trans
                                                   prompt to open the editor or
                                                 • go File - New - Blank M File
C =

   83.0000    81.0000   18.0200
   81.0000   149.0000   45.9200
   18.0200    45.9200   18.6436
Basics of Image Processing using MATLAB




A Simple Character Recognition Code




               • Detect only particular characters and
                 numbers in an image.
               • Characters are in white and of a fixed
                 size.
               • Background is black in color.
               • The image is in binary format.

               We will explore various concepts as we
               implement this.
Basics of Image Processing using MATLAB




                         Reading images in MATLAB

% Set working directory to directory
% containing this tutorial

% Reading an image
% A = IMREAD(FILENAME,FMT) or
% A = IMREAD('FILENAME.FMT')
im=imread('.char recogtestimage.bmp');

% It is better to suppress outputs when
% reading images. Try once without the
% colon at the end of command

% Displaying an image
imshow(im)

% To open a separate window for the
% figure and not overwrite in the
% existing window
figure
imshow(im)

figure, imshow(im)
Basics of Image Processing using MATLAB




                               Reading images in MATLAB

Now read the image ‘same color.jpg’ and display it on a window.

Once the image is displayed in the window, select Tools – Data Cursor or select the shortcut      on the
toolbar.

Click on point A as shown, on the image. It displays three values (RGB) since it is a color image. You
can try reading pixel values for the previous image. It will be either 0/1 since it is binary image.

Hold Alt and Click on point B. This creates something called as a new datatip.

Now for some fun

                                                                                  B


                                                                                 A
Basics of Image Processing using MATLAB




                                   Reading images in MATLAB

Now read the image ‘same color.jpg’ and display it on a window.

Once the image is displayed in the window, select Tools – Data Cursor or select the shortcut      on the
toolbar.

Click on point A as shown, on the image. It displays three values (RGB) since it is a color image. You
can try reading pixel values for the previous image. It will be either 0/1 since it is binary image.

Hold Alt and Click on point B. This creates something called as a new datatip.

Now for some fun

What are the RGB values at the two points?                                              B


                                                                                        A




 Adelson's checker shadow illusion (http://en.wikipedia.org/wiki/Same_color_illusion)
Basics of Image Processing using MATLAB




                     Writing functions in MATLAB

Let’s write a function charrec(im)which when called with an image file, will
display the characters as shown earlier

>> im=imread('.char recogtestimage.bmp');
>> imshow(im);
>> charrec(im);

The digits found in the image are:
0
3
5
The letters found in the image are:
L
N
Basics of Image Processing using MATLAB




       Writing functions in MATLAB

      Few examples of functions in MATLAB

% Function returning no output
function sample(ip1,ip2,ip3,…)
.
.
.
end

% Function with outputs
function [op1,op2,…]=sample(ip1,ip2,ip3,…)
.
.
.
End

% save the code as sample.m. Function name
% and m-file name should be the same
Basics of Image Processing using MATLAB




                                  The Algorithm

Dilation

• adds pixels to the boundaries of objects in an image.
• number of pixels added from the objects in an image
  depends on the size and shape of the structuring element
• function strel(…) can be used to generate the SEs.

>> SE = strel('diamond', 1)

SE =

Flat STREL object containing 5 neighbors.

Neighborhood:
     0     1          0
     1     1          1
     0     1          0
Basics of Image Processing using MATLAB




>> SE = strel('square',3)

SE =

Flat STREL object containing 9 neighbors.

Neighborhood:
     1     1     1
     1     1     1
     1     1     1
                                                               Check out help on strel for
>> SE = strel('line', 7, 45)                                   various combinations

SE =

Flat STREL object containing 5 neighbors.

Neighborhood:
     0     0     0      0        1
     0     0     0      1        0
     0     0     1      0        0
     0     1     0      0        0
     1     0     0      0        0
Basics of Image Processing using MATLAB




Dilation does not necessarily mean dilation of the holes also. The holes get
contracted as shown above.

Also try image erosion. Use MATLAB’s help.
Basics of Image Processing using MATLAB




                    Continuing with The Algorithm




When the dilated image of the character us subtracted from the original we get
something like…


                      Next we create such images for all the characters that we
                      want to recognize. (For all those individual character
                      images in the folder)

                       >>   N = imread ('.char recogN.bmp');
                       >>   SE = strel('square',3);
                       >>   N1 = imdilate(N,SE);
                       >>   N2 = N1 - N;
                       >>   figure,imshow(N2)
Basics of Image Processing using MATLAB




                    Continuing with The Algorithm

Function, bwhitmiss is employed to check if a particular character is present in
the given image.

bwhitmiss(BW1,SE1,SE2) performs the hit‐miss operation defined by the
structuring elements SE1 and SE2. The hit‐miss operation preserves pixels
whose neighborhoods match the shape of SE1 and don't match the shape of SE2.

If the matrix returned by bwhitmiss contains non zero elements, then the
character is found in the image.


          >> if ~isempty(nonzeros(bwhitmiss(im,N,N2)))
          disp('N');
          end



Also note the use of functions isempty and nonzeros

You can now use charrec.m to recognize few characters in a crude way.
Basics of Image Processing using MATLAB




                                 Image Segmentation

Global Thresholding Method


>> im=imread('automata.jpg');
>> im_gray=rgb2gray(im);

% im2bw converts grayscale image to binary
% image using a global threshold
>> bw1=im2bw(im_gray);
>> bw2=im2bw(im_gray, threshold);

%   if no threshold is specified, it uses a
%   function graythresh to calculate the
%   threshold. Otsu’s method is implemented in
%   graythresh function.
Basics of Image Processing using MATLAB




                                   Image Segmentation

Global Thresholding Method

Disadvantage is when there are multiple colors for objects and backgrounds.




                    Result with global thresholding – one of the blocks is lost
Basics of Image Processing using MATLAB




                                     Image Segmentation

    Local Thresholding Method: Niblack’s Method


                                                     >>   im=imread('blocks.jpg');
            255 if I( x, y )  T ( x, y )         >>   im_gray=rgb2gray(im);
                                          
R( x, y )  100 if I( x, y )  T ( x, y )         >>   imt=niblack(im_gray,0.5,201);
                                                     >>   figure,imshow(imt,[])
             0                            
                       otherwise          
                                                     % Here k=0.5 and N=201(preferably odd)
        T ( x, y)   N  k   N
                                                     % think about effects of values of N on
                                                     % processing time and k on thresholding
                                                     % level
 k and N are to be empirically determined
Basics of Image Processing using MATLAB




                                Image Segmentation

  Local Thresholding Method: Niblack’s Method

% Since our objects of interest are white pixels,
% we will consider those equal to 255
>> imwhite=(imt==255);

% observe how the above command works. It checks
% pixel by pixel for the condition and returns a
% matrix
>> figure, imshow(imwhite)

% Now we need to clear the noisier regions. We
% use an erosion process followed by reconstruction
>> im_eroded=imerode(imwhite,strel('square',51));
>> im_recon=imreconstruct(im_eroded,imwhite);
>> figure, imshow(im_recon)
Basics of Image Processing using MATLAB




                             Connected Components



%   You can see pixels connected to each other
%   form objects in the image. These are
%   called connected components. Read more
%   about 4-connectivity and 8-connectivity

% Label the connected components i.e. assign
% a particular number as pixel value to one CC
>> [bw_labelled num]=bwlabel(im_recon);
>> figure,imshow(bw_labelled,[])

% We can use regionprops() to extract some
% properties of the CCs
>> areas = regionprops(bw_labelled,'Area')

% Here areas is a struct variable

% Try experimenting with other properties and
% explore what property can be used to
% distinguish between CCs
Basics of Image Processing using MATLAB




% We will convert to struct to a normal array for easy operation
>> areas1=[];
>> for i=1:length(areas)
areas1=[areas1; areas(i,1).Area];
end
>> areas1

areas1 =

      415711
       26440
       10350
        8630
       17971
        8282
        5243

% We are interested in objects (the squares) with area in range 8000-
% 9000

>> index=find(areas1>8000 & areas1<9000);
>> finalimg=zeros(size(bw_labelled));
>> for i=1:length(index)
finalimg=finalimg+(bw_labelled==index(i));
end
Basics of Image Processing using MATLAB




>> figure,imshow(finalimg,[])




This was again a very crude way, since we are depending only on value of
area which might not remain constant if camera changes position.

Most of the times the standard features available with regionprops() is
not sufficient. We will have to write our own code to extract features.

Also we used hard thresholds for areas to classify CCs. Again most of the
times, this is not followed. Classifiers using Pattern Recognition techniques
are employed.
Basics of Image Processing using MATLAB




                           Few Other Stuff

You can try
Edge detection
>>   im=imread('ouch.jpg');
>>   im_gray=rgb2gray(im);
>>   imedge=edge(im_gray,'canny',[0.1 0.2]);
>>   figure,imshow(imedge)

% Try different edge operators and
% threshold levels


and
Removing Noise By Median Filtering
(MATLAB Help)




         There is more to learn in Image Processing. All the Best
Basics of Image Processing using MATLAB
Ad

More Related Content

What's hot (20)

Image Processing Using MATLAB
Image Processing Using MATLABImage Processing Using MATLAB
Image Processing Using MATLAB
Amarjeetsingh Thakur
 
IMAGE SEGMENTATION.
IMAGE SEGMENTATION.IMAGE SEGMENTATION.
IMAGE SEGMENTATION.
Tawose Olamide Timothy
 
Matlab Image Enhancement Techniques
Matlab Image Enhancement TechniquesMatlab Image Enhancement Techniques
Matlab Image Enhancement Techniques
matlab Content
 
Image segmentation
Image segmentation Image segmentation
Image segmentation
Shri Ramdeobaba College of Engineering Management
 
Image segmentation
Image segmentationImage segmentation
Image segmentation
khyati gupta
 
Dip Image Segmentation
Dip Image SegmentationDip Image Segmentation
Dip Image Segmentation
Mubbasher Khaliq
 
Image processing on matlab presentation
Image processing on matlab presentationImage processing on matlab presentation
Image processing on matlab presentation
Naatchammai Ramanathan
 
Image Segmentation
 Image Segmentation Image Segmentation
Image Segmentation
Syed Muhammad Hammad
 
Histogram Specification or Matching Problem
Histogram Specification or Matching ProblemHistogram Specification or Matching Problem
Histogram Specification or Matching Problem
Kalyan Acharjya
 
Morphological Image Processing
Morphological Image ProcessingMorphological Image Processing
Morphological Image Processing
kumari36
 
Digital Image restoration
Digital Image restorationDigital Image restoration
Digital Image restoration
Md Shabir Alam
 
05 histogram processing DIP
05 histogram processing DIP05 histogram processing DIP
05 histogram processing DIP
babak danyal
 
Run length encoding
Run length encodingRun length encoding
Run length encoding
praseethasnair123
 
Module 31
Module 31Module 31
Module 31
UllasSS1
 
DIP - Image Restoration
DIP - Image RestorationDIP - Image Restoration
DIP - Image Restoration
Eng. Dr. Dennis N. Mwighusa
 
Images in matlab
Images in matlabImages in matlab
Images in matlab
Ali Alvi
 
Image seg using_thresholding
Image seg using_thresholdingImage seg using_thresholding
Image seg using_thresholding
Vani011
 
Chapter 6 color image processing
Chapter 6 color image processingChapter 6 color image processing
Chapter 6 color image processing
asodariyabhavesh
 
Region based segmentation
Region based segmentationRegion based segmentation
Region based segmentation
ramya marichamy
 
Image enhancement
Image enhancementImage enhancement
Image enhancement
shabanam tamboli
 

Viewers also liked (15)

Information visualization: information dashboards
Information visualization: information dashboardsInformation visualization: information dashboards
Information visualization: information dashboards
Katrien Verbert
 
TESTIMAGES - a large-scale archive for testing visual devices and basic image...
TESTIMAGES - a large-scale archive for testing visual devices and basic image...TESTIMAGES - a large-scale archive for testing visual devices and basic image...
TESTIMAGES - a large-scale archive for testing visual devices and basic image...
Tecnick.com LTD
 
Introduction of image processing
Introduction of image processingIntroduction of image processing
Introduction of image processing
Avani Shah
 
基礎影像處理
基礎影像處理基礎影像處理
基礎影像處理
weihan cheng
 
Digital image processing using matlab (fundamentals)
Digital image processing using matlab (fundamentals)Digital image processing using matlab (fundamentals)
Digital image processing using matlab (fundamentals)
Taimur Adil
 
Basic image processing
Basic image processingBasic image processing
Basic image processing
Jay Thakkar
 
Image Processing Basics
Image Processing BasicsImage Processing Basics
Image Processing Basics
Nam Le
 
Introduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLABIntroduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLAB
Ray Phan
 
Image proceesing with matlab
Image proceesing with matlabImage proceesing with matlab
Image proceesing with matlab
Ashutosh Shahi
 
Automatic speech recognition
Automatic speech recognitionAutomatic speech recognition
Automatic speech recognition
Richie
 
Face recognition using neural network
Face recognition using neural networkFace recognition using neural network
Face recognition using neural network
Indira Nayak
 
Image processing ppt
Image processing pptImage processing ppt
Image processing ppt
Raviteja Chowdary Adusumalli
 
Speech recognition
Speech recognitionSpeech recognition
Speech recognition
Charu Joshi
 
Voice Recognition
Voice RecognitionVoice Recognition
Voice Recognition
Amrita More
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
Sahil Biswas
 
Information visualization: information dashboards
Information visualization: information dashboardsInformation visualization: information dashboards
Information visualization: information dashboards
Katrien Verbert
 
TESTIMAGES - a large-scale archive for testing visual devices and basic image...
TESTIMAGES - a large-scale archive for testing visual devices and basic image...TESTIMAGES - a large-scale archive for testing visual devices and basic image...
TESTIMAGES - a large-scale archive for testing visual devices and basic image...
Tecnick.com LTD
 
Introduction of image processing
Introduction of image processingIntroduction of image processing
Introduction of image processing
Avani Shah
 
基礎影像處理
基礎影像處理基礎影像處理
基礎影像處理
weihan cheng
 
Digital image processing using matlab (fundamentals)
Digital image processing using matlab (fundamentals)Digital image processing using matlab (fundamentals)
Digital image processing using matlab (fundamentals)
Taimur Adil
 
Basic image processing
Basic image processingBasic image processing
Basic image processing
Jay Thakkar
 
Image Processing Basics
Image Processing BasicsImage Processing Basics
Image Processing Basics
Nam Le
 
Introduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLABIntroduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLAB
Ray Phan
 
Image proceesing with matlab
Image proceesing with matlabImage proceesing with matlab
Image proceesing with matlab
Ashutosh Shahi
 
Automatic speech recognition
Automatic speech recognitionAutomatic speech recognition
Automatic speech recognition
Richie
 
Face recognition using neural network
Face recognition using neural networkFace recognition using neural network
Face recognition using neural network
Indira Nayak
 
Speech recognition
Speech recognitionSpeech recognition
Speech recognition
Charu Joshi
 
Voice Recognition
Voice RecognitionVoice Recognition
Voice Recognition
Amrita More
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
Sahil Biswas
 
Ad

Similar to Basics of Image Processing using MATLAB (20)

MATLAB.pptx
MATLAB.pptxMATLAB.pptx
MATLAB.pptx
SarikaAyyathurai1
 
BMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialBMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorial
potaters
 
Programming in matlab lesson5
Programming in matlab lesson5Programming in matlab lesson5
Programming in matlab lesson5
najmah17
 
Image processing using matlab
Image processing using matlabImage processing using matlab
Image processing using matlab
dedik dafiyanto
 
Matlab dip
Matlab dipMatlab dip
Matlab dip
Jeevan Reddy
 
ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)
Hasitha Ediriweera
 
Image processing using matlab
Image processing using matlab Image processing using matlab
Image processing using matlab
SangeethaSasi1
 
Intro matlab
Intro matlabIntro matlab
Intro matlab
danie_sileshi
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
minhtaispkt
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
Aman Gupta
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
neetirajsinh
 
Image Processing using Matlab . Useful for beginners to learn Image Processing
Image Processing using Matlab . Useful for beginners to learn Image ProcessingImage Processing using Matlab . Useful for beginners to learn Image Processing
Image Processing using Matlab . Useful for beginners to learn Image Processing
Ashok Kumar
 
Matlab Practical-- 12.pdf
Matlab Practical-- 12.pdfMatlab Practical-- 12.pdf
Matlab Practical-- 12.pdf
Central university of Haryana
 
Image processing
Image processingImage processing
Image processing
Pooya Sagharchiha
 
Dip day1&2
Dip day1&2Dip day1&2
Dip day1&2
nakarthik91
 
Matlab anilkumar
Matlab  anilkumarMatlab  anilkumar
Matlab anilkumar
THEMASTERBLASTERSVID
 
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptxMATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
prashantkumarchinama
 
Intro matlab and convolution islam
Intro matlab and convolution islamIntro matlab and convolution islam
Intro matlab and convolution islam
Islam Alabbasy
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
Vikash Jakhar
 
Image_Processing_LECTURE_c#_programming.ppt
Image_Processing_LECTURE_c#_programming.pptImage_Processing_LECTURE_c#_programming.ppt
Image_Processing_LECTURE_c#_programming.ppt
LOUISSEVERINOROMANO
 
BMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialBMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorial
potaters
 
Programming in matlab lesson5
Programming in matlab lesson5Programming in matlab lesson5
Programming in matlab lesson5
najmah17
 
Image processing using matlab
Image processing using matlabImage processing using matlab
Image processing using matlab
dedik dafiyanto
 
ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)
Hasitha Ediriweera
 
Image processing using matlab
Image processing using matlab Image processing using matlab
Image processing using matlab
SangeethaSasi1
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
minhtaispkt
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
Aman Gupta
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
neetirajsinh
 
Image Processing using Matlab . Useful for beginners to learn Image Processing
Image Processing using Matlab . Useful for beginners to learn Image ProcessingImage Processing using Matlab . Useful for beginners to learn Image Processing
Image Processing using Matlab . Useful for beginners to learn Image Processing
Ashok Kumar
 
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptxMATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
prashantkumarchinama
 
Intro matlab and convolution islam
Intro matlab and convolution islamIntro matlab and convolution islam
Intro matlab and convolution islam
Islam Alabbasy
 
Image_Processing_LECTURE_c#_programming.ppt
Image_Processing_LECTURE_c#_programming.pptImage_Processing_LECTURE_c#_programming.ppt
Image_Processing_LECTURE_c#_programming.ppt
LOUISSEVERINOROMANO
 
Ad

Recently uploaded (20)

Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 

Basics of Image Processing using MATLAB

  • 1. April 21, 2010 Varun K. Nagaraja Final Year, Dept of ECE NITK Surathkal
  • 2. Basics of Image Processing using MATLAB Computer Vision and Related Fields
  • 3. Basics of Image Processing using MATLAB
  • 4. Basics of Image Processing using MATLAB Activity Recognition Image Stitching
  • 5. Basics of Image Processing using MATLAB Medical Image Enhancement Image Morphing
  • 6. Basics of Image Processing using MATLAB Basic operation with Matrices % Use colon at the end to suppress % Transpose of a matrix % output A_trans = A’ % To enter a matrix with real elements A_trans = A = [5 3 7; 8 9 2; 1 4.2 6e-2] 5.0000 8.0000 1.0000 A = 3.0000 9.0000 4.2000 7.0000 2.0000 0.0600 5.0000 3.0000 7.0000 8.0000 9.0000 2.0000 % Matrix addition 1.0000 4.2000 0.0600 C = A + A_trans % To enter a matrix with complex C = % elements X = [5+3*j 7+8j; 9+2j 1+4j;] 10.0000 11.0000 8.0000 11.0000 18.0000 6.2000 X = 8.0000 6.2000 0.1200 5.0000 + 3.0000i 7.0000 + 8.0000i 9.0000 + 2.0000i 1.0000 + 4.0000i
  • 7. Basics of Image Processing using MATLAB Basic operation with Matrices % Matrix multiplication (element wise) C = A .* A_trans C = 25.0000 24.0000 7.0000 These commands or functions can be run in the 24.0000 81.0000 8.4000 MATLAB command prompt or as Script files (.m) 7.0000 8.4000 0.0036 Either % Matrix multiplication • type edit <filename>.m in MATLAB command C = A * A_trans prompt to open the editor or • go File - New - Blank M File C = 83.0000 81.0000 18.0200 81.0000 149.0000 45.9200 18.0200 45.9200 18.6436
  • 8. Basics of Image Processing using MATLAB A Simple Character Recognition Code • Detect only particular characters and numbers in an image. • Characters are in white and of a fixed size. • Background is black in color. • The image is in binary format. We will explore various concepts as we implement this.
  • 9. Basics of Image Processing using MATLAB Reading images in MATLAB % Set working directory to directory % containing this tutorial % Reading an image % A = IMREAD(FILENAME,FMT) or % A = IMREAD('FILENAME.FMT') im=imread('.char recogtestimage.bmp'); % It is better to suppress outputs when % reading images. Try once without the % colon at the end of command % Displaying an image imshow(im) % To open a separate window for the % figure and not overwrite in the % existing window figure imshow(im) figure, imshow(im)
  • 10. Basics of Image Processing using MATLAB Reading images in MATLAB Now read the image ‘same color.jpg’ and display it on a window. Once the image is displayed in the window, select Tools – Data Cursor or select the shortcut on the toolbar. Click on point A as shown, on the image. It displays three values (RGB) since it is a color image. You can try reading pixel values for the previous image. It will be either 0/1 since it is binary image. Hold Alt and Click on point B. This creates something called as a new datatip. Now for some fun B A
  • 11. Basics of Image Processing using MATLAB Reading images in MATLAB Now read the image ‘same color.jpg’ and display it on a window. Once the image is displayed in the window, select Tools – Data Cursor or select the shortcut on the toolbar. Click on point A as shown, on the image. It displays three values (RGB) since it is a color image. You can try reading pixel values for the previous image. It will be either 0/1 since it is binary image. Hold Alt and Click on point B. This creates something called as a new datatip. Now for some fun What are the RGB values at the two points? B A Adelson's checker shadow illusion (http://en.wikipedia.org/wiki/Same_color_illusion)
  • 12. Basics of Image Processing using MATLAB Writing functions in MATLAB Let’s write a function charrec(im)which when called with an image file, will display the characters as shown earlier >> im=imread('.char recogtestimage.bmp'); >> imshow(im); >> charrec(im); The digits found in the image are: 0 3 5 The letters found in the image are: L N
  • 13. Basics of Image Processing using MATLAB Writing functions in MATLAB Few examples of functions in MATLAB % Function returning no output function sample(ip1,ip2,ip3,…) . . . end % Function with outputs function [op1,op2,…]=sample(ip1,ip2,ip3,…) . . . End % save the code as sample.m. Function name % and m-file name should be the same
  • 14. Basics of Image Processing using MATLAB The Algorithm Dilation • adds pixels to the boundaries of objects in an image. • number of pixels added from the objects in an image depends on the size and shape of the structuring element • function strel(…) can be used to generate the SEs. >> SE = strel('diamond', 1) SE = Flat STREL object containing 5 neighbors. Neighborhood: 0 1 0 1 1 1 0 1 0
  • 15. Basics of Image Processing using MATLAB >> SE = strel('square',3) SE = Flat STREL object containing 9 neighbors. Neighborhood: 1 1 1 1 1 1 1 1 1 Check out help on strel for >> SE = strel('line', 7, 45) various combinations SE = Flat STREL object containing 5 neighbors. Neighborhood: 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
  • 16. Basics of Image Processing using MATLAB Dilation does not necessarily mean dilation of the holes also. The holes get contracted as shown above. Also try image erosion. Use MATLAB’s help.
  • 17. Basics of Image Processing using MATLAB Continuing with The Algorithm When the dilated image of the character us subtracted from the original we get something like… Next we create such images for all the characters that we want to recognize. (For all those individual character images in the folder) >> N = imread ('.char recogN.bmp'); >> SE = strel('square',3); >> N1 = imdilate(N,SE); >> N2 = N1 - N; >> figure,imshow(N2)
  • 18. Basics of Image Processing using MATLAB Continuing with The Algorithm Function, bwhitmiss is employed to check if a particular character is present in the given image. bwhitmiss(BW1,SE1,SE2) performs the hit‐miss operation defined by the structuring elements SE1 and SE2. The hit‐miss operation preserves pixels whose neighborhoods match the shape of SE1 and don't match the shape of SE2. If the matrix returned by bwhitmiss contains non zero elements, then the character is found in the image. >> if ~isempty(nonzeros(bwhitmiss(im,N,N2))) disp('N'); end Also note the use of functions isempty and nonzeros You can now use charrec.m to recognize few characters in a crude way.
  • 19. Basics of Image Processing using MATLAB Image Segmentation Global Thresholding Method >> im=imread('automata.jpg'); >> im_gray=rgb2gray(im); % im2bw converts grayscale image to binary % image using a global threshold >> bw1=im2bw(im_gray); >> bw2=im2bw(im_gray, threshold); % if no threshold is specified, it uses a % function graythresh to calculate the % threshold. Otsu’s method is implemented in % graythresh function.
  • 20. Basics of Image Processing using MATLAB Image Segmentation Global Thresholding Method Disadvantage is when there are multiple colors for objects and backgrounds. Result with global thresholding – one of the blocks is lost
  • 21. Basics of Image Processing using MATLAB Image Segmentation Local Thresholding Method: Niblack’s Method >> im=imread('blocks.jpg'); 255 if I( x, y )  T ( x, y ) >> im_gray=rgb2gray(im);   R( x, y )  100 if I( x, y )  T ( x, y ) >> imt=niblack(im_gray,0.5,201); >> figure,imshow(imt,[])  0   otherwise  % Here k=0.5 and N=201(preferably odd) T ( x, y)   N  k   N % think about effects of values of N on % processing time and k on thresholding % level k and N are to be empirically determined
  • 22. Basics of Image Processing using MATLAB Image Segmentation Local Thresholding Method: Niblack’s Method % Since our objects of interest are white pixels, % we will consider those equal to 255 >> imwhite=(imt==255); % observe how the above command works. It checks % pixel by pixel for the condition and returns a % matrix >> figure, imshow(imwhite) % Now we need to clear the noisier regions. We % use an erosion process followed by reconstruction >> im_eroded=imerode(imwhite,strel('square',51)); >> im_recon=imreconstruct(im_eroded,imwhite); >> figure, imshow(im_recon)
  • 23. Basics of Image Processing using MATLAB Connected Components % You can see pixels connected to each other % form objects in the image. These are % called connected components. Read more % about 4-connectivity and 8-connectivity % Label the connected components i.e. assign % a particular number as pixel value to one CC >> [bw_labelled num]=bwlabel(im_recon); >> figure,imshow(bw_labelled,[]) % We can use regionprops() to extract some % properties of the CCs >> areas = regionprops(bw_labelled,'Area') % Here areas is a struct variable % Try experimenting with other properties and % explore what property can be used to % distinguish between CCs
  • 24. Basics of Image Processing using MATLAB % We will convert to struct to a normal array for easy operation >> areas1=[]; >> for i=1:length(areas) areas1=[areas1; areas(i,1).Area]; end >> areas1 areas1 = 415711 26440 10350 8630 17971 8282 5243 % We are interested in objects (the squares) with area in range 8000- % 9000 >> index=find(areas1>8000 & areas1<9000); >> finalimg=zeros(size(bw_labelled)); >> for i=1:length(index) finalimg=finalimg+(bw_labelled==index(i)); end
  • 25. Basics of Image Processing using MATLAB >> figure,imshow(finalimg,[]) This was again a very crude way, since we are depending only on value of area which might not remain constant if camera changes position. Most of the times the standard features available with regionprops() is not sufficient. We will have to write our own code to extract features. Also we used hard thresholds for areas to classify CCs. Again most of the times, this is not followed. Classifiers using Pattern Recognition techniques are employed.
  • 26. Basics of Image Processing using MATLAB Few Other Stuff You can try Edge detection >> im=imread('ouch.jpg'); >> im_gray=rgb2gray(im); >> imedge=edge(im_gray,'canny',[0.1 0.2]); >> figure,imshow(imedge) % Try different edge operators and % threshold levels and Removing Noise By Median Filtering (MATLAB Help) There is more to learn in Image Processing. All the Best
  • 27. Basics of Image Processing using MATLAB