0

我试图通过 Harris Detector 在我的图像中找到角落,但是当我运行此代码时出现问题:

int blockSize = 2;
int apertureSize = 3;
double k = 0.04;

IplImage* binMaxMatchContourImage = cvCreateImage( cvGetSize(maxMatchContourImage), 8, 1);
IplImage* afterHarrisImage = cvCreateImage( cvGetSize(maxMatchContourImage), 8, 1);

cvCanny(maxMatchContourImage, binMaxMatchContourImage, 50, 200);
cvCornerHarris( binMaxMatchContourImage, afterHarrisImage, blockSize, apertureSize, k);

但是我的程序失败了:

OpenCV Error: Bad argument (Unknown array type) in unknown function, file ..\..\..\src\opencv\modules\core\src\matrix.cpp, line 698

请解释一下,我的问题在哪里?

4

1 回答 1

0

检查 maxMatchContourImage 是否与 maxMatchContourImage 的类型和大小相同。两者都应该是单通道图像,以便 Canny 边缘检测起作用。

如果满足这个条件,cvCornerHarris 应该可以工作。

于 2013-05-28T05:32:34.493 回答