opencv Mat::create源码分析--Apple的学习笔记

前言

今天主要看了opencv3.4.1的Mat::create函数源码,因为这是最基础的,所有图像处理函数都要用到create和Mat类。

Mat类主要结构

Mat类之前了解过,最重要的信息如下截图。size是行数,step是列数*数据类型字节。


mat结构体.png

Mat::create主要处理函数

  • setSize(*this, d, _sizes, 0, true);
    此函数作用:设置对象的size相关参数,包括行和列,数据类型及像素占用字节。
  • u = a->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
    此函数作用:在RAM中为其分配空间。并且将数据指针绑定到Mat类对象中。allocate中有一 个alignPtr函数,主要是将指针对齐,使指针地址能够被16整除。
  • finalizeHdr(*this);
    此函数的作用是为Mat类对象绑定写尾指针及限制地址指针等。

总结

Mat::create的步骤就是先确认size然后分配空间最后绑定地址到Mat类对象。

你可能感兴趣的:(opencv Mat::create源码分析--Apple的学习笔记)