![](https://i-blog.csdnimg.cn/blog_migrate/59563dd695b300d97b2188500ceaed73.png)
mat图像的大小 通道数都存在他的头部。数据部分:就是图像的具体数据
mat直接赋值就是将指针指向他,并不是真正的创建。
mat的创建 克隆和copyto()是创建一个新的。
![](https://i-blog.csdnimg.cn/blog_migrate/008778a378ce4b173164de3c5c88ac18.png)
最后一种是c++11才出来的创建卷积的时候使用
m3.cols图像的宽度,实际上是长度*通道数
m3.rows 图像的高。
m3.chanle()获取通道数。
图像像素的读写操作:
数组遍历方式
![](https://i-blog.csdnimg.cn/blog_migrate/6fe14e45f8b115b527838b87c350f07a.png)
指针遍历方式
![](https://i-blog.csdnimg.cn/blog_migrate/91dfc82f818e0dc985bcc077f7cbf1eb.png)
图像像素的算术操作:
![](https://i-blog.csdnimg.cn/blog_migrate/8c5492e4fa4174aef589db68fc334602.png)
用运算符+、-、
加法
mat dst =image+scaler(50,50,50);
add(image m,dst)
减法
subtract(image m,dst)
mat dst =image-scaler(50,50,50);
乘法
mat dst =image*scaler(2,2,2);这样不可以 会报错
multiply(image m,dst)
staurate_cast<uchar>(p1[0]+p2[0])这个方法用来限定这两个相加的值不会超范围。
//除法
divide(image m,dst)