Skip to content


My New OpenCV Computer Vision Application Programming Video Course

OpenCV_Computer_Vision_Application_ProgrammingAfter writing articles helping people to install OpenCV here on this blog, some asked me to share a little more about OpenCV, not just the installation part. I started thinking about a way to deliver this information when suddenly Packt publishing contacted me about making a video course tutorial for OpenCV. I knew it was the perfect solution, so after some work, it was finally published at Packt.

This video course starts right at the beginning, with an explanation of what OpenCV is and its installation. Then, you learn all the basics of OpenCV, followed by some of the basics of image processing. Then, you will be ready to detect objects, recognize faces, train your own detector, remove distortion from your photos, and play with images in 3D.

Here are the things that you will learn with this video course:

  • Learn what OpenCV is and how to install it on Linux and Windows
  • Development with OpenCV using the recommended C++ interface, as well as an introduction to the Python and C interfaces.
  • Segment objects in your images using grabcut and watershed, cluster your data, and spot interesting points in the image
  • Merge different images into a single panorama using the technique called panorama stitching
  • Detect common objects in your images, like faces, eyes, or people
  • Train your own object detector to detect custom objects
  • Recognize a face among many others
  • Learn to calibrate your camera
  • Remove or reduce the distortion of an image caused by the lens, commonly known as barrel distortion
  • Change the perspective of an image to match a different 3D pose
  • Create an image that represents depth information of the scene using stereoscopic images

This is an easy to follow video course for people that are just starting with OpenCV. Even people that are used to OpenCV may benefit from some of the more advanced videos since you can just pick and choose which video you want to learn from.

Posted in Computer Vision, Open Source, OpenCV, Programming.


