SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Computer Vision

Luigi De Russis

Introduction to
OpenCV
2

OpenCâ€Ļ what?
OpenCV in brief

Introduction to OpenCV

07/11/2013
What is OpenCV?
3

ī‚¨

Open source Computer Vision library
BSD License
ī‚¤ http://opencv.org
ī‚¤

ī‚¨
ī‚¨
ī‚¨

Originally developed by Intel
Has more than 2500 optimized algorithms
Supports a lot of different languages
C, C++, Python, Java
ī‚¤ but is written natively in C++
ī‚¤

ī‚¨

Cross platform
ī‚¤

also available for Android and iOS

Introduction to OpenCV

07/11/2013
What it is used for?
4

ī‚¨

ī‚¨
ī‚¨
ī‚¨

ī‚¨
ī‚¨
ī‚¨
ī‚¨
ī‚¨

Human-Computer Interaction (HCI)
Object Identification
Object Recognition
Face Recognition
Gesture Recognition
Motion Tracking
Image Processing
Mobile Robotics
â€Ļ and so on

Introduction to OpenCV

07/11/2013
5

Motivations - OpenCV
Always ask “why?”

Introduction to OpenCV

07/11/2013
Why OpenCV?
6

vs.

Introduction to OpenCV

07/11/2013
OpenCV: pros
7

ī‚¨

Specificity
ī‚¤ OpenCV

was made for image processing
ī‚¤ Matlab is quite generic
ī‚¨

Speed
ī‚¤ 30+

frames processed per seconds in real time image
processing with OpenCV
ī‚¤ around 4-5 frames processed per seconds in real time
image processing with Matlab
ī‚¨

Efficient
ī‚¤ Matlab

Introduction to OpenCV

needs more system resources than OpenCV
07/11/2013
OpenCV: cons
8

ī‚¨

Easy of use
ī‚¤ Matlab

ī‚¨

won hands down!

Integrated Development Environment (IDE)
ī‚¤ you

can use Eclipse, Netbeans, Visual Studio, Qt,
XCode, â€Ļ even a simple text editor for OpenCV
ī‚¤ Matlab has is own IDE
ī‚¨

Memory management

Introduction to OpenCV

07/11/2013
OpenCV: pros (final)
9

ī‚¨

ī‚¨

Price (!)
OpenCV Wrappers
ī‚¤ SimpleCV,

ī‚¨

Emgu CV, ruby-opencvâ€Ļ

More similar to industry-level frameworks

Introduction to OpenCV

07/11/2013
10

Motivation - Java
When Java meets OpenCV

Introduction to OpenCV

07/11/2013
Some factsâ€Ļ
11

ī‚¨

The OpenCV APIs have few capabilities for user
interfaces
ī‚¤ i.e.

you can open a window with an image inside. Do
you want a button? You cannot have it!
ī‚¤ to have a “decent” user interface you need to install
“something else” (e.g., Qt for C++)â€Ļ
ī‚¤ â€Ļ and then compile OpenCV for adding Qt support
ī‚¨

C++ learning curve is quiteâ€Ļ steep
ī‚¤ source:

experiences from teaching this course in the last

years
Introduction to OpenCV

07/11/2013
Some (other) factsâ€Ļ
12

ī‚¨

OpenCV C++ APIs exists since OpenCV 1.0
ī‚¤ It

is possible, but not recommended, to “mix” different
OpenCV version
ī‚¤ Typically, it is a good way to get into trouble!
ī‚¨

It is possible to use OpenCV C APIs together with
C++ APIs
ī‚¤ Typically

Introduction to OpenCV

it is a good way to get into trouble!

07/11/2013
Some (other) factsâ€Ļ
13

ī‚¨

OpenCV C++ API exists since OpenCV 1.0
ī‚¤ It

is possible, but not recommended, to “mix” different
OpenCV version
ī‚¤ Typically, it is a good way to get into trouble!

Yeah, some students did it!

ī‚¨

It is possible to use OpenCV C APIs together with
C++ APIs
ī‚¤ Typically

Introduction to OpenCV

it is a good way to get into trouble!

07/11/2013
A better world is possible?
14

ī‚¨

OpenCV provides also the Java APIs
nothing to compile (on Windows)
ī‚¤ they works on Android, also
ī‚¤

ī‚¨

Java 7 has a first-grade user interface
not Swing, but JavaFX
ī‚¤ http://www.oracle.com/technetwork/java/javafx
ī‚¤

ī‚¨

ī‚¨

Almost everybody here should have some (basic)
experience with Java
Performance between the C++ APIs and the Java APIs
are comparable

Introduction to OpenCV

07/11/2013
A better world is possible?
15

ī‚¨

The OpenCV Java APIs are almost identical to the C++
version
knowledge can be transferred!
ī‚¤ examples:
ī‚¤

to store an image in memory both use the Mat object
īŽ to write an image on disk both use the imwrite method
īŽ

ī‚¨

Something change a bit
ī‚¤

examples:
īŽ

CV_RGB2GRAY (C++) becomes COLOR_RGB2GRAY (Java)

īŽ

Point, Point2d, Point2f (C++) becomes 3 overloaded
constructor of Point (Java)

Introduction to OpenCV

07/11/2013
A better world is possible?
16

ī‚¨

Question:
ī‚¤ is

OpenCV with Java/JavaFX the “best” solution for
every application?

Introduction to OpenCV

07/11/2013
A better world is possible?
17

ī‚¨

Question:
ī‚¤ is

OpenCV with Java/JavaFX the “best” solution for
every application?

ī‚¨

Response:
ī‚¤ No,

