我正在尝试使用开放式CV FAST算法来检测视频输入中的角点.方法调用和设置似乎很简单,但我遇到了一些问题.当我尝试使用此代码时
while(run)
{
clock_t begin,end;
img = cvQueryFrame(capture);
key = cvWaitKey(10);
cvShowImage("stream",img);
//Cv::FAST variables
int threshold=9;
vector<KeyPoint> keypoints;
if(key=='a'){
//begin = clock();
Mat mat(tempImg);
FAST(mat,keypoints,threshold,true);
//end = clock();
//cout << "\n TIME FOR CALCULATION: " << double(diffClock(begin,end)) << "\n" ;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
OpenCV错误:断言失败(image.data && image.type()== CV_8U)未知函数,文件........\ocv\opencv\src\cvaux\cvfast.cpp,第6039行
所以我认为它的图像深度有问题所以当我添加这个时:
IplImage* tempImg = cvCreateImage(Size(img->width,img->height),8,1);
cvCvtColor(img,tempImg,CV_8U);
Run Code Online (Sandbox Code Playgroud)
我明白了:
OpenCV错误:未知函数中的通道数量不正确(此转换代码的通道数不正确),文件........\ocv\opencv\src\cv\cvcolor.cpp,第2238行
我已经尝试使用Mat而不是IplImage捕获但我一直遇到同样的错误.
有什么建议或帮助吗?提前致谢.
整个文件只是为了让任何人都更容易:
#include "cv.h"
#include "cvaux.hpp"
#include "highgui.h"
#include <time.h>
#include <iostream>
double diffClock(clock_t begin, clock_t end);
using namespace std;
using namespace cv;
int …Run Code Online (Sandbox Code Playgroud)