对于opencv图像,只有当图像通道数一样时才可以使用convertTo,转换数据类型。
需要改变通道数的时候使用cvtColor。
不能一步到位使用convertTo实现即转换数据类型,有转换通道数。
dstmat.convertTo(dstmat, CV_8UC1, 255);
cv::cvtColor(dstmat, dstmat, cv::COLOR_GRAY2BGR);
当发现有问题时可以调试,输出各个属性就可以发现问题。
如下:
dstmat.convertTo(dstmat, CV_8UC1, 255);
cv::cvtColor(dstmat, dstmat, cv::COLOR_GRAY2BGR);
int w = dstmat.cols;
int h = dstmat.rows;
int c = dstmat.channels();
int t = dstmat.type();