obviously
ī‚¤ Do you need a GUI? Go with JavaFX!
ī‚¤ Do you have memory constraint? Go with C/C++!
ī‚¤â€Ļ
ī‚¤ Please, no extremism!
Introduction to OpenCV

07/11/2013
18

OpenCV meets Java
Getting started with OpenCV and Java

Introduction to OpenCV

07/11/2013
Modules
19

OpenCV has a modular structure:
the package includes several shared or static libraries
ī‚¨

core
ī‚¤

ī‚¨

imgproc
ī‚¤

ī‚¨

basic structures and algorithms
image processing algorithms (such as image filtering,
geometrical image transformations, histograms, etc.)

video
ī‚¤

video analysis (such as motion estimation and object
tracking)

Introduction to OpenCV

07/11/2013
Modules
20

ī‚¨

highgui
ī‚¤

ī‚¨

calib3d
ī‚¤

ī‚¨

camera calibration and 3D reconstruction

features2d
ī‚¤

ī‚¨

basic operation to read/write/encode images; in C, C++
and Python it provides also basic UI capabilities

2D features framework (feature detectors, descriptors, and
descriptor matchers)

objdetect
ī‚¤

detection of objects and other items (e.g., faces, eyes, mugs,
people, â€Ļ)

Introduction to OpenCV

07/11/2013
Modules
21

ī‚¨

ml
ī‚¤ machine

learning classes used for statistical
classification, regression and clustering of data

ī‚¨

gpu
ī‚¤ GPU-accelerated

ī‚¨

photo
ī‚¤ computational

ī‚¨

algorithms

photography

ccl
ī‚¤ OpenCL-accelerated

Introduction to OpenCV

algorithms
07/11/2013
Data Structures
22

ī‚¨

ī‚¨

ī‚¨

We speak about Java API
All the OpenCV classes and methods are placed into
the org.opencv.* packages
Mat
ī‚¤ the primary image structure in OpenCV 2.x
ī‚¤ overcomes the “old” IplImage/CvMat problems (OpenCV
1.x/C API)
ī‚¤ automatic memory management (more or less in C++)
ī‚¤ two data parts:
matrix header (contains information about the matrix)
īŽ a pointer to the matrix containing the pixel values
īŽ

Introduction to OpenCV

07/11/2013
Data Structures
23

ī‚¨

Point
ī‚¤ 2D point
ī‚¤ defined by x, y coordinates
īŽ

ī‚¨

ī‚¨

Point first = new Point(2, 3);

Size
ī‚¤ 2D size structure
ī‚¤ specify the size (width and height) of an image or
rectangle
Rect
ī‚¤ 2D rectangle object

Introduction to OpenCV

07/11/2013
Basic Image I/O
24

ī‚¨

Highgui.imread
ī‚¤ loads an image from file and return the corresponding Mat
object
Mat Highgui.imread(String filename,
int flags)

ī‚¨

Highui.imwrite
ī‚¤

save an image on disk
bool Highgui.imwrite(String filename,
Mat img, MatOfInt params)

Introduction to OpenCV

07/11/2013
Basic Drawing Operations
25

ī‚¨

ī‚¨

ī‚¨

ī‚¨

Core.circle
ī‚¤ draws a simple or filled circle with a given center and radius on a
given image
Core.line
ī‚¤ draws a line between two point in the given image
Core.ellipse
ī‚¤ draws an ellipse outline, a filled ellipse, an elliptic arc, a filled
ellipse sector, â€Ļ
Core.rectangle
ī‚¤ draws a rectangle outline or a filled rectangle
ī‚¤ note that negative thickness will fill the rectangle

Introduction to OpenCV

07/11/2013
Color Spaces
26

ī‚¨

Imgproc.cvtColor
ī‚¤
ī‚¤

converts an input image from one color space to another
examples:
īŽ
īŽ

īŽ

ī‚¨

cvtColor(src, dest, Imgproc.COLOR_RGB2GRAY);
cvtColor(src, dest, Imgproc.COLOR_HSV2BGR);
cvtColor(src, dest, Imgproc.COLOR_RGB2BGR);

Important! Images in OpenCV uses BGR instead of RGB

Introduction to OpenCV

07/11/2013
27

Let’s get practical!
Getting started (without going crazy)

Introduction to OpenCV

07/11/2013
How can we use OpenCV?
28

ī‚¨

LABINF:
ī‚¤ already

installed under Windows
ī‚¤ version 2.4.6
ī‚¤ Eclipse (Kepler) is the IDE
ī‚¨

At home:
ī‚¤ you

can use whatever IDE you like
ī‚¤ but we give full support only for Eclipse
ī‚¨

Installation:
ī‚¤ see

the PDF document in the teaching portal

Introduction to OpenCV

07/11/2013
What if I got problems?
29

ī‚¨

Small problems
ī‚¤

drop me a line
īŽ

ī‚¨

luigi.derussis@polito.it

Normal problems

Problems with JavaFX and a gray scale image

Awesome student to me
Hi,
[â€Ļ] I’m using “cvtColor(image, gray, COLOR_BGR2GRAY);” but it give this exception: [â€Ļ]
Can you help me?

come to office hours
ī‚¤ every Wednesday, 9:00 - 11:00
ī‚¤ LAB6, second floor of DAUIN
ī‚¤ please send an e-mail beforehand
ī‚¤

ī‚¨

Regards,
â€Ļ

Enormous problems
pray?
ī‚¤ no, seriously, we can schedule an extra “lesson”
ī‚¤

Introduction to OpenCV

07/11/2013
What if I got problems?
30

OpenCV installation

ī‚¨

