Feature detectors and describers are interesting topics in computer vision. People have found that detecting edges and corners in an image is useful for many different application, for instance, image matching, stitching, tracking etc. I was playing with the OpenCV image detectors today. This post is the outcome. Here I give the code and the performance of several feature detectors in my machine.
In the last post, we saw the basic methods to load and display matrices. Let us see some more aspects of an OpenCV matrix. Matrix Assignment and Cloning In opencv, the assignment (“=”) operator does not copy a matrix. It only attaches a new label or alias to a matrix. In c/c++ when we write A = B, we expect A and B to be two different variables with same value. However, in OpenCV, such an assignment operation will actually say that A and B are invariably the same matrix. This will be illustrated in the following opencv snippet.
I know many people will look at me in frowning eyes after reading the title. Yes, OpenCV is an image processing and computer vision library. But believe me, the most rudimentary works you need to do in these fields are essentially “Linear Algebra”. Think about an image — it is a matrix; and most of the time you’ll work on matrices. Even other data structures like vectors and points — all are some kind of matrices. Necessity of doing linear algebra is one of the main reasons for burgeoning MATLAB (which is an acronym for MATrix LABoratory) libraries for image processing. In fact, …
The new OpenCV C++ interface has made the process of image loading and display much easier. If you are a bit familiar with MATLAB then it is even more easier for you. Because in many cases, the MATLAB function names are directly used in OpenCV.
A snippet in OpenCV for some useful mathematical operations. It mostly focuses on the old opencv style matrix to new opencv style matrix conversion (and vice-versa) and some elementary mathematical operations. It also includes a trivial matrix display function. I’ll give a more robust matrix display function in future.
This tutorial guides you through the process of installing OpenCV 2.3.1 in windows using Visual Studio 10. OpenCV changes its installation process from version to version and sometimes make it too confusing to work properly. In this tutorial I’ll try to mention as much details as possible in the installation process of OpenCV.
I did not check with OpenCV for a few months. Today I noticed that a new version of OpenCV is released. This wonderful vision library is getting better and better in every release. Last time, I felt poorly about the documentation on OpenCV. I found most of its documents are just the comments provided during writing the codes which somebody has extracted using tools like Doxygen etc. Now in 2.3, the documentation page has been changed thoroughly. It has been divided into three major parts: API reference, User Guide and Tutorials. The tutorials part is open for anybody to contribute on a …
Suppose DoIt is a function that takes a cv::Mat as argument and suppose AMat is a cv::Mat. In openCV 2.1.0 [code lang=”cpp”] //You cannot do this DoIt(AMat*50.0); //Or this DoIt((cv::Mat)AMat*50.0); //You have to do either this: cv:Mat temp = AMat*50; DoIt(temp); //Or this DoIt((cv::Mat)(AMat*50.0)); //Or this DoIt(cv::Mat(AMat*50.0)); [/code]