OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量结合使用

2024-04-19

我正在尝试使用cvGoodFeatureToTrackVisual Studio 2010 中的函数,图像类型为Mat。我见过的大多数例子都使用IplImage指针。 现在我有这个:

int w, h; // video frame size

Mat grayFrame;
Mat eigImage;
Mat tempImage;
const int MAX_CORNERS = 10;
CvPoint2D32f corners[MAX_CORNERS] = {0};
int corner_count = MAX_CORNERS;
double quality_level = 0.1;
double min_distance = 10;
int eig_block_size = 3;
int use_harris = false;

w = CurrFrame.size().width;
h = CurrFrame.size().height;
cvtColor(CurrFrame, grayFrame, CV_BGR2GRAY);
cvGoodFeaturesToTrack(&grayFrame,
                      &eigImage,
                      &tempImage,
                      corners,
                      &corner_count,
                      quality_level,
                      min_distance,
                      NULL,
                      eig_block_size,
                      use_harris);

它编译但给我一个内存访问冲突。帮助!


作为一个起点,如果无论如何使用 C++ (就像你使用cv::Mat and cv::cvtColor建议),那么为什么其余部分也不使用 C++ 接口呢?

这意味着使用cv::goodFeaturesToTrack http://docs.opencv.org/modules/imgproc/doc/feature_detection.html#void%20goodFeaturesToTrack%28InputArray%20image,%20OutputArray%20corners,%20int%20maxCorners,%20double%20qualityLevel,%20double%20minDistance,%20InputArray%20mask,%20int%20blockSize,%20bool%20useHarrisDetector,%20double%20k%29 or a cv::GoodFeaturesToTrackDetector http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#goodfeaturestotrackdetector,这是为了工作cv::Mat和朋友们,而不是进行不必要的演员阵容cv::Mat to IplImage*.

cv::Mat grayFrame;
std::vector<cv::Point2f> corners;
double quality_level = 0.1;
double min_distance = 10;
int eig_block_size = 3;
int use_harris = false;

const int MAX_CORNERS = 10;
cv::cvtColor(CurrFrame, grayFrame, CV_BGR2GRAY);
cv::goodFeaturesToTrack(grayFrame,
                        corners,
                        MAX_CORNERS,
                        quality_level,
                        min_distance,
                        cv::noArray(), 
                        eig_block_size,
                        use_harris);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量结合使用 的相关文章

随机推荐