OpenCV Error: Assertion failed (src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))) in cornerEigenValsVecs, file /home/nl/OpenCV/modules/imgproc/src/corner.cpp, line 269
terminate called after throwing an instance of 'cv::Exception'
what(): /home/nl/OpenCV/modules/imgproc/src/corner.cpp:269: error: (-215) src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) in function cornerEigenValsVecs
void cv::cornerHarris ( InputArray src,
OutputArray dst,
int blockSize,
int ksize,
double k,
int borderType = BORDER_DEFAULT
)
src | Input single-channel 8-bit or floating-point image. |
dst | Image to store the Harris detector responses. It has the type CV_32FC1 and the same size as src . |
blockSize | Neighborhood size (see the details on cornerEigenValsAndVecs ). |
ksize | Aperture parameter for the Sobel operator. |
k | Harris detector free parameter. See the formula below. |
borderType | Pixel extrapolation method. See cv::BorderTypes. |
因此输入图像应转成单通道,类型为CV_8UC1或者CV_32FC1
8表示8位,U表示无符号整型,F表示浮点型,C1表示单通道,而彩色则至少是3通道