ZBLOG

“cv::calcOpticalFlowPyrLK”: 函数不接受 5 个参数

函数 cv::calcOpticalFlowPyrLK 在 OpenCV 中的参数列表可能会因不同版本而有所变化。确保你使用的是与代码示例匹配的 OpenCV 版本。

通常情况下, cv::calcOpticalFlowPyrLK 的正确用法如下:

void cv::calcOpticalFlowPyrLK(
    InputArray prevImg,         // 前一帧图像
    InputArray nextImg,         // 当前帧图像
    InputArray prevPts,         // 前一帧中点的坐标
    OutputArray nextPts,        // 输出当前帧中的点的坐标
    OutputArray status = noArray(),  // 点是否成功跟踪(可选)
    OutputArray err = noArray(),      // 跟踪误差(可选)
    Size winSize = Size(21,21),       // 计算光流时的窗口大小(可选)
    int maxLevel = 3,                // 最大金字塔层数(可选)
    TermCriteria criteria = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01)   // 收敛标准(可选)
);

这里是一个简单的示例,演示了如何使用 cv::calcOpticalFlowPyrLK 函数:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    // 加载模糊图像作为前一帧
    Mat prevImage = imread("blurred_image.jpg", IMREAD_GRAYSCALE);
    
    if (prevImage.empty()) {
        cout << "Could not open or find the image!" << endl;
        return -1;
    }

    vector<Point2f> points[2];
    
    // 检测特征点
    goodFeaturesToTrack(prevImage, points[0], 100, 0.01, 10);

    // 模拟下一帧,这里直接将其设置为原始图像作为例子
	Mat nextImage = imread("original_image.jpg", IMREAD_GRAYSCALE);

	// 确保下一帧不是空的 
	if (nextImage.empty()) {
	    cout << "Could not open or find the original image!" << endl;
	    return -1;
	}
	
	vector<uchar> status; 
	vector<float> err;

	// 计算光流  
	calcOpticalFlowPyrLK(prevImage, nextImage, points[0], points[1], status, err);

	for(size_t i = 0; i < points[0].size(); i++) {  
	    if (status[i]) {  
	        circle(nextImage, points[1][i], 5, Scalar(0,255,0), -1); 
	    }  
	}  

	imshow("Motion Vectors", nextImage); 
	waitKey(0);
	return 0;
}

注意事项:

  • 在调用 calcOpticalFlowPyrLK 时,请确保传递的是有效且已初始化的数据。
  • 对于输出参数,如 statuserr,确保提供适当类型以存储结果。
  • 如果仍然遇到错误,请检查你的 OpenCV 文档或相关资源,以确认函数签名和参数要求。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=20103

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?