gpt4 book ai didi

c++ - OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:15 25 4
gpt4 key购买 nike

我正在尝试在 Visual Studio 2010 中使用 cvGoodFeatureToTrack 函数,图像类型为 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::Matcv::cvtColor),那么为什么不使用 C++ 接口(interface)其他的也是吗?

这意味着使用 cv::goodFeaturesToTrackcv::GoodFeaturesToTrackDetector ,它们可以在 cv::Mat 和 friend 上工作,而不是从 cv::MatIplImage* 进行不必要的转换。

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);

关于c++ - OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635390/

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