Small problems
ī‚¤

drop me a line
īŽ

ī‚¨

luigi.derussis@polito.it

Normal problems

Not-So-Awesome student to me
Hi,
[â€Ļ] I followed the guide for installing OpenCV on my Mac but I have an error after step 3. Can
we meet on next Wednesday to solve the problem?
Thanks!
Regards,
â€Ļ

come to office hours
ī‚¤ every Wednesday, 9:00 - 11:00
ī‚¤ LAB6, second floor of DAUIN
ī‚¤ please send an e-mail beforehand
ī‚¤

ī‚¨

Enormous problems
pray?
ī‚¤ no, seriously, we can schedule an extra “lesson”
ī‚¤

Introduction to OpenCV

07/11/2013
What if I got problems?
31

ī‚¨

Small problems
ī‚¤

drop me a line
īŽ

ī‚¨

luigi.derussis@polito.it

Normal problems
come to office hours
ī‚¤ every Wednesday, 9:00 - 11:00
ī‚¤ LAB6, second floor of DAUIN
ī‚¤ please send an e-mail beforehand
ī‚¤

Help with OpenCV

Good student to me

Hi,
[â€Ļ] I see the solution of Exercise 2.1 but I don’t understand the following expressions:
main();
System.out.println();
@Override.
Can you explain to me what they are?

ī‚¨

Enormous problems

Regards,
â€Ļ

pray?
ī‚¤ no, seriously, we can schedule an extra “lesson”
ī‚¤

Introduction to OpenCV

07/11/2013
An e-mail not to be sent!
32

Introduction to OpenCV

07/11/2013
Useful Resourcesâ€Ļ
33

ī‚¨

OpenCV Wiki
ī‚¤

ī‚¨

OpenCV Official Documentation
ī‚¤

ī‚¨

http://answers.opencv.org/questions/

OpenCV Javadocs
ī‚¤

ī‚¨

http://docs.opencv.org/

User Q&A forum
ī‚¤

ī‚¨

http://code.opencv.org/projects/opencv/wiki

http://docs.opencv.org/java/

JavaFX Documentation
ī‚¤

http://www.oracle.com/technetwork/java/javafx/document
ation

Introduction to OpenCV

07/11/2013
34

Demo Hour
Put everything together

Introduction to OpenCV

07/11/2013
License
35

ī‚¨

ī‚¨

This work is licensed under the Creative Commons “AttributionNonCommercial-ShareAlike Unported (CC BY-NC-SA 3,0)” License.
You are free:
ī‚¤
ī‚¤

ī‚¨

Under the following conditions:
ī‚¤

ī‚¤
ī‚¤

ī‚¨

to Share - to copy, distribute and transmit the work
to Remix - to adapt the work

Attribution - You must attribute the work in the manner specified by the
author or licensor (but not in any way that suggests that they endorse
you or your use of the work).
Noncommercial - You may not use this work for commercial purposes.
Share Alike - If you alter, transform, or build upon this work, you may
distribute the resulting work only under the same or similar license to this
one.

To view a copy of this license, visit
http://creativecommons.org/licenses/by-nc-sa/3.0/

Introduction to OpenCV

07/11/2013

Weitere ähnliche Inhalte

Was ist angesagt?

A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)
 A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs) A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)
A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)Thomas da Silva Paula
 
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...PVI, PeerView Institute for Medical Education
 
cCR TO NACTRT RECTUM-WHAT NEXT?
cCR TO NACTRT RECTUM-WHAT NEXT?cCR TO NACTRT RECTUM-WHAT NEXT?
cCR TO NACTRT RECTUM-WHAT NEXT?Kanhu Charan
 
Neural Radiance Field
Neural Radiance FieldNeural Radiance Field
Neural Radiance FieldDong Heon Cho
 
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1QIAGEN
 
GANs Presentation.pptx
GANs Presentation.pptxGANs Presentation.pptx
GANs Presentation.pptxMAHMOUD729246
 
Scale invariant feature transform
Scale invariant feature transformScale invariant feature transform
Scale invariant feature transformMohammad Asghar Barech
 
Computer Vision image classification
Computer Vision image classificationComputer Vision image classification
Computer Vision image classificationWael Badawy
 
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORK
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORKMULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORK
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORKBenyamin Moadab
 
OpenCV Introduction
OpenCV IntroductionOpenCV Introduction
OpenCV IntroductionZachary Blair
 
BOOK ON REIRRADIATION
BOOK ON REIRRADIATIONBOOK ON REIRRADIATION
BOOK ON REIRRADIATIONKanhu Charan
 
Computer vision
Computer visionComputer vision
Computer visionYudi Hartawan
 
Gowtham's 3rd radiobiology
Gowtham's  3rd radiobiology Gowtham's  3rd radiobiology
Gowtham's 3rd radiobiology Gowtham Manimaran
 
3D Gaussian Splatting
3D Gaussian Splatting3D Gaussian Splatting
3D Gaussian Splattingtaeseon ryu
 
DeepWalk: Online Learning of Representations
DeepWalk: Online Learning of RepresentationsDeepWalk: Online Learning of Representations
DeepWalk: Online Learning of RepresentationsBryan Perozzi
 

Was ist angesagt? (20)

Radioterapia 4D
Radioterapia 4DRadioterapia 4D
Radioterapia 4D
 
A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)
 A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs) A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)
A (Very) Gentle Introduction to Generative Adversarial Networks (a.k.a GANs)
 
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...
Adjuvant EGFR-Targeted Therapy as a Game Changer: How to Implement New Standa...
 
