一、Mat基本结构 1、 Mat 不但是一个非常有用的 图像容器类 ,同时也是一个通用的 矩阵类, 它mat分为头部(包括图像的大小、宽高、类型、通道数等)和数据部分(像素的值的集合)
一、Mat基本结构1、Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类,它mat分为头部(包括图像的大小、宽高、类型、通道数等)和数据部分(像素的值的集合) 2、获取的mat对象赋值给另一个对象时候,相当于把这个指针重新指向原来的数据,实质上还是指向同一个DataBlock。只有在进行克隆或者拷贝的时候,才会把这个Mat中所有的数据复制一份供你使用。Mat基本结构如图所示。
下面主要介绍图像的克隆及拷贝 二、图像的克隆及拷贝1、clone函数
2、copyTo函数
3、示例同以前一样,声明函数放在test1.h文件里,实现放在test1.cpp文件里 在main中测试 从下图可以看出,显示的两张图没什么区别 三、创建图像1、创建空白图像:如图所示
将上述的代码修改成三通道后: 可以看出原矩阵从8×8变为了24×8,因为原来是单通道,而现在为3通道,代表着每个像素点包含了3个像素值,可以说明图像在Mat上面真正的宽度等于通道数乘以Mat定义矩阵的宽度,即3*8=24。 2、创建通道都为1的图:但是每个通道都为1的图不能用在三通道上,如图,结果就是每个像素点的第一个通道为1,其余通道都为0。 其实我们也可以对m3赋值,来改变他的第一个通道的值。 如果想要每个通道的值都为127,可以通过调用Scalar函数 3、拷贝和赋值的区别3.1用Scalar函数设置m3对象为绿色3.2m3赋值给m4,m4改为黄色3.3拷贝m3给m4,m4改为黄色
|
2022-05-14
2021-11-29
2022-04-04
2022-06-24
2021-11-25