4
当我调用该函数cvGoodFeaturesToTrack发现哈里斯的角落我得到这个错误:的OpenCV:错误使用功能cvGoodFeaturesToTrack
OpenCV Error: Assertion failed (src.type() == CV_8UC1 || src.type() == CV_32FC1) in cornerEigenValsVecs, file /build/buildd/opencv-2.1.0/src/cv/cvcorner.cpp,line 254
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.1.0/src/cv/cvcorner.cpp:254: error: (-215) src.type() == CV_8UC1 || src.type() == CV_32FC1 in function cornerEigenValsVecs
Aborted
它正确编译,但是当我尝试运行它,它给了我这个错误。
下面是代码:
IplImage* eig_image = 0;
IplImage* temp_image = 0;
IplImage *img1 = 0;
img1 = cvLoadImage("im1.pgm");
if(img1==0) {
printf("oh no!");
}
eig_image = cvCreateImage(cvGetSize(img1),IPL_DEPTH_32F, 1);
temp_image = cvCreateImage(cvGetSize(img1),IPL_DEPTH_32F, 1);
const int MAX_CORNERS = 100;
CvPoint2D32f corners[MAX_CORNERS] = {0};
int corner_count = MAX_CORNERS;
double quality_level = 0.1;
double min_distance = 1;
int eig_block_size = 3;
int use_harris = true;
double k = .4;
cvGoodFeaturesToTrack(img1, eig_image, temp_image,corners,&corner_count,quality_level,min_distance,NULL,eig_block_size,use_harris,k);
这究竟是为什么以及如何解决呢?我感谢任何帮助!
谢谢!这工作。这很奇怪,因为我使用的图像是从不同的功能剩下的,它被灰度化并保存。也许我错了,但不管它现在工作。 – Choobs
很高兴能帮到你!有时图像可能会看起来灰度,但最终会以R = G = B =强度值的形式保存为RGB图像。这可能是发生了什么事。保存图像时,确保它们是8位灰度。 – mevatron