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