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
)
srcInput single-channel 8-bit or floating-point image.dstImage to store the Harris detector responses. It has the type CV_32FC1 and the same size as src .blockSizeNeighborhood size (see the details on cornerEigenValsAndVecs ).ksizeAperture parameter for the Sobel operator.kHarris detector free parameter. See the formula below.borderTypePixel extrapolation method. See cv::BorderTypes.
因此输入图像应转成单通道,类型为CV_8UC1或者CV_32FC1
8表示8位,U表示无符号整型,F表示浮点型,C1表示单通道,而彩色则至少是3通道