29 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. jason says

    hey i would love to learn more by watching this video but first, i need to make sure, does it have subtitles or a transcript? im deaf and need that.. i checked out the sample and youtube’s automatic captions is not really good enough…

  2. samontab says

    Hello jason,

    Right now it does not have subtitles or transcripts as far as I know. Nevertheless, I contacted Packt (the publisher) and asked about it, maybe they could help with this.
    Thanks for your question.

  3. Michael Wahl says

    Hi Sebastian,

    I am working through your nice video and the source code. Unfortunately, there is some source code missing (the folder for Chapter 7.1: “Calibrating your camera” only contains the pattern). I would appreciate your help.

    Thanks,

    Michael

  4. samontab says

    Hello Michael,

    I’m happy to hear that you have liked my video course so far.

    For the particular video that you are referring to (7.1 – Calibrating your camera) I do not use any custom source code, that’s why no source code was provided for the video. I only use built samples that come directly from OpenCV, specifically imagelist_creator, and calibration. So you should be able to calibrate your camera without doing any coding at all!

    If for some reason you want to access the source code files for those utilities, you can get them from the C++ samples directory of OpenCV:

    ~/OpenCV-2.4.1/samples/cpp/calibration.cpp
    ~/OpenCV-2.4.1/samples/cpp/imagelist_creator.cpp

    I hope it helps!

  5. Michael Wahl says

    Got it! Thanks a lot.

    Michael

  6. samontab says

    You are welcome Michael!

  7. JinTa Huang says

    Hi, samontab

    I also buy your video, and it’s great.

    By the way, how can I get the 4 input test image in section “5.1 Creating a Panorama”?

  8. samontab says

    Thanks JinTa Huang!,

    I am glad you liked the video course.
    You can get the pictures from here:
    http://www.samontab.com/web/files/stitch.zip

  9. Captain says

    Thanks..

  10. Cesco says

    Hola Sebastian,
    Glad to see you having done the set of videos. I have been following your blog before I bought your set of videos from packt and I am enjoying them so far. I have been following your tutorials line by line, and in chapter 2 and 3, I have been getting the following error every time I try to run the C++ executables. I am running Linux Ubuntu 12.04:

    “OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /home/cesco/OpenCV-2.4.1/modules/core/src/array.cpp, line 2482
    terminate called after throwing an instance of ‘cv::Exception’
    what(): /home/cesco/OpenCV-2.4.1/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat”

    It does not happen within the python interface. They are running smoothly so far.
    Please let me know what you think.
    thanks,
    Cesco

  11. Cesco says

    Hi Sebastian,
    I was able to find the problem. The path to the image was not properly defined. Your code was fine. It was my error.
    ciao,
    Cesco

  12. samontab says

    You are welcome Captain!

  13. samontab says

    Hello Cesco,

    I am very happy that you have been enjoying the video course, and it is great to hear that you already solved your problem.
    Happy learning.

  14. samontab says

    Awesome.

  15. Ahmed says

    Hello i am from kurdistan-iraq , i want to learn from your videos , but is it for free , coz i dont have any credit card , in iraq we dont have it , so i cant pay , i wondered if you i could get it for free , i will use it for my last year project , i need it very much , and thank you …

  16. samontab says

    Hello Ahmed,

    Unfortunately the video is not free. You can try contacting the publisher directly to see how to arrange a different form of payment. Sorry about that.

    To make it up for you, here you can grab a free book about computer vision:
    http://szeliski.org/Book/

  17. TOMAS says

    Hi Sebastian,

    i am new in OpenCV so i bought your video tutorials to help me with my work. But i just wanna ask you for an advice. With my camera I want to detect in a room common things like tables, chairs, paintings on the wall, TV, clocks and so on.
    What TIPS, TECHNIQUES, OPENCV features or what would you recommend me to focus on to achieve this? I will be really grateful.
    Thank you very very much for your response.

    Tomas

  18. samontab says

    Hi Tomas,

    The first that I would do is think about the problem. Can it be solved with something else that is not computer vision?, maybe it is a really simple problem using other type of sensor or framing the problem in another context.
    Can you at least use 3d data?. Sometimes it is much easier to understand what is happening in the world when you actually have 3d data instead of just 2d data like images.
    If after thinking that you still need to solve that problem using computer vision, then I would suggest you to start reading about the feature detection module of opencv. That would give you a nice starting point.
    Also, take a look at the computer vision book from Szeliski, it will help you in your task. You can get a free copy here:
    http://szeliski.org/Book/

  19. tushant says

    before diving into the video tutorial i just want to know which programming is focused by you.IS it python or not because my main tool is python

  20. samontab says

    Hi tushant,

    The video tutorial explains the theory behind, as well as the implementation. In the first few videos the different OpenCV APIs are explained, C/C++, Python, etc. But after that, the rest of it is only in C++, the recommended language for using OpenCV right now. So, you will get to see how to install the library, and how to start doing things in OpenCV with Python, but the main focus of the tutorial is C++.

    Best Regards,
    Sebastian Montabone

  21. Shripad says

    Dear Sebastian, I am a student at India. I am trying to buy your video course online. But, somehow PayPal is not accepting the currency and credit card option is also not working. Could you pleas suggest me any other alternative to buy this course.

    Thank you.

    regards,
    Shripad

  22. Mayur says

    Hi sebastian…Its really Helpfull tutorial i followed it and it made possible to me to work seamlessly on Opencv for Imageprocessing applications.
    I wanted to capture and display Image from Webcam using Sample code provided in C
    i.e. facedetect.cpp
    It provide just change in command :

    ./facedetect –cascade=”/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml” –scale=1.5 lena.jpg

    what that change should be???

    Please suggest as fast as possible

    Thanking You,
    Mayur

  23. samontab says

    Hi Mayur,

    The sample code only reads an image, but you can easily change it to the webcam.
    Take a look at the other samples, like lkdemo.cpp which uses the camera by default.

  24. Hoth says

    Hi Sebastian – I purchased your videos and am enjoying them. However, I have run into an issue trying to compile the code in section 6 on recognizing objects. I’m getting errors such as:
    fatal error: opencv2/contrib/contrib.hpp: No such file or directory
    error: ‘createFisherFaceRecognizer’ was not declared in this scope

    I’m running opencv 3.0 on CentOS 7 and I figured out I must need to install the extra modules. I downloaded from https://github.com/Itseez/opencv_contrib and followed instructions and everything compiled fine but I still get the same errors.

    Would you know what I’m doing wrong? Thanks so much for the help!
    Hoth

  25. samontab says

    Hi Hoth,

    I am glad that you are enjoying the video course!.

    It seems that the face recognizer demo was relocated in OpenCV 3. To make it easy, just download OpenCV 2.11 and you should be able to follow the video course.
    The sample code is located here:
    opencv-2.4.11/samples/cpp/facerec_demo.cpp

  26. JP says

    Hi sebastien,

    In one of your other replies to a poster asking about detecting common objects in a room you say:
    “The first that I would do is think about the problem. Can it be solved with something else that is not computer vision?, maybe it is a really simple problem using other type of sensor or framing the problem in another context.
    Can you at least use 3d data?. Sometimes it is much easier to understand what is happening in the world when you actually have 3d data instead of just 2d data like images.”

    Can you point me to techniques using 3D data that might be useful?

  27. samontab says

    Hi JP,

    There are many techniques that can be directly applied to 3D, or even higher dimensions. Topics like PCA, clustering, and data mining in general can easily be used in the 3D case.

    There are also specific features that are used in 3D. Some examples of them are PFH (Point Feature Histogram), NARF (Normal Aligned Radial Feature), SHOT (Signatures of Histograms of Orientations), VFH (Viewpoint Feature Histogram), and many others.

  28. aditya says

    Hi Sebastian, I want to take the course, I need to know if the course also contains some information about AAM and Poseit ?

  29. samontab says

    Hello Aditya, this course in particular does not cover Active Appearance Model(AAM) or Posit.

    However, there is an example in OpenCV that covers Posit. You can see it in the examples section of my tutorial here:
    http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

    For a more general answer, these are the contents of the video course:

    1. Getting Started with OpenCV:
    Introduction to OpenCV
    Installation on Linux
    Installation on Windows

    2. OpenCV Basics:
    OpenCV Interfaces
    C Interface Basics
    C++ Interface Basics
    Python Interface Basics
    Drawing Shapes

    3. Image Processing:
    Blurring an Image
    Understanding Image Morphology
    Applying Geometric Transforms to an Image
    Understanding Histograms

    4. Segmenting Images and Obtaining Interesting Points:
    Clustering Data with k-means
    Segmenting an Image using the watershed algorithm
    Segmenting an Image Using the grabcut Algorithm
    Finding and Matching Interesting Points

    5. Computational Photography:
    Creating a Panorama
    Removing Unwanted Objects
    Enhancing Low Light Images
    Working with HDR Images

    6. Recognizing Objects:
    Detecting Shapes
    Detecting Faces
    Detecting People
    Training your own detector
    Recognizing faces

    7. Calibration and Stereo Images:
    Calibrating the Camera
    Undistorting an Image
    Projecting an Image
    Understanding Stereo Images
    Generating a Depth Map



Some HTML is OK

or, reply to this post via trackback.