gpt4 book ai didi

c++ - 使用 OpenCV 的 MLESAC 而不是 RANSAC

转载 作者:太空狗 更新时间:2023-10-29 21:20:59 26 4
gpt4 key购买 nike

是否有可用代码使用 MLESAC 而不是 RANSAC 和 OpenCV 来查找已知对象?

MLESAC 应该比 RANSAC 更健壮。此处提供了一个使用示例:

http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

enter image description here

最佳答案

您可以使用 PCL 库中的 MLESAC(以及 PROSAC 等)。 http://docs.pointclouds.org/trunk/a02954.html我不使用 PCL,所以无法举个例子。

我正在使用 Karel Lebeda 的 LO-RANSAC http://cmp.felk.cvut.cz/software/LO-RANSAC/index.xhtml

int do_lo = 1; //local optimization
unsigned int tent_size = tentatives.size();
double err_threshold = 2.0; //in pixels
double confidence = 0.99;
int max_samples = 100000;//max trials
int inl_limit = 0;//no limit
if (tent_size >= 5)
{
double H[3*3];
unsigned stats[3];
double *u2Ptr = new double[tent_size*6], *u2; u2=u2Ptr;
typedef unsigned char uchar;
unsigned char *inl2 = new uchar[tent_size];

for( int i = 0; i < tentatives.size(); i++ )
{
*u2Ptr = keypoints_object[ tentatives[i].queryIdx ].pt.x;
u2Ptr++;

*u2Ptr = keypoints_object[ tentatives[i].queryIdx ].pt.y;
u2Ptr++;
*u2Ptr = 1.;
u2Ptr++;

*u2Ptr = keypoints_scene[ tentatives[i].trainIdx ].pt.x;
u2Ptr++;

*u2Ptr = keypoints_scene[ tentatives[i].trainIdx ].pt.y;
u2Ptr++;
*u2Ptr = 1.;
u2Ptr++;
}
ransacH(u2, tent_size, err_threshold*err_threshold, confidence, max_samples, do_lo, , H, inl2,stats);
for(i=0; i < tent_size; i++)
if (inl2[i])
inliers.push_back(good_matches[i]);

delete[] u2; delete[] inl2;

关于c++ - 使用 OpenCV 的 MLESAC 而不是 RANSAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23449823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com