theory behing open cv functions - opencv

I have used OpenCV library to for Stereo Camera Calibration and disparity map estimation. I used the tutorials available in OpenCV 3.3.1 documentation. For example, for disparity I have used the code from the following link:
https://docs.opencv.org/3.3.1/d3/d14/tutorial_ximgproc_disparity_filtering.html
It is working but I can't find detils of what is happenning in the functions used in the code such as left_matcher->computer or createdisparityWLSfilter. I want to read the theory behind these fucntion. So here I am looking for a good link or suggestion for that. I came across the following book:
http://shop.oreilly.com/product/0636920044765.do
But I am not sure if this is the correct resource to read about details of opencv function.
Any help is appreciated.

Related

OpenCV Sample Code in python

I'm trying to get a start on using opencv in python to do some object detection. Are there any example code projects out there?
I've seen some examples that are specific to face detection but they seem to use preprocessed data that I don't know how to generate.
Thanks!
There are a lot of examples, but I would suggest in any case to give a look at the following sources:
http://opencv-python-tutroals.readthedocs.org/en/latest/
http://www.pyimagesearch.com/

Haarcascades in opencv

I have seen multiple haarcascade xmls in opencv for face detection, eye detection , ear detection, Human body detection etc., But couldnt see proper documentation or explanation for these xmls.
For example in a application if I need to detect side faces which xml should I use and what are the parameters to be passed for detectMultiScale?
In some cases if I vary the parameters to detectMultiScale the false detections get reduced, but I did all the tests with trial and error method. I couldnt find any definite articles on explaining the use of each xml and parameters.
Can some one provide the documents on this if any, else some explanation on this would be grateful.
OpenCV has a built-in profile face classifier xml under "..\data\haarcascades". If you want to create your own cascade classifier, you should follow this procedure. Here is another link regarding that.
To learn about the detectMultiScale method, check out the documentation. To understand the how the classifier and its parameters work, check out the viola-jones (2001) article or its explanation.
Here is a paper by Vadim Pisarevsky, one of the OpenCV developers, which may be helpful, in understanding some of the parameters.
On the other hand, if using OpenCV is not a hard requirement, please take a look at vision.CascadeObjectDetector in the Computer Vision System Toolbox for Matlab, which provides the same functionality. It also saves you the trouble of figuring out which xml file to use for profile faces.

Feature extraction using wavelets and curvelets

I am involved in a project regarding image processing where I need to extract features of a given image. I am supposed to do that using wavelets and curvelets. But I cannot find any source where I can fully understand them. I have downloaded several journals and publications but couldn't figure out exactly how features are extracted using them.
Can someone explain how its done. Any tutorial that easily explains them is also welcome.
Thanks in advance.
If you are interested in image processing, you musst know the existance of the library OpenCV. This is the most usefull library for image processing.
In This library there is an implementation of Haar Wavelet transform, maybe that could interest you.
For all this kine of algorithms there is another powerfull source of data. That is Matworks File Exchange. This web page is a matlab open source platform. If you don't use matlab, you can see source codes provided on this web site to understand how does wavelet and curvelet works.
For example, this project may interest you :
http://www.mathworks.com/matlabcentral/fileexchange/33146-feature-extraction-using-multisignal-wavelet-packet-decomposition

How to use Opencv for Document Recognition with OCR?

I´m a beginner on computer vision, but I know how to use some functions on opencv. I´m tryng to use Opencv for Document Recognition, I want a help to find the steps for it.
I´m thinking to use opencv example find_obj.cpp , but the documents, for example passport, has some variables, name, birthdate, pictures. So, I need a help to define the steps for it, and if is possible how function I have to use on the steps.
I'm not asking a whole code, but if anyone has any example link or you can just type a walkthrough, it is of great help.
There are two very different steps involved here. One is detecting your object, and the other is analyzing it.
For object detection, you're just trying to figure out whether the object is in the frame, and approximately where it's located. The OpenCv features framework is great for this. For some tutorials and comprehensive sample code, see the OpenCv features2d tutorials and especially the feature matching tutorial.
For analysis, you need to dig into optical character recognition (OCR). OpenCv does not include OCR libraries, but I recommend checking out tesseract-ocr, which is a great OCR library. If your documents have a fixed structured (consistent layout of text fields) then tesseract-ocr is all you need. For more advanced analysis checking out ocropus, which uses tesseract-ocr but adds layout analysis.

Face Recognition in OpenCV

I was trying to build a basic Face Recognition system (PCA-Eigenfaces) using OpenCV 2.2 (from Willow Garage). I understand from many of the previous posts on Face Recognition that there is no standard open source library that can provide all the face recognition for you.
Instead, I would like to know if someone has used the functions(and integrated them):
icvCalcCovarMatrixEx_8u32fR
icvCalcEigenObjects_8u32fR
icvEigenProjection_8u32fR
et.al in the eigenobjects.cpp to form a face recognition system, because the functions seem to provide much of the required functionality along with cvSvd?
I am having a tough time trying to understand to do so since I am new to OpenCV.
Update: OpenCV 2.4.2 now comes with the very new cv::FaceRecognizer. Please see the very detailed documentation at:
http://docs.opencv.org/trunk/tutorial_face_main.html
I worked on a project with CV to recognize facial features. Most people don't understand the difference between Biometrics and Facial Recognition. There is a huge difference based on the fact that Biometrics is mainly based on histogram density matching while Facial Recognition implements this and vector support based on feature recognition from density. Check out the following link. This is the library you want to use if you are pursuing CV and Facial Recognition: www.betaface.com . Oleksander is awesome and based out of Germany, but he answers questions which is nice.
With OpenCV it's easy to get started with face detection. It comes with some predefined sets for feature detection, including face detection.
You might already know this one: OpenCV Wiki, FaceDetection
The important functions in this example are cvLoad and cvHaarDetectObjects. The first one loads the classifier and the second one applies it to an image.
The standard classifiers work pretty well. Of course you can train your own classifiers, if the standard ones don't fit your purpose.
As you said there are a lot of algorithms for face detection. Some of them might provide better results, but OpenCV is definitively a good start.

Resources