2. About OpenCV
●
Open Source Computer Vision library
●
Real-time Computer vision library
●
Started by Intel Russia, launched in 1999
●
2000 : First alpha release
●
2006: First stable release
●
2009: Second major release
http://www.qboticslabs.com
3. About OpenCV
●
2012 : opencv -> opencv.org
●
Current version : OpenCV 3.0 beta
●
Opensource BSD license
●
Cross platform
●
Now supporting by Willow Garage and Itseez
http://www.qboticslabs.com
4. About OpenCV
●
Written in C++ and C
●
Full Interfaces for Python, Java, Matlab/
Octave
●
Wrappers in C#, Perl, Ruby
●
OS Support : Windows, Linux, Android, Maemo,
FreeBSD, IOS, OS X, BlackBerry 10
http://www.qboticslabs.com
5. Applications of OpenCV
●
Gesture recognition
●
Human-computer interaction(HCI)
●
Mobile robotics
●
Segmentation and recognition
●
Motion tracking
●
Augmented reality
●
Machine learning
http://www.qboticslabs.com
24. Compile code without Eclipse
●
Save code as .cpp using an text editor
●
Compile using following command
● $ g++ <input_file.cpp> `pkg-config
opencv –cflags –libs` -o
<output_name>
● $ ./output_name
25. OpenCV Modules
●
OpenCV has modular structure
●
OpenCV contain several shared/static libraries
● Core : Contain basic image data structure such as
Mat
● Imgproc : image processing module contain linear
and non linear filter, color space conversion,
histogram etc
● Video : Motion estimation, background substraction,
object tracking algorithms etc
26. OpenCV Modules
● Calib3d : mainly for camera calibration
● Features2d : contain feature detectors,
descriptors and descriptor matchers
● Objdetect: contain object detection algorithms
● Highgui: contain UI functionality to handle video
and image
● Gpu : GPU-accelerated algorithms
31. Reading a Video
OpenCV Header Files Used
● #include <opencv2/highgui/highgui.hpp>
OpenCV API's used
● VideoCapture cap(argv[1])
● waitKey(30)
32. Reading from Camera
OpenCV Header Files Used
● #include <opencv2/highgui/highgui.hpp>
OpenCV API's used
● VideoCapture cap(argv[1])
● waitKey(30)
33. Reading Pixel from Image and
Mouse Interaction
OpenCV Header Files Used
● #include <opencv2/highgui/highgui.hpp>
OpenCV API's used
● image.at<uchar>(y,x);
● image.at<Vec3b>(y,x)[0];
● setMouseCallback("Display window",
mouse_callback, NULL);
34. Working with Mat type
OpenCV Header Files Used
● #include <opencv2/highgui/highgui.hpp>
OpenCV API's used
● Mat red(480,640,CV_8UC3,Scalar(0,0,255));
● imwrite("red.jpg",red);
35. Adjusting brightness and contrast
OpenCV Header Files Used
● #include <opencv2/highgui/highgui.hpp>
OpenCV API's used
● new_image.at<Vec3b>(y,x)[c] =
saturate_cast<uchar>( alpha*( image.at<Vec3b>(y
,x)[c] ) + beta );
● Alpha = contrast
● Beta = Brightness
● saturate_cast ensure value is valid or not