cv::Mat.type()

cv::Mat的类型有30种,预定义的enum 0-30分别如下

图转自http://blog.csdn.net/hyqsong/article/details/46367765

type由depth和channel组成,depth   由.depth()返回的enum有以下这些

enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 };

例如CV_8U代表8位unsigned int , CV_16S代表16位short

.channels()返回结果是几就代表是几通道的

src.convertTo(dst, CV_8UC1)这个函数,只能进行depth的转换,不能转换通道。

例如src是CV_8UC3,执行上面这个函数之后的dst,依然是CV_8UC3,而不会变为CV_8UC1

要改变通道数,要使用 cv::cvtColor(src, dst, COLOR_BGR2GRAY);   3通道就转化成了单通道

Mat_<uchar>---------CV_8U
Mat<char>-----------CV_8S
Nat_<short>---------CV_16S
Mat_<ushort>--------CV_16U
Mat_<int>-----------CV_32S
Mat_<float>----------CV_32F

Mat_<double>--------CV_64F

原文地址:https://www.cnblogs.com/voyagee/p/7576372.html