Opencv Learning Method

Source: Internet
Author: User
Tags api manual

1,Learning Method:

Http://www.opencv.org.cn/forum.php? MoD = viewthread & tid = 7055 & extra = & page = 1

First of all, let's talk about how to learn opencv. I remember that when I first went to the lab, my brother showed me opencv. At that time, my academic foundation was very poor and my programming skills were very good. So I felt helpless when I learned opencv, it is like an endless loop. If you want to view the Code through the algorithm, you will find that the algorithm will not; if you want to learn the algorithm through the code, you will find that you have little ability to read the code. Later, through continuous reading of articles (several articles will be recommended below for getting started with algorithms) and strengthening practical programming capabilities, we actually learned through opencv to implement some classic algorithms. We will find that opencv and Matlab are equally useful. However, opencv is a C/C ++ hybrid + template programming + N multiple pointers, it is really hard to see the code (I still haven't understood much about the code of many template classes and the call function of function pointers ). It will take time to read more code, which has three advantages: 1. More in-depth and practical understanding of algorithms, an in-depth understanding of algorithms refers to how to do a lot of detailed work in actual practice by looking at the code, actually, it means that the algorithm itself has some tips when implementing it. Some algorithms do not completely translate the algorithms, but some tips for practice in programming. 2. There are a lot of practical code in opencv that is not listed in the document (many functions start with _ icv, which is really worth seeing ). 3. Discover opencv bugs and make timely corrections to ensure the robustness of your programs. My opencv is very different from the one I just installed, that is, I occasionally find some problems in some places, then modify them, and then compile them directly. However, I didn't pay attention to saving the records, and I don't know where to change it now.

Recently, many people have asked me if there are any good articles and code about these items. I will summarize them here for your use (the listed articles can be obtained by Google ):
1. Use opencv for background modeling, but the code is difficult and the effect is average. Start by reading the code and try to write it by yourself.
Article: stauffer, Chris and Grimson, W. E. L. & quot; Adaptive Background Mixture Models for real-time tracking & quot;, computer vision and pattern recognition 1999
2. meanshift is used for tracking. opencv has the source code and Google "meanshift tracking"
3. Same as above, Google
4. Computer vision-a modern method
5. Kalman filter:

Http://en.wikipedia.org/wiki/Kalman_filter

MATLAB toolbox: <! -- M --> <a class = \ "postlink \" href = \ "http://www.cs.ubc.ca /~ Murphyk/software/Kalman/kalman.html> http://www.cs.ubc.ca /~ Murphyk/software/... alman.html </a> <! -- M -->
6. The visual algorithm and theory sections of the opencv Forum have code
Article: David Lowe's homepage:

Http://www.cs.ubc.ca /~ Lowe/

First, I would like to recommend a few articles for you to learn about opencv. These articles are some classic algorithms and they have already been put into practice on opencv. These algorithms are simple in principle and can be used as algorithms for learning opencv (learning code through algorithms ). The read Code mentioned here is to go deep into the function and understand the code running steps, instead of simply using individual functions:
1. Adaptive Background Mixture Models for real-time tracking ---> corresponding opencv code: cvgaussbgmodel.
2. Computer Vision Face Tracking as a component of a perceptual User Interface ---> cvcamshift.
3. The EM cluster ---> cvem algorithm is very simple. algorithms are introduced everywhere on the Internet.
4. Computer Vision book ---> cvfindhomography: calculates the projection transformation matrix of Images Based on Multiple points. Computer calibration and 3D reconstruction are often used.
5, an introduction to the Kalman Filter ---> cvkalman, etc.
6. Sift ---> the sift code of Rob Hess is placed on the top of the opencv algorithm version. It is worth noting that I personally feel very good about the sift code.
Write so much first, and the opencv implementation of these algorithms is fully understood. opencv is basically no problem.

As an open-source library for computer vision, opencv is powerful and practical. Let's share my experience with opencv.

At the beginning, it was because of college students' innovative projects that I started to contact when I was in my sophomore year. At that time, I had the basics of C ++ and Java. However, let me first explain how poorly I have learned both languages ~ Now that you want to learn the C ++ version of opencv API, you must master the basic knowledge of C ++, especially the basic principles of class and inheritance. Of course, the requirements are not very high, just understand. I am talking about having a Java Foundation. Instead of letting you learn Java, you can master the habit and ability of querying API manuals. That is, you may encounter classes or functions (methods) that you don't understand ), check the manual. I learned this kind of ability from Java class, so I will repeat it here.

The first book I got is learning opencv (Chinese version). This book is in the C language and classic. To be honest, I personally think it is not very helpful to me. In addition to reading images and videos, I also know some image processing functions, but nothing else. However, the principle in it is a good introduction, but for beginners, the effect may not be so good. Because there are too many things involved in it, I feel there is pressure to absorb it.

The C language version above is inconvenient to learn. For more information about C ++, we strongly recommend that you go to the opencv Chinese website http://www.opencv.org.cn/to learn about opencv. This website has a "Chinese tutorial" sub module (http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html), followed by this tutorial, step by step to learn, the foundation can be solid. This tutorial is very good. From the installation of opencv to the learning of various modules, there are concise explanations and example source code (many can be found in the built-in opencv routines ). If you are not familiar with some functions, you can go to the "Chinese Document" sub-module (http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html) to check. Of course, you can register an account on the Forum to communicate with others. We recommend a book, "opencv2 Computer Vision Programming Manual", Zhang Jing, Science Press. (Opencv2 is mainly for C ++)

In general, when learning opencv, avoid the following points:

  1. Have a certain C ++ Foundation and will consult the API manual;

  2. Learn how to install and configure the development environment;

  3. For each module, the core module is required (especially matrix processing), and basic image processing is also required;

  4. When learning and working, you must tap the code and read the routine;

  5. If you encounter any problems, check the manual, go to the Forum, and find resources online...

Well, I can only help you here. Wish you success ~ :) (P.s. It's late at night, but I typed it in one word ~)

Opencv Learning Method

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.