opencv基础(三)之Mat对象

今天本小节来学习一下Mat对象,用Opencv的话对Mat对象可谓再熟悉不过了。

首先,其实在Opencv1.0的时候,是没有Mat对象的,当时用的是c语言风格的数据结构lplImage,但是这很容易出现内存泄漏,需要自己去释放内存。从Openc2.0后,开始引入Mat对象,由opencv这个框架自动管理内存,我们只管用就可以了,不需要自己去释放。

接下来我们看看Mat创建的几种方式:

1、使用无参构造方式。

        

   如果我们可以看到先声明了一个Mat对象,然后使用create方法。

     我们先来解释一下create的参数:

      参数一:5表示行数。

      参数二:5表示列数。

      参数三:图像矩阵类型。

    解释一下CV_8CU3:

      8表示八位。

     UC:表示uchar类型。

      3:表示三个通道。

2、Mat m = Mat(4, 4, CV_8UC3)。解释同上。

3、使用如下方式创建。

 

   此种需要注意的是:Scalar里面的数量一定要和CV_8UC3中的3一致,表示通道数,这个是给图像中每个通道赋值。结果如下:

4、全零矩阵图像。

  5、全1矩阵图像。

      

    我这里使用的是单通道也就是CV_8UC1,不是CV_8UC3。

另外,我们还需要学习Opencv的clone()和copyto()的区别。

猜你喜欢

转载自blog.csdn.net/qq_34062754/article/details/86608288