cvtColor(src, gray);报错,改成如下函数进行封装
void cvtColor_src(Mat &src, Mat &src_gray)
{
// 转换4通道
if (src.channels() == 4) {
cv::cvtColor(src, src_gray, CV_BGRA2GRAY);
}
// 转换3通道
else if (src.channels() == 3) {
cv::cvtColor(src, src_gray, CV_BGR2GRAY);
}
// 转换2通道
else if (src.channels() == 2) {
cv::cvtColor(src, src_gray, CV_BGR5652GRAY);
}
// 转换单通道
else if (src.channels() == 1) {// 单通道的图片直接就不需要处理
src_gray = src;
}
else { // 负数,说明图有问题 直接返回
src_gray = src;
}
}