gpt4 book ai didi

opencv - goodFeaturesToTrack 给出零尺寸向量

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:56 32 4
gpt4 key购买 nike

我正在尝试在 lena 的灰度图像上使用 opencv 2.4.3 的 goodFeatureToTrack() 函数...但是我总是得到一个零大小的向量,将特征存储为 cv::Point2f...我也尝试过使用零掩码,但在那种情况下应用程序会挂起...我尝试使用从 0.01 到 0.001 的质量级别值。但是向量的大小仍然为零..有什么想法吗?...以下是我的代码..

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/video/tracking.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <vector>

using namespace cv;
using namespace std;

int main()
{
Mat frameROI;
frameROI = imread("C:\\lena.jpg");
std::vector<cv::Point2f> corners;
cvtColor(frameROI,frameROI,CV_RGB2GRAY);

//Mat mask(frameROI.size(), CV_8UC1);
//mask.setTo(Scalar::all(0));

//goodFeaturesToTrack(frameROI,corners,10,0.001,10,mask,3,false,0.04);
goodFeaturesToTrack(frameROI,corners,10,0.001,10);//AFTER EDIT
cout<<"SIZE OF FEATURE VECTOR = "<<corners.size()<<endl;

imshow("VIDEO ROI",frameROI);
waitKey();

return 0;
}

输出:

SIZE OF FEATURE VECTOR = 0

编辑: 在 Bob 的建议下,我省略了 mask 行并修改了函数..但是现在应用程序在调用 goodFeaturesToTrack 函数后挂起...有什么想法吗?

最佳答案

通过将掩码设置为全零,基本上可以从搜索中排除整个图像。您应该完全删除 mask.setTo(Scalar::all(0));(从而使矩阵留空)或将其替换为 mask.setTo(Scalar::all(1) );(也就是说,要在整个图像中搜索特征;否则,您应该将感兴趣区域的掩码设置为 1,否则设置为 0)。

如果我完全删除 mask.setTo(Scalar::all(0)); 并绘制点,下图是您的代码为我返回的内容:

enter image description here

关于opencv - goodFeaturesToTrack 给出零尺寸向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944508/

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