beginner_s guide to computer vision presentation

Upload: kb-chiew

Post on 06-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    1/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Beginner’s Guide to Computer Vision

    Jayneil Dalal1 Sohil Patel2

    1

    Technical Writer/Embedded Linux EngineerIntelwww.elinux.org/Jayneil Dalal

    2Computer Vision EngineerConsultant

    July 24, 2013

    http://www.elinux.org/Jayneil_Dalalhttp://www.elinux.org/Jayneil_Dalalhttp://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    2/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    1   IntroductionAnatomy of the tutorialComputer Vision(CV)

    2

      Learning Computer Vision via OpenCVBasicsImplementing Computer Vision

    3   Going Beyond

    More OpenCV Codes3DThanks

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    3/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    About US

    We are open source advocates and evangelists.

    We have recently started a hackerspace in India “Jayso Labs”where students can work on a wide varety of open sourcehardware boards(Arduino, Beaglebone Black, Raspberry Pi,Papiloboard, Pandaboard, Arndaleboard etc.) for just $10.

    www.jaysolabs.com

    http://www.jaysolabs.com/http://www.jaysolabs.com/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    4/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    About US

    We are open source advocates and evangelists.

    We have recently started a hackerspace in India “Jayso Labs”where students can work on a wide varety of open sourcehardware boards(Arduino, Beaglebone Black, Raspberry Pi,Papiloboard, Pandaboard, Arndaleboard etc.) for just $10.

    www.jaysolabs.com

    I d i L i C Vi i i O CV G i B d

    http://www.jaysolabs.com/http://www.jaysolabs.com/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    5/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    About US

    We are open source advocates and evangelists.

    We have recently started a hackerspace in India “Jayso Labs”where students can work on a wide varety of open sourcehardware boards(Arduino, Beaglebone Black, Raspberry Pi,Papiloboard, Pandaboard, Arndaleboard etc.) for just $10.

    www.jaysolabs.com

    I t d ti L i C t Vi i i O CV G i B d

    http://www.jaysolabs.com/http://www.jaysolabs.com/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    6/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Our Book

    http://opencv.org/instant-opencv-starter.html

    Introduction Learning Computer Vision via OpenCV Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    7/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Anatomy of the tutorial

    1   IntroductionAnatomy of the tutorialComputer Vision(CV)

    2

      Learning Computer Vision via OpenCVBasicsImplementing Computer Vision

    3   Going Beyond

    More OpenCV Codes3DThanks

    Introduction Learning Computer Vision via OpenCV Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    8/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Anatomy of the tutorial

    Prerequisites

    This tutorial is for beginners who have no prior experience toComputer Vision. Basic understanding of C/C++ is expected.

    All the attendees will be given a DVD containing the followingUbuntu image with OpenCV 2.4.3 pre-installedVirtual box application for Windows & LinuxOpenCV tutorial codes

    If you don’t have a DVD, you can download the tutorialmaterial from the link below:https://sourceforge.net/projects/oscon13cv/

    Introduction Learning Computer Vision via OpenCV Going Beyond

    https://sourceforge.net/projects/oscon13cv/https://sourceforge.net/projects/oscon13cv/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    9/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Anatomy of the tutorial

    Prerequisites

    This tutorial is for beginners who have no prior experience toComputer Vision. Basic understanding of C/C++ is expected.

    All the attendees will be given a DVD containing the followingUbuntu image with OpenCV 2.4.3 pre-installedVirtual box application for Windows & LinuxOpenCV tutorial codes

    If you don’t have a DVD, you can download the tutorialmaterial from the link below:https://sourceforge.net/projects/oscon13cv/

    Introduction Learning Computer Vision via OpenCV Going Beyond

    https://sourceforge.net/projects/oscon13cv/https://sourceforge.net/projects/oscon13cv/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    10/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Anatomy of the tutorial

    Prerequisites

    This tutorial is for beginners who have no prior experience toComputer Vision. Basic understanding of C/C++ is expected.

    All the attendees will be given a DVD containing the followingUbuntu image with OpenCV 2.4.3 pre-installedVirtual box application for Windows & LinuxOpenCV tutorial codes

    If you don’t have a DVD, you can download the tutorialmaterial from the link below:https://sourceforge.net/projects/oscon13cv/

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    https://sourceforge.net/projects/oscon13cv/https://sourceforge.net/projects/oscon13cv/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    11/114

    g p p g y

    Anatomy of the tutorial

    Prerequisites

    This tutorial is for beginners who have no prior experience toComputer Vision. Basic understanding of C/C++ is expected.

    All the attendees will be given a DVD containing the followingUbuntu image with OpenCV 2.4.3 pre-installedVirtual box application for Windows & LinuxOpenCV tutorial codes

    If you don’t have a DVD, you can download the tutorialmaterial from the link below:https://sourceforge.net/projects/oscon13cv/

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    https://sourceforge.net/projects/oscon13cv/https://sourceforge.net/projects/oscon13cv/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    12/114

    g p p g y

    Anatomy of the tutorial

    Prerequisites

    This tutorial is for beginners who have no prior experience toComputer Vision. Basic understanding of C/C++ is expected.

    All the attendees will be given a DVD containing the followingUbuntu image with OpenCV 2.4.3 pre-installedVirtual box application for Windows & LinuxOpenCV tutorial codes

    If you don’t have a DVD, you can download the tutorialmaterial from the link below:https://sourceforge.net/projects/oscon13cv/

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    https://sourceforge.net/projects/oscon13cv/https://sourceforge.net/projects/oscon13cv/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    13/114

    g g y

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencvMake sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    14/114

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencvMake sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    15/114

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencvMake sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    16/114

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencvMake sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    17/114

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencv

    Make sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    18/114

    Anatomy of the tutorial

    Setup

    Please make sure that you have Visualization Technology(VT)enabled in your BIOS.

    Then install Virtual box on your machine if you don’t have it.Create a virtual instance using the Ubuntu image providedwith atleast 1core, 1GB RAM.

    Log into the live mode. DO NOT INSTALL UBUNTU!

    Username=Password=opencv

    Make sure that the Codelite IDE has been pre-configured withthe tutorial codes.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    19/114

    Computer Vision(CV)

    1   IntroductionAnatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCVBasicsImplementing Computer Vision

    3   Going Beyond

    More OpenCV Codes3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    20/114

    Computer Vision(CV)

    What is it?

    It is a discipline of “teaching machines how to see”.

    Used in various industries - Biomedical, Robotics, Computers,Automotive, Aviation etc.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    21/114

    Computer Vision(CV)

    What is it?

    It is a discipline of “teaching machines how to see”.

    Used in various industries - Biomedical, Robotics, Computers,Automotive, Aviation etc.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    22/114

    Computer Vision(CV)

    Why learn Computer Vision?

    Solve some of the world’s most toughest problems.

    Its cool and fun. Also one does not need a PhD to implementit.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    23/114

    Computer Vision(CV)

    Why learn Computer Vision?

    Solve some of the world’s most toughest problems.

    Its cool and fun. Also one does not need a PhD to implementit.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    24/114

    Computer Vision(CV)

    Applications of Computer Vision

    Motivation video

    Used in all the latest cars today to assist drivers.

    Used by a lot of companies like Facebook, Google etc. toidentify people in their photos.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    25/114

    Basics

    1   IntroductionAnatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCVBasicsImplementing Computer Vision

    3   Going Beyond

    More OpenCV Codes3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    26/114

    Basics

    What is an Image?

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    27/114

    Basics

    What is an Image?

    It is nothing but a collection of ones and zeros! That is howmachines see them atleast.

    It is made up of small constituent elements called ’pictureelements’ a.k.a pixels as shown below

    Each pixel stores specific color information about the picture.A 1920*1080 picture has 2073600 pixels. More pixels meansclarity upto a certain point.

    JPEG, PNG, BMP, GIF etc. - standardized means of 

    organizing and storing images.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    B i

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    28/114

    Basics

    What is an Image?

    It is nothing but a collection of ones and zeros! That is howmachines see them atleast.

    It is made up of small constituent elements called ’pictureelements’ a.k.a pixels as shown below

    Each pixel stores specific color information about the picture.A 1920*1080 picture has 2073600 pixels. More pixels meansclarity upto a certain point.

    JPEG, PNG, BMP, GIF etc. - standardized means of 

    organizing and storing images.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    B i

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    29/114

    Basics

    What is an Image?

    It is nothing but a collection of ones and zeros! That is howmachines see them atleast.

    It is made up of small constituent elements called ’pictureelements’ a.k.a pixels as shown below

    Each pixel stores specific color information about the picture.A 1920*1080 picture has 2073600 pixels. More pixels meansclarity upto a certain point.

    JPEG, PNG, BMP, GIF etc. - standardized means of 

    organizing and storing images.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    30/114

    Basics

    What is an Image?

    It is nothing but a collection of ones and zeros! That is howmachines see them atleast.

    It is made up of small constituent elements called ’pictureelements’ a.k.a pixels as shown below

    Each pixel stores specific color information about the picture.A 1920*1080 picture has 2073600 pixels. More pixels meansclarity upto a certain point.

    JPEG, PNG, BMP, GIF etc. - standardized means of 

    organizing and storing images.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    31/114

    Basics

    What is an Image?

    It is nothing but a collection of ones and zeros! That is howmachines see them atleast.

    It is made up of small constituent elements called ’pictureelements’ a.k.a pixels as shown below

    Each pixel stores specific color information about the picture.A 1920*1080 picture has 2073600 pixels. More pixels meansclarity upto a certain point.

    JPEG, PNG, BMP, GIF etc. - standardized means of 

    organizing and storing images.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    32/114

    Basics

    Terminologies

    Color Models - RGB, HSV, CMYK.

    A mathematical method to describe colors as a tuple of numbers.Colors can be additive or subtractive

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    33/114

    Basics

    Terminologies

    Saturation: INCREASE=bright colors DECREASE=grayishcolors

    Brightness: LOW=DARK tones;HIGH=LIGHT tones

    Contrast: Difference between the dark and light spots in theimage.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    34/114

    Terminologies

    Saturation: INCREASE=bright colors DECREASE=grayishcolors

    Brightness: LOW=DARK tones;HIGH=LIGHT tones

    Contrast: Difference between the dark and light spots in theimage.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Basics

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    35/114

    Terminologies

    Saturation: INCREASE=bright colors DECREASE=grayishcolors

    Brightness: LOW=DARK tones;HIGH=LIGHT tones

    Contrast: Difference between the dark and light spots in theimage.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    36/114

    1

      IntroductionAnatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCV

    BasicsImplementing Computer Vision

    3   Going Beyond

    More OpenCV Codes3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    37/114

    Why OpenCV

    World’s most popular open source computer vision library.

    Available under BSD license - great for making commercialapplications!

    500+ optimized algorithms for image and video analysis

    Cross platform- Mac OS, Windows, Android, iOS, Linux.

    C, C++, Python and Java interfaces

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    38/114

    Why OpenCV

    World’s most popular open source computer vision library.

    Available under BSD license - great for making commercialapplications!

    500+ optimized algorithms for image and video analysis

    Cross platform- Mac OS, Windows, Android, iOS, Linux.

    C, C++, Python and Java interfaces

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    39/114

    Why OpenCV

    World’s most popular open source computer vision library.

    Available under BSD license - great for making commercialapplications!

    500+ optimized algorithms for image and video analysis

    Cross platform- Mac OS, Windows, Android, iOS, Linux.

    C, C++, Python and Java interfaces

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    40/114

    Why OpenCV

    World’s most popular open source computer vision library.

    Available under BSD license - great for making commercialapplications!

    500+ optimized algorithms for image and video analysis

    Cross platform- Mac OS, Windows, Android, iOS, Linux.

    C, C++, Python and Java interfaces

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    41/114

    Why OpenCV

    World’s most popular open source computer vision library.

    Available under BSD license - great for making commercialapplications!

    500+ optimized algorithms for image and video analysis

    Cross platform- Mac OS, Windows, Android, iOS, Linux.

    C, C++, Python and Java interfaces

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    42/114

    Installing OpenCV

    Two approaches: install pre-compiled package or build it from

    source.For Ubuntu, all you need to do is type “sudo apt-get installlibopencv-dev” in a terminal window.

    http://youtu.be/b3IQyhJXK78

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://youtu.be/b3IQyhJXK78http://youtu.be/b3IQyhJXK78http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    43/114

    Installing OpenCV

    Two approaches: install pre-compiled package or build it from

    source.For Ubuntu, all you need to do is type “sudo apt-get installlibopencv-dev” in a terminal window.

    http://youtu.be/b3IQyhJXK78

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://youtu.be/b3IQyhJXK78http://youtu.be/b3IQyhJXK78http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    44/114

    Installing OpenCV

    Two approaches: install pre-compiled package or build it from

    source.For Ubuntu, all you need to do is type “sudo apt-get installlibopencv-dev” in a terminal window.

    http://youtu.be/b3IQyhJXK78

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    http://youtu.be/b3IQyhJXK78http://youtu.be/b3IQyhJXK78http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    45/114

    Resources

    Website:   http://opencv.org/

    Official user group:http://tech.groups.yahoo.com/group/OpenCV/

    Tutorials

    Reference manual, user guide & cheatsheet available inOpenCV/doc folder.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    R

    http://opencv.org/http://tech.groups.yahoo.com/group/OpenCV/http://tech.groups.yahoo.com/group/OpenCV/http://opencv.org/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    46/114

    Resources

    Website:   http://opencv.org/

    Official user group:http://tech.groups.yahoo.com/group/OpenCV/

    Tutorials

    Reference manual, user guide & cheatsheet available inOpenCV/doc folder.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    R

    http://opencv.org/http://tech.groups.yahoo.com/group/OpenCV/http://tech.groups.yahoo.com/group/OpenCV/http://opencv.org/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    47/114

    Resources

    Website:   http://opencv.org/

    Official user group:http://tech.groups.yahoo.com/group/OpenCV/

    Tutorials

    Reference manual, user guide & cheatsheet available inOpenCV/doc folder.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    R

    http://opencv.org/http://tech.groups.yahoo.com/group/OpenCV/http://tech.groups.yahoo.com/group/OpenCV/http://opencv.org/http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    48/114

    Resources

    Website:   http://opencv.org/

    Official user group:http://tech.groups.yahoo.com/group/OpenCV/

    Tutorials

    Reference manual, user guide & cheatsheet available inOpenCV/doc folder.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    OpenCV Modules

    http://opencv.org/http://tech.groups.yahoo.com/group/OpenCV/http://tech.groups.yahoo.com/group/OpenCV/http://opencv.org/http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    49/114

    OpenCV Modules

    Core: compact module defining basic data structures, including the densemultidimensional array Mat and basic functions used by all other modules.

    Imgproc: an image processing module that includes linear and non-linear imagefiltering, geometrical image transformations (resize, affine and perspectivewarping, generic table-based remapping), color space conversion, histograms,

    and so on.Video: a video analysis module that includes motion estimation, backgroundsubtraction, and object tracking algorithms.

    Calib3d: basic multiple-view geometry algorithms, single and stereo cameracalibration, object pose estimation, stereo correspondence algorithms, andelements of 3D reconstruction.

    Features2d: salient feature detectors, descriptors, and descriptor matchers.Objdetect: detection of objects and instances of the predefined classes (forexample, faces, eyes, mugs, people, cars, and so on).

    Highgui: an easy-to-use interface to video capturing, image and video codecs, aswell as simple UI capabilities.

    Gpu: GPU - accelerated algorithms from different OpenCV modules.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    U & R i

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    50/114

    Up & Running

    Please run the “Hello World” program.

    ExplanationPlease run the “Modify Image” program.

    Explanation

    BREAK

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Up & Running

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    51/114

    Up & Running

    Please run the “Hello World” program.

    ExplanationPlease run the “Modify Image” program.

    Explanation

    BREAK

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Up & Running

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    52/114

    Up & Running

    Please run the “Hello World” program.

    ExplanationPlease run the “Modify Image” program.

    Explanation

    BREAK

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Up & Running

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    53/114

    Up & Running

    Please run the “Hello World” program.

    ExplanationPlease run the “Modify Image” program.

    Explanation

    BREAK

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Up & Running

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    54/114

    Up & Running

    Please run the “Hello World” program.

    ExplanationPlease run the “Modify Image” program.

    Explanation

    BREAK

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Types of Image

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    55/114

    Types of Image

    There are three types of Image:

    RGB: 3 channels, 0-255Grayscale: 1 channel, 0[BLACK]-255[WHITE]Black and White: 1 channel, 0 or 1

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Types of Image

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    56/114

    Types of Image

    There are three types of Image:

    RGB: 3 channels, 0-255Grayscale: 1 channel, 0[BLACK]-255[WHITE]Black and White: 1 channel, 0 or 1

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Types of Image

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    57/114

    Types of Image

    There are three types of Image:

    RGB: 3 channels, 0-255Grayscale: 1 channel, 0[BLACK]-255[WHITE]Black and White: 1 channel, 0 or 1

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    RGB

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    58/114

    RGB

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Grayscale

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    59/114

    Grayscale

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Black and White

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    60/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Data types in OpenCV

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    61/114

    yp p

    8-bit unsigned integer (uchar), CV 8U

    8-bit signed integer (schar), CV 8S

    16-bit unsigned integer (ushort), CV 16U16-bit signed integer (short), CV 16S

    32-bit signed integer (int), CV 32S

    32-bit floating-point number (float), CV 32F

    64-bit floating-point number (double), CV 64F

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image storage in OpenCV

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    62/114

    g g p

    Mat - Primitive datatype in OpenCV to store images.

    More info here:

    http://opencv.willowgarage.com/documentation/cpp/basic structures.html#cv-mat-mat

    Image properties:height, width, depth, type, channels, pixels

    Please run the “Matrix Operation” program.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image storage in OpenCV

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    63/114

    g g p

    Mat - Primitive datatype in OpenCV to store images.

    More info here:

    http://opencv.willowgarage.com/documentation/cpp/basic structures.html#cv-mat-mat

    Image properties:height, width, depth, type, channels, pixels

    Please run the “Matrix Operation” program.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image storage in OpenCV

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    64/114

    g g

    Mat - Primitive datatype in OpenCV to store images.

    More info here:

    http://opencv.willowgarage.com/documentation/cpp/basic structures.html#cv-mat-mat

    Image properties:height, width, depth, type, channels, pixels

    Please run the “Matrix Operation” program.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image storage in OpenCV

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    65/114

    Mat - Primitive datatype in OpenCV to store images.

    More info here:

    http://opencv.willowgarage.com/documentation/cpp/basic structures.html#cv-mat-mat

    Image properties:height, width, depth, type, channels, pixels

    Please run the “Matrix Operation” program.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    RGB Color model

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    66/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    HSV Color model

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    67/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image Conversions

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    68/114

    RGB to Grayscale(reverse not possible!)

    Grayscale to black and white.Makes processing much easier.

    Please run the Image Conversion code.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image Conversions

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    69/114

    RGB to Grayscale(reverse not possible!)

    Grayscale to black and white.Makes processing much easier.

    Please run the Image Conversion code.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image Conversions

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    70/114

    RGB to Grayscale(reverse not possible!)

    Grayscale to black and white.Makes processing much easier.

    Please run the Image Conversion code.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image Conversions

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    71/114

    RGB to Grayscale(reverse not possible!)

    Grayscale to black and white.Makes processing much easier.

    Please run the Image Conversion code.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Image Conversions

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    72/114

    RGB to Grayscale(reverse not possible!)

    Grayscale to black and white.Makes processing much easier.

    Please run the Image Conversion code.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Pixel Manipulation

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    73/114

    Dealing with one/many pixel simultaneously.

    Please run the Pixel manipulation code.

    Explanation

    Classic example: Image Steganography

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Pixel Manipulation

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    74/114

    Dealing with one/many pixel simultaneously.

    Please run the Pixel manipulation code.

    Explanation

    Classic example: Image Steganography

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Pixel Manipulation

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    75/114

    Dealing with one/many pixel simultaneously.

    Please run the Pixel manipulation code.

    Explanation

    Classic example: Image Steganography

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Pixel Manipulation

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    76/114

    Dealing with one/many pixel simultaneously.

    Please run the Pixel manipulation code.

    Explanation

    Classic example: Image Steganography

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Pixel Manipulation

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    77/114

    Dealing with one/many pixel simultaneously.

    Please run the Pixel manipulation code.

    Explanation

    Classic example: Image Steganography

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    78/114

    It is a graph showing the number of pixels in an image at eachdifferent intensity value found in that image

    Histograms are used to depict image statistics in an easilyinterpreted visual format

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    79/114

    It is a graph showing the number of pixels in an image at eachdifferent intensity value found in that image

    Histograms are used to depict image statistics in an easilyinterpreted visual format

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    80/114

    It is a graph showing the number of pixels in an image at eachdifferent intensity value found in that image

    Histograms are used to depict image statistics in an easilyinterpreted visual format

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Plotting your own Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    81/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Importance of Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    82/114

    It is used in many applications to improve the visual

    appearance of an image.

    Trivial image comparison.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Importance of Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    83/114

    It is used in many applications to improve the visual

    appearance of an image.

    Trivial image comparison.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Importance of Histogram

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    84/114

    It is used in many applications to improve the visual

    appearance of an image.

    Trivial image comparison.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Equalization

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    85/114

    It is a method that improves the contrast in an image, inorder to stretch out the intensity range.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Equalization

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    86/114

    It is a method that improves the contrast in an image, inorder to stretch out the intensity range.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Implementing Computer Vision

    Equalization

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    87/114

    It is a method that improves the contrast in an image, inorder to stretch out the intensity range.

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    88/114

    1   Introduction

    Anatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCV

    BasicsImplementing Computer Vision

    3   Going BeyondMore OpenCV Codes

    3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    Examples

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    89/114

    Changing the brightness/contrast of a given image

    Smoothening a given image

    Edge detection

    Please run all of the above codes.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    Examples

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    90/114

    Changing the brightness/contrast of a given image

    Smoothening a given image

    Edge detection

    Please run all of the above codes.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    Examples

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    91/114

    Changing the brightness/contrast of a given image

    Smoothening a given image

    Edge detection

    Please run all of the above codes.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    Examples

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    92/114

    Changing the brightness/contrast of a given image

    Smoothening a given image

    Edge detection

    Please run all of the above codes.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    More OpenCV Codes

    Examples

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    93/114

    Changing the brightness/contrast of a given image

    Smoothening a given image

    Edge detection

    Please run all of the above codes.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    1 Introduction

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    94/114

    1   Introduction

    Anatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCVBasicsImplementing Computer Vision

    3   Going BeyondMore OpenCV Codes

    3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    3D Image Processing

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    95/114

    Z parameter - depth.

    3D Cameras use either ’time of flight’ or the structured lighttechnology.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    3D Image Processing

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    96/114

    Z parameter - depth.

    3D Cameras use either ’time of flight’ or the structured lighttechnology.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    3D Image Processing

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    97/114

    Z parameter - depth.

    3D Cameras use either ’time of flight’ or the structured lighttechnology.

    Explanation

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Hardware Devices

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    98/114

    Microsoft Kinect

    Primesense

    Softkinetic

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Hardware Devices

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    99/114

    Microsoft Kinect

    Primesense

    Softkinetic

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Hardware Devices

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    100/114

    Microsoft Kinect

    Primesense

    Softkinetic

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Software

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    101/114

    OpenNI library - world’s most popular open source 3D imageprocessing library.

    Point Cloud Library(PCL)

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Software

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    102/114

    OpenNI library - world’s most popular open source 3D imageprocessing library.

    Point Cloud Library(PCL)

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Potential Applications

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    103/114

    Terrain mapping

    Gaming

    Medical

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Potential Applications

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    104/114

    Terrain mapping

    Gaming

    Medical

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Potential Applications

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    105/114

    Terrain mapping

    Gaming

    Medical

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Demos

    http://find/http://goback/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    106/114

    Getting RGB data and depth map using Microsoft Kinect.

    Hand TrackerSkeleton Tracking

    Kinect hacks on Pandaboard

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Demos

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    107/114

    Getting RGB data and depth map using Microsoft Kinect.

    Hand TrackerSkeleton Tracking

    Kinect hacks on Pandaboard

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Demos

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    108/114

    Getting RGB data and depth map using Microsoft Kinect.

    Hand TrackerSkeleton Tracking

    Kinect hacks on Pandaboard

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    3D

    Demos

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    109/114

    Getting RGB data and depth map using Microsoft Kinect.

    Hand TrackerSkeleton Tracking

    Kinect hacks on Pandaboard

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Thanks

    1   Introduction

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    110/114

    Anatomy of the tutorialComputer Vision(CV)

    2   Learning Computer Vision via OpenCVBasics

    Implementing Computer Vision

    3   Going BeyondMore OpenCV Codes

    3DThanks

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Thanks

    Contact US

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    111/114

    Thank you for attending our tutorial! :-)

    Jayneil: [email protected]: [email protected]

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    112/114

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Thanks

    Contact US

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    113/114

    Thank you for attending our tutorial! :-)

    Jayneil: [email protected]: [email protected]

    Introduction   Learning Computer Vision via OpenCV   Going Beyond

    Thanks

    Contact US

    http://find/

  • 8/17/2019 Beginner_s Guide to Computer Vision Presentation

    114/114

    Thank you for attending our tutorial! :-)

    Jayneil: [email protected]: [email protected]

    http://find/