1、常量的具体数值:
cout << CV_8UC1 << " " << CV_8UC2 << " " << CV_8UC3 << " " << CV_8UC4 << " "
<<CV_8SC1 << " " << CV_8SC2 << " " << CV_8SC3 << " " << CV_8SC4 << " "
<<CV_16UC1 << " " << CV_16UC2 << " " << CV_16UC3 << " " << CV_16UC4 << " "
<< CV_16SC1 << " " << CV_16SC2 << " " << CV_16SC3 << " " << CV_16SC4 << " "
<< CV_32SC1 << " " << CV_32SC2 << " " << CV_32SC3 << " " << CV_32SC4 << " "
<< CV_32FC1 << " " << CV_32FC2 << " " << CV_32FC3 << " " << CV_32FC4 << " "
<< CV_64FC1 << " " << CV_64FC2 << " " << CV_64FC3 << " " << CV_64FC4 << " " << endl;
通过打印出来树枝,得到一些常量的具体数值,其结果如下:
在有些命令时,要求类型匹配。C后面的数值代表了channel。U代表Unsigned,S代表Signed,F代表Float,8,16,2,4,代表位宽。
2、Mat类型的使用
rows –的行数。
cols – 的列数。
size –替代矩阵大小规格Size(cols, rows)的方法。
type – 创建的矩阵的类型
depth --矩阵的深度。和类型有关,例如类型为3通道,则depth为3.
访问的方式为frame.cols frame.rows frame.type frame.size
cout<<frame<<endl可以直接将低于3维的Mat类型输出到控制台。
cvColor可以将3通道的矩阵转化为单通道。
scalar结构体指定了每个通道的像素值,例如Mat M(2,2, CV_8UC3, Scalar(0,0,255));指定了3个通道分别为0,0,255.
frame.clone()
frame.converTo()记得后面一定加括号。不然报错frame.converTo()
3、矩阵的初始值设定:
Mat::eye
返回一个恒等指定大小和类型矩阵。
C++: static MatExpr Mat::eye(int rows, int cols, inttype)
C++: static MatExpr Mat::eye(Size size, int type)