cCR TO NACTRT RECTUM-WHAT NEXT?
cCR TO NACTRT RECTUM-WHAT NEXT?cCR TO NACTRT RECTUM-WHAT NEXT?
cCR TO NACTRT RECTUM-WHAT NEXT?
 
Neural Radiance Field
Neural Radiance FieldNeural Radiance Field
Neural Radiance Field
 
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1
Single-Cell Analysis - Powered by REPLI-g: Single Cell Analysis Series Part 1
 
GANs Presentation.pptx
GANs Presentation.pptxGANs Presentation.pptx
GANs Presentation.pptx
 
Yolo
YoloYolo
Yolo
 
Yolo
YoloYolo
Yolo
 
Scale invariant feature transform
Scale invariant feature transformScale invariant feature transform
Scale invariant feature transform
 
Computer Vision image classification
Computer Vision image classificationComputer Vision image classification
Computer Vision image classification
 
Darknet yolo
Darknet yoloDarknet yolo
Darknet yolo
 
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORK
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORKMULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORK
MULTI-CLASSIFICATION OF BRAIN TUMOR IMAGES USING DEEP NEURAL NETWORK
 
OpenCV Introduction
OpenCV IntroductionOpenCV Introduction
OpenCV Introduction
 
BOOK ON REIRRADIATION
BOOK ON REIRRADIATIONBOOK ON REIRRADIATION
BOOK ON REIRRADIATION
 
Computer vision
Computer visionComputer vision
Computer vision
 
Deep Generative Learning for All
Deep Generative Learning for AllDeep Generative Learning for All
Deep Generative Learning for All
 
Gowtham's 3rd radiobiology
Gowtham's  3rd radiobiology Gowtham's  3rd radiobiology
Gowtham's 3rd radiobiology
 
3D Gaussian Splatting
3D Gaussian Splatting3D Gaussian Splatting
3D Gaussian Splatting
 
DeepWalk: Online Learning of Representations
DeepWalk: Online Learning of RepresentationsDeepWalk: Online Learning of Representations
DeepWalk: Online Learning of Representations
 

Andere mochten auch

Face Recognition using OpenCV
Face Recognition using OpenCVFace Recognition using OpenCV
Face Recognition using OpenCVVasile Chelban
 
Semantic Web - Ontology 101
Semantic Web - Ontology 101Semantic Web - Ontology 101
Semantic Web - Ontology 101Luigi De Russis
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic WebLuigi De Russis
 
Introduction to OpenCV 3.x (with Java)
Introduction to OpenCV 3.x (with Java)Introduction to OpenCV 3.x (with Java)
Introduction to OpenCV 3.x (with Java)Luigi De Russis
 
Jena Programming
Jena ProgrammingJena Programming
Jena ProgrammingMyungjin Lee
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel HordesPyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordeskgrandis
 
Face Recognition with OpenCV and scikit-learn
Face Recognition with OpenCV and scikit-learnFace Recognition with OpenCV and scikit-learn
Face Recognition with OpenCV and scikit-learnShiqiao Du
 
Java and OWL
Java and OWLJava and OWL
Java and OWLRaji Ghawi
 

Andere mochten auch (8)

Face Recognition using OpenCV
Face Recognition using OpenCVFace Recognition using OpenCV
Face Recognition using OpenCV
 
Semantic Web - Ontology 101
Semantic Web - Ontology 101Semantic Web - Ontology 101
Semantic Web - Ontology 101
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
Introduction to OpenCV 3.x (with Java)
Introduction to OpenCV 3.x (with Java)Introduction to OpenCV 3.x (with Java)
Introduction to OpenCV 3.x (with Java)
 
Jena Programming
Jena ProgrammingJena Programming
Jena Programming
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel HordesPyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
 
Face Recognition with OpenCV and scikit-learn
Face Recognition with OpenCV and scikit-learnFace Recognition with OpenCV and scikit-learn
Face Recognition with OpenCV and scikit-learn
 
Java and OWL
Java and OWLJava and OWL
Java and OWL
 

Ähnlich wie Introduction to OpenCV (with Java)

Introduction to OpenCV
Introduction to OpenCVIntroduction to OpenCV
Introduction to OpenCVLuigi De Russis
 
OpenCV (Open source computer vision)
OpenCV (Open source computer vision)OpenCV (Open source computer vision)
OpenCV (Open source computer vision)Chetan Allapur
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...Edge AI and Vision Alliance
 
Image Detection and Count Using Open Computer Vision (Opencv)
Image Detection and Count Using Open Computer Vision (Opencv)Image Detection and Count Using Open Computer Vision (Opencv)
Image Detection and Count Using Open Computer Vision (Opencv)IJERA Editor
 
Introduction to OpenCV 2.3.1
Introduction to OpenCV 2.3.1Introduction to OpenCV 2.3.1
Introduction to OpenCV 2.3.1Luigi De Russis
 
OpenCV+Android.pptx
OpenCV+Android.pptxOpenCV+Android.pptx
OpenCV+Android.pptxVishwas459764
 
16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docxssuser90e017
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.orgEdge AI and Vision Alliance
 
Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Agustin Aboytes
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerAMD Developer Central
 
_OOP with JAVA Solution Manual (1).pdf
_OOP with JAVA Solution Manual (1).pdf_OOP with JAVA Solution Manual (1).pdf
_OOP with JAVA Solution Manual (1).pdfvanithagp1
 
502021435-12345678Minor-Project-Ppt.pptx
502021435-12345678Minor-Project-Ppt.pptx502021435-12345678Minor-Project-Ppt.pptx
502021435-12345678Minor-Project-Ppt.pptxshrey4922
 
Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCVAutomatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCVEditor IJCATR
 
Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV Editor IJCATR
 
