计算机视觉:人眼看到的东西转换成计算机能识别的数据
inline 内联函数,编译的时候,直接将代码copy到调用的函数中去。
非内联函数 每个函数出栈入栈,会有空间消耗。
1.创建和清理mat空间,处理图像类型用unsigned char来处理,不要用char,负数会溢出
*通过构造函数直接创建:
Mat mat(3000,4000,CV_8UC3);
param1:高 param2:宽 param3:数据类型,UC3->unsinged char 3个字节
*create会把之前的垃圾清理掉
mat.create(rows, cols, CV_8UC1);
*release或者析构,手动清理。
引用计数为1时释放
内存中实际上是BGR存放的
isContinuous
*判断存储空间是否连续
*如果不连续,通过step记录 获取每一行的数据到下一行的数据间隔是多少
直接地址访问连续空间
{
int size = mat.rows*mat.cols*mat.elemSize(); //连续空间的大小 mat.elemSize() 元素大小
//连续空间遍历访问 data-》mat的成员参数
for(int i = 0; i < size(); i+=3)
{
mat.data[i] = 0; //B
mat.data[i+1] = 0; //G