Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv goodFeaturesToTrack提供零大小向量_Opencv_Stl - Fatal编程技术网

Opencv goodFeaturesToTrack提供零大小向量

Opencv goodFeaturesToTrack提供零大小向量,opencv,stl,Opencv,Stl,我正在尝试使用goodFeatureToTrack()函数在lena的灰色图像上使用opencv 2.4.3…但是我总是得到一个零大小的向量,将特征存储为cv::Point2f…我也尝试过使用零掩码,但在这种情况下,应用程序挂起..我尝试使用0.01到0.001之间的质量级别值。但是向量的大小仍然是零..有什么想法吗?…下面是我的代码 #include <iostream> #include <opencv2/core/core.hpp> #include <ope

我正在尝试使用
goodFeatureToTrack()
函数在lena的灰色图像上使用opencv 2.4.3…但是我总是得到一个零大小的向量,将特征存储为
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;
}

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

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

下图是当我删除
mask.setTo(Scalar::all(0)),代码返回给我的内容并绘制点:


刚刚解决了这个问题……不用预构建的libs n dll……用MSVC2008构建,现在工作正常了……检测到了Bob指示的相同点。

如果将掩码设置为所有1,是否也会发生相同的情况?是啊……所有1都会发生相同的情况……我现在对它发疯了……我的opencv有问题吗2.4.3? 我正在使用下载版本附带的预构建库。。。
SIZE OF FEATURE VECTOR = 0