Ask Your Question

uvts_cvs's profile - activity

2017-02-10 00:45:02 -0500 received badge  Notable Question (source)
2015-07-13 07:27:31 -0500 received badge  Nice Question (source)
2015-06-16 02:31:57 -0500 received badge  Popular Question (source)
2014-11-06 10:24:55 -0500 asked a question Does the calibration from circular pattern do any kind of correction to the centers of the circles?

According to the pinhole camera model, a circle in the 3D world will appear as an ellipse in the 2D image, it is well known that the center of the circle does not project to the center of the ellipse in the image, or, in other words

The center of the requisite ellipse does not correspond with the center of the circle being projected, but it displaced away from the vanishing point and toward the observer.

I think that the goal of findCirclesGrid is just to extract the centroids of the circles without any kind of corrections and it seems to me that calibrateCamera ignores the kind of used pattern: does calibrateCamera do any kind of corrections?

Some references:

HEIKKILA, Janne. Geometric camera calibration using circular control points.Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2000, 22.10: 1066-1077.

ZHANG, Guangjun; WEI, Zhenzhong. A position-distortion model of ellipse centre for perspective projection. Measurement Science and Technology, 2003, 14.8: 1420.

RUDAKOVA, Victoria; MONASSE, Pascal. Camera matrix calibration using circular control points and separate correction of the geometric distortion field. In: Computer and Robot Vision (CRV), 2014 Canadian Conference on. IEEE, 2014. p. 195-202.

2013-08-01 11:23:41 -0500 commented question Calc eucliadian distance between two single point ?

Just a comment about your euclideanDist function: if diff.x (or diff.y) is too big it can overflow and the function will give you an incorrect distance. You can avoid the problem using the C/C++ standard function called hypot or _hypot. For more info see

2013-07-22 07:00:03 -0500 received badge  Student (source)
2013-07-20 07:08:04 -0500 asked a question Is nonlinear minimization (like Levenberg–Marquardt) directly available?

I need to minimize a function f of 3 variables (or more). f has a particular form because it is a sum of squares of nonlinear function of the 3 variables, for example:

double f(double x1, double x2, double x3)
 double acc = 0;
 for ( size_t i = 0; i < N; i++ ) {
   acc += pow(g(x1,x2,x3,i),2);
 return acc;

std::vector< double > data;
double g(double x1, double x2, double x3, size_t i)
 return some nonlinear function of x1, x2, x3, data[i]

Is there any direct available algorithm for this kind of minimization?

For example I read here that the C++ class detail::BundleAdjusterBase uses Levenberg–Marquardt algorithm but it doesn't seem to me that this algorithm is directly available.

2013-04-10 12:32:23 -0500 commented answer angle estimation accuracy in C++ cv::phase

Is there any theoretic background? Or is it just a brute force comparison?

2013-04-10 03:48:00 -0500 received badge  Editor (source)
2013-04-10 01:26:55 -0500 answered a question Template Matching with Multiple Occurance

Hello, I have just an hint, not a full answer: I am assuming mResult9u is the image where you look for peaks, and a peak means a found occurrence: then if you find a peak you will set to zero all the pixels in mResult9u near the peak; the number of pixels you set to zero depends on the overlap you allow between different occurences. Setting to zero the pixels has the effect of "removing" the first peak you found. If you set to zero a rectangular area as big as your pattern then you will not allow any overlap between patterns.

Then maybe you have to smooth this area where the first peak was, in order to avoid false peak detection in that area.

Then you perform a new minMaxLoc on mResult9u and you should find the next peak, and then again to find the next peaks.

2013-04-09 09:57:05 -0500 asked a question angle estimation accuracy in C++ cv::phase

In phase documentation is stated:

The angle estimation accuracy is about 0.3 degrees.

Can you explain how that number is computed?

2013-03-24 05:30:11 -0500 received badge  Scholar (source)
2013-03-19 09:44:28 -0500 received badge  Supporter (source)
2013-03-19 03:16:12 -0500 asked a question Is it possible to convert the CvMat's type to the underlying C++ type?

Hello, if I have a cv::Mat m I can get its type via CV_MAT_TYPE(m.type()), is it possible to get the underlying C++ type (like float)?