CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016

Slides:



Advertisements
Similar presentations
Guy Griffiths. General purpose interpreted programming language Widely used by scientists and programmers of all stripes Supported by many 3 rd -party.
Advertisements

OpenCV Introduction Hang Xiao Oct 26, History  1999 Jan : lanched by Intel, real time machine vision library for UI, optimized code for intel 
CP411 Computer Graphics, Wilfrid Laurier University Introduction # 1 Welcome to CP411 Computer Graphics 2012 Instructor: Dr. Hongbing Fan Introduction.
HPCC Mid-Morning Break High Performance Computing on a GPU cluster Dirk Colbry, Ph.D. Research Specialist Institute for Cyber Enabled Discovery.
Python Jordan Miller and Lauren Winkleman CS 311 Fall 2011.
Cliff Rhyne and Jerry Fu June 5, 2007 Parallel Image Segmenter CSE 262 Spring 2007 Project Final Presentation.
INDEX ∞ Image Processing ∞ OpenCV ∞ Download & Setup ∞ Make Project ∞ Show Result ∞ Q & A Setup OpenCV & Tutorial.
CSC 110 A 1 CSC 110 Introduction to Python [Reading: chapter 1]
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
Programming Languages: Scratch Intro to Scratch. Lower level versus high level Clearly, lower level languages can be tedious Higher level languages quickly.
CSC 589 Introduction to Computer Vision Lecture 2 linear filtering Instructor: Bei Xiao Thursday, January 15th Salvador Dali “Gala Contemplating the Mediterranean.
Matlab for Engineers About Matlab Chapter 1. Matlab for Engineers What’s in this Chapter? What is Matlab? Student Edition of Matlab How is Matlab used.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Hands-on Introduction to R. We live in oceans of data. Computers are essential to record and help analyse it. Competent scientists speak C/C++, Java,
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Python – May 11 Briefing Course overview Introduction to the language Lab.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Delivering Business Value through IT Face feature detection using Java and OpenCV 1.
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
9/2/2015BCHB Edwards Introduction to Python BCHB524 Lecture 1.
Python & NetworkX Youn-Hee Han
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
How to Get Started With Python
Chapter 4 – Thread Concepts
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Python Data Analytics & Visualization
Chapter 1 Introduction.
Python Programming Unit -1.
Hand Gestures Based Applications
Development Environment
MET4750 Techniques for Earth System Modeling
Introduction to Python
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
GPUs: Not Just for Graphics Anymore
pycuda Jin Kwon Kim May 25, 2017 Hi my name is jin kwon kim.
MatLab Programming By Kishan Kathiriya.
Chapter 4 – Thread Concepts
Introduction to Python
OpenWells Cross-Platform Mobile Application
Course: Introduction to Computers
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
Processing Framework Sytse van Geldermalsen
5 SYSTEM SOFTWARE CHAPTER
Prepared by Kimberly Sayre and Jinbo Bi
Training on Real-time project With 100 % assistance support Training by IT professionals Trainers have 5+ years experience
SVTRAININGS. SVTRAININGS Python Overview  Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed.
Computational Photography
Chapter 4.
Using Tensorflow to Detect Objects in an Image
Torch 02/27/2018 Hyeri Kim Good afternoon, everyone. I’m Hyeri. Today, I’m gonna talk about Torch.
Introduction to MATLAB
Computer Science I CSC 135.
What Is a Program? A program is like an algorithm, but describes a process that is ready or can be made ready to run on a real computer Retrieved from:
Introduction to Python
CS 179 Project Intro.
Brief Intro to Python for Statistics
What's New in eCognition 9
Use of Python Scripts to Compare and Contrast Photo Images
5 SYSTEM SOFTWARE CHAPTER
THE REAL WORLD APPLICATIONS OF PYTHON. INTRODUCTION Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum.
Java Programming Introduction
Introduction to Python
Simulation And Modeling
CMPT 102 Introduction to Scientific Computer Programming
What's New in eCognition 9
What's New in eCognition 9
Chapter 1 Introduction.
Igor Stančin, Alan Jović to: {igor.stancin,
Presentation transcript:

CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016 I am going to give you a brief introduction on OpenCV and show some real time examples. For the last 15 minutes, I’ll talk a little about the monster in this box.

Introduction OpenCV is an image processing library created by Intel and later supported by Willow Garage and now maintained by Itseez. Available on Mac, Windows, Linux (Terminal environment). Works in C, C++, and Python ( What’s your favorite language?) Newest update is version 2.4.13 (Could be a good exam question…) Open Source and free (May have some commercial packages.) Easy to use and install (Really? We will see…) OpenCV was started at Intel in 1999 by Gary Bradsky and the first release came out in 2000. Vadim Pisarevsky joined Gary Bradsky to manage Intel’s Russian software OpenCV team. In 2005, OpenCV was used on Stanley, the vehicle who won 2005 DARPA Grand Challenge. Later its active development continued under the support of Willow Garage, with Gary Bradsky and Vadim Pisarevsky leading the project. Right now, OpenCV supports a lot of algorithms related to Computer Vision and Machine Learning and it is expanding day-by-day. Currently OpenCV supports a wide variety of programming languages like C++, Python, Java etc and is available on different platforms including Windows, Linux, OS X, Android, iOS etc. Also, interfaces based on CUDA and OpenCL are also under active development for high-speed GPU operations. OpenCV-Python is the Python API of OpenCV. It combines the best qualities of OpenCV C++ API and Python language.

I’m New to Python Python is a general purpose programming language Simplicity (syntax, variable) and code readability (forced indentation). Compared to other languages like C/C++, Python is slower. BUT it can be easily extended with C/C++. We can write computationally intensive codes in C/C++ and create a Python wrapper for it. This is how OpenCV-Python works. You DON’T need to understand how it works behind the scene. Python is a general purpose programming language started by Guido van Rossum, which became very popular in short time mainly because of its simplicity and code readability. It enables the programmer to express his ideas in fewer lines of code without reducing any readability. Compared to other languages like C/C++, Python is slower. But another important feature of Python is that it can be easily extended with C/C++. This feature helps us to write computationally intensive codes in C/C++ and create a Python wrapper for it so that we can use these wrappers as Python modules. This gives us two advantages: first, our code is as fast as original C/C++ code (since it is the actual C++ code working in background) and second, it is very easy to code in Python. This is how OpenCV-Python works, it is a Python wrapper around original C++ implementation. To get a complete picture of what is happening in background, a good knowledge of Python/C API is required. Good news is,

P-I-X-E-L-S What’s Numpy? Numpy is a highly optimized library for numerical operations. It gives a MATLAB-style syntax. (Have you used Matlab?) Matrix laboratory, optimized for (parallel) matrix operations. Array structure is important because digital images are 2D arrays of P-I-X-E-L-S All the OpenCV array structures are converted to-and-from Numpy arrays. You can use more convenient indexing system rather than using for loops. Matplotlib will be your tool to make more complex plots. 1 2 3 4 5 6 7 8 And the support of Numpy makes the task more easier. Numpy is a highly optimized library for numerical operations. It gives a MATLAB-style syntax. All the OpenCV array structures are converted to-and-from Numpy arrays. So whatever operations you can do in Numpy, you can combine it with OpenCV, which increases number of weapons in your arsenal. Besides that, several other libraries like SciPy, Matplotlib which supports Numpy can be used with this. So OpenCV-Python is an appropriate tool for fast prototyping of computer vision problems. Question: BigO notation for graphical problems Problem scale: Small to large (O(N^2)) performance concerns

Reading image (cv2, matplotlib) Reading video stream Drawing Demonstrations Reading image (cv2, matplotlib) Reading video stream Drawing Color channels Pixel operations Padding modes Threshold If you are really interested in developing algorithms, you may want to understand all the math behind the functions. But for this class, we want to focus more on using computer vision algorithms to make useful applications. You do need to understand the input and output arguments of each library function, but the more important skill is to link them seamlessly. Above are basic operations on images and you’re expected to understand every line of the code and write your own functions.

Demonstrations Transform Edge detection Hybrid image Fourier transform Template matching Line detection Foreground removal Object recognition ...