00 intro to java
00 intro to java00 intro to java
00 intro to javaDeia Abdullah
 
OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012Wingston
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio
 
Making php see, confoo 2011
Making php see, confoo 2011 Making php see, confoo 2011
Making php see, confoo 2011 Bachkoutou Toutou
 
JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfSathwika7
 

Ähnlich wie Introduction to OpenCV (with Java) (20)

Introduction to OpenCV
Introduction to OpenCVIntroduction to OpenCV
Introduction to OpenCV
 
OpenCV (Open source computer vision)
OpenCV (Open source computer vision)OpenCV (Open source computer vision)
OpenCV (Open source computer vision)
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
 
Image Detection and Count Using Open Computer Vision (Opencv)
Image Detection and Count Using Open Computer Vision (Opencv)Image Detection and Count Using Open Computer Vision (Opencv)
Image Detection and Count Using Open Computer Vision (Opencv)
 
Introduction to OpenCV 2.3.1
Introduction to OpenCV 2.3.1Introduction to OpenCV 2.3.1
Introduction to OpenCV 2.3.1
 
OpenCV+Android.pptx
OpenCV+Android.pptxOpenCV+Android.pptx
OpenCV+Android.pptx
 
16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
 
Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
 
_OOP with JAVA Solution Manual (1).pdf
_OOP with JAVA Solution Manual (1).pdf_OOP with JAVA Solution Manual (1).pdf
_OOP with JAVA Solution Manual (1).pdf
 
502021435-12345678Minor-Project-Ppt.pptx
502021435-12345678Minor-Project-Ppt.pptx502021435-12345678Minor-Project-Ppt.pptx
502021435-12345678Minor-Project-Ppt.pptx
 
Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCVAutomatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV
 
Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV
 
00 intro to java
00 intro to java00 intro to java
00 intro to java
 
OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for Linux
 
Making php see, confoo 2011
Making php see, confoo 2011 Making php see, confoo 2011
Making php see, confoo 2011
 
JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdf
 

Mehr von Luigi De Russis

Assessing Virtual Assistant Capabilities with Italian Dysarthric Speech
Assessing Virtual Assistant Capabilities with Italian Dysarthric SpeechAssessing Virtual Assistant Capabilities with Italian Dysarthric Speech
Assessing Virtual Assistant Capabilities with Italian Dysarthric SpeechLuigi De Russis
 
Semantic Web: an Introduction
Semantic Web: an IntroductionSemantic Web: an Introduction
Semantic Web: an IntroductionLuigi De Russis
 
AmI 2017 - Python intermediate
AmI 2017 - Python intermediateAmI 2017 - Python intermediate
AmI 2017 - Python intermediateLuigi De Russis
 
AmI 2017 - Python basics
AmI 2017 - Python basicsAmI 2017 - Python basics
AmI 2017 - Python basicsLuigi De Russis
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introductionLuigi De Russis
 
AmI 2016 - Python basics
AmI 2016 - Python basicsAmI 2016 - Python basics
AmI 2016 - Python basicsLuigi De Russis
 
Ambient Intelligence: An Overview
Ambient Intelligence: An OverviewAmbient Intelligence: An Overview
Ambient Intelligence: An OverviewLuigi De Russis
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with GitLuigi De Russis
 
LAM 2015 - Social Networks Technologies
LAM 2015 - Social Networks TechnologiesLAM 2015 - Social Networks Technologies
LAM 2015 - Social Networks TechnologiesLuigi De Russis
 
AmI 2015 - Python basics
AmI 2015 - Python basicsAmI 2015 - Python basics
AmI 2015 - Python basicsLuigi De Russis
 
PowerOnt: an ontology-based approach for power consumption estimation in Smar...
PowerOnt: an ontology-based approach for power consumption estimation in Smar...PowerOnt: an ontology-based approach for power consumption estimation in Smar...
PowerOnt: an ontology-based approach for power consumption estimation in Smar...Luigi De Russis
 
Interacting with Smart Environments - Ph.D. Thesis Presentation
Interacting with Smart Environments - Ph.D. Thesis PresentationInteracting with Smart Environments - Ph.D. Thesis Presentation
Interacting with Smart Environments - Ph.D. Thesis PresentationLuigi De Russis
 
Semantic Web: an introduction
Semantic Web: an introductionSemantic Web: an introduction
Semantic Web: an introductionLuigi De Russis
 
Living in Smart Environments - 3rd year PhD Report
Living in Smart Environments - 3rd year PhD ReportLiving in Smart Environments - 3rd year PhD Report
Living in Smart Environments - 3rd year PhD ReportLuigi De Russis
 
Semantic Web: an introduction
Semantic Web: an introductionSemantic Web: an introduction
Semantic Web: an introductionLuigi De Russis
 
Social Network Technologies
Social Network TechnologiesSocial Network Technologies
Social Network TechnologiesLuigi De Russis
 
Living in Smart Environments - 2nd year PhD Report
Living in Smart Environments - 2nd year PhD ReportLiving in Smart Environments - 2nd year PhD Report
Living in Smart Environments - 2nd year PhD ReportLuigi De Russis
 
Installing OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtInstalling OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtLuigi De Russis
 
dWatch: a Personal Wrist Watch for Smart Environments
dWatch: a Personal Wrist Watch for Smart EnvironmentsdWatch: a Personal Wrist Watch for Smart Environments
dWatch: a Personal Wrist Watch for Smart EnvironmentsLuigi De Russis
 

Mehr von Luigi De Russis (20)

