several minor fixes proposed by Andrey
This commit is contained in:
parent
d925879366
commit
8a6d2bbd3d
@ -403,15 +403,15 @@ void CirclesGridClusterFinder::parsePatternPoints(const std::vector<cv::Point2f>
|
|||||||
idealPt = Point2f(j*squareSize, i*squareSize);
|
idealPt = Point2f(j*squareSize, i*squareSize);
|
||||||
|
|
||||||
Mat query(1, 2, CV_32F, &idealPt);
|
Mat query(1, 2, CV_32F, &idealPt);
|
||||||
int knn = 1;
|
const int knn = 1;
|
||||||
int indicesbuf = 0;
|
int indicesbuf[knn] = {0};
|
||||||
float distsbuf = 0.f;
|
float distsbuf[knn] = {0.f};
|
||||||
Mat indices(1, knn, CV_32S, &indicesbuf);
|
Mat indices(1, knn, CV_32S, &indicesbuf);
|
||||||
Mat dists(1, knn, CV_32F, &distsbuf);
|
Mat dists(1, knn, CV_32F, &distsbuf);
|
||||||
flannIndex.knnSearch(query, indices, dists, knn, flann::SearchParams());
|
flannIndex.knnSearch(query, indices, dists, knn, flann::SearchParams());
|
||||||
centers.push_back(patternPoints.at(indicesbuf));
|
centers.push_back(patternPoints.at(indicesbuf[0]));
|
||||||
|
|
||||||
if(distsbuf > maxRectifiedDistance)
|
if(distsbuf[0] > maxRectifiedDistance)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_CIRCLES
|
#ifdef DEBUG_CIRCLES
|
||||||
cout << "Pattern not detected: too large rectified distance" << endl;
|
cout << "Pattern not detected: too large rectified distance" << endl;
|
||||||
|
@ -131,7 +131,7 @@ public:
|
|||||||
const Point2f* m = m2.ptr<Point2f>();
|
const Point2f* m = m2.ptr<Point2f>();
|
||||||
|
|
||||||
double LtL[9][9], W[9][1], V[9][9];
|
double LtL[9][9], W[9][1], V[9][9];
|
||||||
Mat _LtL( 9, 9, CV_64F, LtL );
|
Mat _LtL( 9, 9, CV_64F, &LtL[0][0] );
|
||||||
Mat matW( 9, 1, CV_64F, W );
|
Mat matW( 9, 1, CV_64F, W );
|
||||||
Mat matV( 9, 9, CV_64F, V );
|
Mat matV( 9, 9, CV_64F, V );
|
||||||
Mat _H0( 3, 3, CV_64F, V[8] );
|
Mat _H0( 3, 3, CV_64F, V[8] );
|
||||||
|
@ -217,7 +217,7 @@ CV_INIT_ALGORITHM(LMSolverImpl, "LMSolver",
|
|||||||
obj.info()->addParam(obj, "maxIters", obj.maxIters);
|
obj.info()->addParam(obj, "maxIters", obj.maxIters);
|
||||||
obj.info()->addParam(obj, "printInterval", obj.printInterval));
|
obj.info()->addParam(obj, "printInterval", obj.printInterval));
|
||||||
|
|
||||||
CV_EXPORTS Ptr<LMSolver> createLMSolver(const Ptr<LMSolver::Callback>& cb, int maxIters)
|
Ptr<LMSolver> createLMSolver(const Ptr<LMSolver::Callback>& cb, int maxIters)
|
||||||
{
|
{
|
||||||
CV_Assert( !LMSolverImpl_info_auto.name().empty() );
|
CV_Assert( !LMSolverImpl_info_auto.name().empty() );
|
||||||
return new LMSolverImpl(cb, maxIters);
|
return new LMSolverImpl(cb, maxIters);
|
||||||
|
@ -81,7 +81,7 @@ public:
|
|||||||
|
|
||||||
CV_EXPORTS Ptr<LMSolver> createLMSolver(const Ptr<LMSolver::Callback>& cb, int maxIters);
|
CV_EXPORTS Ptr<LMSolver> createLMSolver(const Ptr<LMSolver::Callback>& cb, int maxIters);
|
||||||
|
|
||||||
class PointSetRegistrator : public Algorithm
|
class CV_EXPORTS PointSetRegistrator : public Algorithm
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
class CV_EXPORTS Callback
|
class CV_EXPORTS Callback
|
||||||
|
@ -83,8 +83,6 @@ public:
|
|||||||
checkPartialSubsets = true;
|
checkPartialSubsets = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~RANSACPointSetRegistrator() {}
|
|
||||||
|
|
||||||
int findInliers( const Mat& m1, const Mat& m2, const Mat& model, Mat& err, Mat& mask, double thresh ) const
|
int findInliers( const Mat& m1, const Mat& m2, const Mat& model, Mat& err, Mat& mask, double thresh ) const
|
||||||
{
|
{
|
||||||
cb->computeError( m1, m2, model, err );
|
cb->computeError( m1, m2, model, err );
|
||||||
@ -318,9 +316,8 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int iter, niters = cvRound(std::log(1-confidence)/
|
int iter, niters = RANSACUpdateNumIters(confidence, outlierRatio, modelPoints, maxIters);
|
||||||
std::log(1-std::pow(1-outlierRatio,(double)modelPoints)));
|
niters = MAX(niters, 3);
|
||||||
niters = MIN( MAX(niters, 3), maxIters );
|
|
||||||
|
|
||||||
for( iter = 0; iter < niters; iter++ )
|
for( iter = 0; iter < niters; iter++ )
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user