gpt4 book ai didi

c++ - 在 visual studio 中使用 calcOpticalFlowPyrLK() 函数

转载 作者:行者123 更新时间:2023-11-28 07:20:04 24 4
gpt4 key购买 nike

我正在尝试在 visual studio 中测试 calcOpticalFlowPyrLK() int c++,但我在编写代码时遇到了一些问题。我使用 FAST 算法获得了 2 张图像的关键点。这是我的代码的相关部分:

    Mat im1, im1gray, im2, im2gray;
vector<KeyPoint> keypoints1;
vector<KeyPoint> keypoints2;
im1=imread("C:\\Users\\Dániel\\Desktop\\1.png", 1);
im2=imread("C:\\Users\\Dániel\\Desktop\\2.png", 1);
cvtColor(im1, im1gray, CV_RGB2GRAY);
FAST(im1gray, keypoints1, 100, true);
cvtColor(im2, im2gray, CV_RGB2GRAY);
FAST(im2gray, keypoints2, 100, true);
vector<char> status;
vector<float> error;
calcOpticalFlowPyrLK(im1, im2, keypoints1, keypoints2, status, error, Size(20,20), 1, cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, .3 ), 0, 0.0001);

我的问题是,当我尝试运行代码的最后一个命令时,我收到一条错误消息(KLT.exe 中 0x74fc4b32 处未处理的异常:Microsoft C++ 异常:cv::Exception at memory location 0x008de7ac..)。谁能告诉我问题出在哪里?提前致谢!

最佳答案

calcOpticalFlowPyrLKvector<Point2f> 一起工作, 不适用于 vector<KeyPoint> .您应该将关键点数组转换为带坐标的数组:

vector<Point2f> pt1, pt2;
KeyPoint::convert(keypoints1, pt1);
KeyPoint::convert(keypoints2, pt2);
calcOpticalFlowPyrLK(im1, im2, pt1, pt2, status, error, Size(20,20), 1, cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, .3 ), 0, 0.0001);

关于c++ - 在 visual studio 中使用 calcOpticalFlowPyrLK() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641805/

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