Assessing Virtual Assistant Capabilities with Italian Dysarthric Speech
Assessing Virtual Assistant Capabilities with Italian Dysarthric SpeechAssessing Virtual Assistant Capabilities with Italian Dysarthric Speech
Assessing Virtual Assistant Capabilities with Italian Dysarthric Speech
 
Semantic Web: an Introduction
Semantic Web: an IntroductionSemantic Web: an Introduction
Semantic Web: an Introduction
 
AmI 2017 - Python intermediate
AmI 2017 - Python intermediateAmI 2017 - Python intermediate
AmI 2017 - Python intermediate
 
AmI 2017 - Python basics
AmI 2017 - Python basicsAmI 2017 - Python basics
AmI 2017 - Python basics
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introduction
 
AmI 2016 - Python basics
AmI 2016 - Python basicsAmI 2016 - Python basics
AmI 2016 - Python basics
 
Ambient Intelligence: An Overview
Ambient Intelligence: An OverviewAmbient Intelligence: An Overview
Ambient Intelligence: An Overview
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
LAM 2015 - Social Networks Technologies
LAM 2015 - Social Networks TechnologiesLAM 2015 - Social Networks Technologies
LAM 2015 - Social Networks Technologies
 
AmI 2015 - Python basics
AmI 2015 - Python basicsAmI 2015 - Python basics
AmI 2015 - Python basics
 
PowerOnt: an ontology-based approach for power consumption estimation in Smar...
PowerOnt: an ontology-based approach for power consumption estimation in Smar...PowerOnt: an ontology-based approach for power consumption estimation in Smar...
PowerOnt: an ontology-based approach for power consumption estimation in Smar...
 
Interacting with Smart Environments - Ph.D. Thesis Presentation
Interacting with Smart Environments - Ph.D. Thesis PresentationInteracting with Smart Environments - Ph.D. Thesis Presentation
Interacting with Smart Environments - Ph.D. Thesis Presentation
 
Semantic Web: an introduction
Semantic Web: an introductionSemantic Web: an introduction
Semantic Web: an introduction
 
Living in Smart Environments - 3rd year PhD Report
Living in Smart Environments - 3rd year PhD ReportLiving in Smart Environments - 3rd year PhD Report
Living in Smart Environments - 3rd year PhD Report
 
Semantic Web: an introduction
Semantic Web: an introductionSemantic Web: an introduction
Semantic Web: an introduction
 
Social Network Technologies
Social Network TechnologiesSocial Network Technologies
Social Network Technologies
 
Clean Code
Clean CodeClean Code
Clean Code
 
Living in Smart Environments - 2nd year PhD Report
Living in Smart Environments - 2nd year PhD ReportLiving in Smart Environments - 2nd year PhD Report
Living in Smart Environments - 2nd year PhD Report
 
Installing OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtInstalling OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with Qt
 
dWatch: a Personal Wrist Watch for Smart Environments
dWatch: a Personal Wrist Watch for Smart EnvironmentsdWatch: a Personal Wrist Watch for Smart Environments
dWatch: a Personal Wrist Watch for Smart Environments
 

KÃŧrzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraÃējo
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

KÃŧrzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Introduction to OpenCV (with Java)

  • 1. Computer Vision Luigi De Russis Introduction to OpenCV
  • 2. 2 OpenCâ€Ļ what? OpenCV in brief Introduction to OpenCV 07/11/2013
  • 3. What is OpenCV? 3 ī‚¨ Open source Computer Vision library BSD License ī‚¤ http://opencv.org ī‚¤ ī‚¨ ī‚¨ ī‚¨ Originally developed by Intel Has more than 2500 optimized algorithms Supports a lot of different languages C, C++, Python, Java ī‚¤ but is written natively in C++ ī‚¤ ī‚¨ Cross platform ī‚¤ also available for Android and iOS Introduction to OpenCV 07/11/2013
  • 4. What it is used for? 4 ī‚¨ ī‚¨ ī‚¨ ī‚¨ ī‚¨ ī‚¨ ī‚¨ ī‚¨ ī‚¨ Human-Computer Interaction (HCI) Object Identification Object Recognition Face Recognition Gesture Recognition Motion Tracking Image Processing Mobile Robotics â€Ļ and so on Introduction to OpenCV 07/11/2013
  • 5. 5 Motivations - OpenCV Always ask “why?” Introduction to OpenCV 07/11/2013
  • 7. OpenCV: pros 7 ī‚¨ Specificity ī‚¤ OpenCV was made for image processing ī‚¤ Matlab is quite generic ī‚¨ Speed ī‚¤ 30+ frames processed per seconds in real time image processing with OpenCV ī‚¤ around 4-5 frames processed per seconds in real time image processing with Matlab ī‚¨ Efficient ī‚¤ Matlab Introduction to OpenCV needs more system resources than OpenCV 07/11/2013
  • 8. OpenCV: cons 8 ī‚¨ Easy of use ī‚¤ Matlab ī‚¨ won hands down! Integrated Development Environment (IDE) ī‚¤ you can use Eclipse, Netbeans, Visual Studio, Qt, XCode, â€Ļ even a simple text editor for OpenCV ī‚¤ Matlab has is own IDE ī‚¨ Memory management Introduction to OpenCV 07/11/2013
  • 9. OpenCV: pros (final) 9 ī‚¨ ī‚¨ Price (!) OpenCV Wrappers ī‚¤ SimpleCV, ī‚¨ Emgu CV, ruby-opencvâ€Ļ More similar to industry-level frameworks Introduction to OpenCV 07/11/2013
  • 10. 10 Motivation - Java When Java meets OpenCV Introduction to OpenCV 07/11/2013
  • 11. Some factsâ€Ļ 11 ī‚¨ The OpenCV APIs have few capabilities for user interfaces ī‚¤ i.e. you can open a window with an image inside. Do you want a button? You cannot have it! ī‚¤ to have a “decent” user interface you need to install “something else” (e.g., Qt for C++)â€Ļ ī‚¤ â€Ļ and then compile OpenCV for adding Qt support ī‚¨ C++ learning curve is quiteâ€Ļ steep ī‚¤ source: experiences from teaching this course in the last years Introduction to OpenCV 07/11/2013
  • 12. Some (other) factsâ€Ļ 12 ī‚¨ OpenCV C++ APIs exists since OpenCV 1.0 ī‚¤ It is possible, but not recommended, to “mix” different OpenCV version ī‚¤ Typically, it is a good way to get into trouble! ī‚¨ It is possible to use OpenCV C APIs together with C++ APIs ī‚¤ Typically Introduction to OpenCV it is a good way to get into trouble! 07/11/2013
  • 13. Some (other) factsâ€Ļ 13 ī‚¨ OpenCV C++ API exists since OpenCV 1.0 ī‚¤ It is possible, but not recommended, to “mix” different OpenCV version ī‚¤ Typically, it is a good way to get into trouble! Yeah, some students did it! ī‚¨ It is possible to use OpenCV C APIs together with C++ APIs ī‚¤ Typically Introduction to OpenCV it is a good way to get into trouble! 07/11/2013
  • 14. A better world is possible? 14 ī‚¨ OpenCV provides also the Java APIs nothing to compile (on Windows) ī‚¤ they works on Android, also ī‚¤ ī‚¨ Java 7 has a first-grade user interface not Swing, but JavaFX ī‚¤ http://www.oracle.com/technetwork/java/javafx ī‚¤ ī‚¨ ī‚¨ Almost everybody here should have some (basic) experience with Java Performance between the C++ APIs and the Java APIs are comparable Introduction to OpenCV 07/11/2013
  • 15. A better world is possible? 15 ī‚¨ The OpenCV Java APIs are almost identical to the C++ version knowledge can be transferred! ī‚¤ examples: ī‚¤ to store an image in memory both use the Mat object īŽ to write an image on disk both use the imwrite method īŽ ī‚¨ Something change a bit ī‚¤ examples: īŽ CV_RGB2GRAY (C++) becomes COLOR_RGB2GRAY (Java) īŽ Point, Point2d, Point2f (C++) becomes 3 overloaded constructor of Point (Java) Introduction to OpenCV 07/11/2013
  • 16. A better world is possible? 16 ī‚¨ Question: ī‚¤ is OpenCV with Java/JavaFX the “best” solution for every application? Introduction to OpenCV 07/11/2013
  • 17. A better world is possible? 17 ī‚¨ Question: ī‚¤ is OpenCV with Java/JavaFX the “best” solution for every application? ī‚¨ Response: ī‚¤ No, obviously ī‚¤ Do you need a GUI? Go with JavaFX! ī‚¤ Do you have memory constraint? Go with C/C++! ī‚¤â€Ļ ī‚¤ Please, no extremism! Introduction to OpenCV 07/11/2013
  • 18. 18 OpenCV meets Java Getting started with OpenCV and Java Introduction to OpenCV 07/11/2013
  • 19. Modules 19 OpenCV has a modular structure: the package includes several shared or static libraries ī‚¨ core ī‚¤ ī‚¨ imgproc ī‚¤ ī‚¨ basic structures and algorithms image processing algorithms (such as image filtering, geometrical image transformations, histograms, etc.) video ī‚¤ video analysis (such as motion estimation and object tracking) Introduction to OpenCV 07/11/2013
  • 20. Modules 20 ī‚¨ highgui ī‚¤ ī‚¨ calib3d ī‚¤ ī‚¨ camera calibration and 3D reconstruction features2d ī‚¤ ī‚¨ basic operation to read/write/encode images; in C, C++ and Python it provides also basic UI capabilities 2D features framework (feature detectors, descriptors, and descriptor matchers) objdetect ī‚¤ detection of objects and other items (e.g., faces, eyes, mugs, people, â€Ļ) Introduction to OpenCV 07/11/2013
  • 21. Modules 21 ī‚¨ ml ī‚¤ machine learning classes used for statistical classification, regression and clustering of data ī‚¨ gpu ī‚¤ GPU-accelerated ī‚¨ photo ī‚¤ computational ī‚¨ algorithms photography ccl ī‚¤ OpenCL-accelerated Introduction to OpenCV algorithms 07/11/2013
  • 22. Data Structures 22 ī‚¨ ī‚¨ ī‚¨ We speak about Java API All the OpenCV classes and methods are placed into the org.opencv.* packages Mat ī‚¤ the primary image structure in OpenCV 2.x ī‚¤ overcomes the “old” IplImage/CvMat problems (OpenCV 1.x/C API) ī‚¤ automatic memory management (more or less in C++) ī‚¤ two data parts: matrix header (contains information about the matrix) īŽ a pointer to the matrix containing the pixel values īŽ Introduction to OpenCV 07/11/2013
  • 23. Data Structures 23 ī‚¨ Point ī‚¤ 2D point ī‚¤ defined by x, y coordinates īŽ ī‚¨ ī‚¨ Point first = new Point(2, 3); Size ī‚¤ 2D size structure ī‚¤ specify the size (width and height) of an image or rectangle Rect ī‚¤ 2D rectangle object Introduction to OpenCV 07/11/2013
  • 24. Basic Image I/O 24 ī‚¨ Highgui.imread ī‚¤ loads an image from file and return the corresponding Mat object Mat Highgui.imread(String filename, int flags) ī‚¨ Highui.imwrite ī‚¤ save an image on disk bool Highgui.imwrite(String filename, Mat img, MatOfInt params) Introduction to OpenCV 07/11/2013
  • 25. Basic Drawing Operations 25 ī‚¨ ī‚¨ ī‚¨ ī‚¨ Core.circle ī‚¤ draws a simple or filled circle with a given center and radius on a given image Core.line ī‚¤ draws a line between two point in the given image Core.ellipse ī‚¤ draws an ellipse outline, a filled ellipse, an elliptic arc, a filled ellipse sector, â€Ļ Core.rectangle ī‚¤ draws a rectangle outline or a filled rectangle ī‚¤ note that negative thickness will fill the rectangle Introduction to OpenCV 07/11/2013
  • 26. Color Spaces 26 ī‚¨ Imgproc.cvtColor ī‚¤ ī‚¤ converts an input image from one color space to another examples: īŽ īŽ īŽ ī‚¨ cvtColor(src, dest, Imgproc.COLOR_RGB2GRAY); cvtColor(src, dest, Imgproc.COLOR_HSV2BGR); cvtColor(src, dest, Imgproc.COLOR_RGB2BGR); Important! Images in OpenCV uses BGR instead of RGB Introduction to OpenCV 07/11/2013
  • 27. 27 Let’s get practical! Getting started (without going crazy) Introduction to OpenCV 07/11/2013
  • 28. How can we use OpenCV? 28 ī‚¨ LABINF: ī‚¤ already installed under Windows ī‚¤ version 2.4.6 ī‚¤ Eclipse (Kepler) is the IDE ī‚¨ At home: ī‚¤ you can use whatever IDE you like ī‚¤ but we give full support only for Eclipse ī‚¨ Installation: ī‚¤ see the PDF document in the teaching portal Introduction to OpenCV 07/11/2013
  • 29. What if I got problems? 29 ī‚¨ Small problems ī‚¤ drop me a line īŽ ī‚¨ luigi.derussis@polito.it Normal problems Problems with JavaFX and a gray scale image Awesome student to me Hi, [â€Ļ] I’m using “cvtColor(image, gray, COLOR_BGR2GRAY);” but it give this exception: [â€Ļ] Can you help me? come to office hours ī‚¤ every Wednesday, 9:00 - 11:00 ī‚¤ LAB6, second floor of DAUIN ī‚¤ please send an e-mail beforehand ī‚¤ ī‚¨ Regards, â€Ļ Enormous problems pray? ī‚¤ no, seriously, we can schedule an extra “lesson” ī‚¤ Introduction to OpenCV 07/11/2013
  • 30. What if I got problems? 30 OpenCV installation ī‚¨ Small problems ī‚¤ drop me a line īŽ ī‚¨ luigi.derussis@polito.it Normal problems Not-So-Awesome student to me Hi, [â€Ļ] I followed the guide for installing OpenCV on my Mac but I have an error after step 3. Can we meet on next Wednesday to solve the problem? Thanks! Regards, â€Ļ come to office hours ī‚¤ every Wednesday, 9:00 - 11:00 ī‚¤ LAB6, second floor of DAUIN ī‚¤ please send an e-mail beforehand ī‚¤ ī‚¨ Enormous problems pray? ī‚¤ no, seriously, we can schedule an extra “lesson” ī‚¤ Introduction to OpenCV 07/11/2013
  • 31. What if I got problems? 31 ī‚¨ Small problems ī‚¤ drop me a line īŽ ī‚¨ luigi.derussis@polito.it Normal problems come to office hours ī‚¤ every Wednesday, 9:00 - 11:00 ī‚¤ LAB6, second floor of DAUIN ī‚¤ please send an e-mail beforehand ī‚¤ Help with OpenCV Good student to me Hi, [â€Ļ] I see the solution of Exercise 2.1 but I don’t understand the following expressions: main(); System.out.println(); @Override. Can you explain to me what they are? ī‚¨ Enormous problems Regards, â€Ļ pray? ī‚¤ no, seriously, we can schedule an extra “lesson” ī‚¤ Introduction to OpenCV 07/11/2013
  • 32. An e-mail not to be sent! 32 Introduction to OpenCV 07/11/2013
  • 33. Useful Resourcesâ€Ļ 33 ī‚¨ OpenCV Wiki ī‚¤ ī‚¨ OpenCV Official Documentation ī‚¤ ī‚¨ http://answers.opencv.org/questions/ OpenCV Javadocs ī‚¤ ī‚¨ http://docs.opencv.org/ User Q&A forum ī‚¤ ī‚¨ http://code.opencv.org/projects/opencv/wiki http://docs.opencv.org/java/ JavaFX Documentation ī‚¤ http://www.oracle.com/technetwork/java/javafx/document ation Introduction to OpenCV 07/11/2013
  • 34. 34 Demo Hour Put everything together Introduction to OpenCV 07/11/2013
  • 35. License 35 ī‚¨ ī‚¨ This work is licensed under the Creative Commons “AttributionNonCommercial-ShareAlike Unported (CC BY-NC-SA 3,0)” License. You are free: ī‚¤ ī‚¤ ī‚¨ Under the following conditions: ī‚¤ ī‚¤ ī‚¤ ī‚¨ to Share - to copy, distribute and transmit the work to Remix - to adapt the work Attribution - You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial - You may not use this work for commercial purposes. Share Alike - If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ Introduction to OpenCV 07/11/2013