惊喜!Mat研究(1)

来源:互联网 发布:龙泉驾校网络上课流程 编辑:程序博客网 时间:2024/05/27 09:47

(1)Mat类快速遍历方式,记录之

#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc,char**argv){    Mat srcImage=imread("1.jpg");    Mat copyImage;    copyImage=srcImage.clone();    for(int i=0;i<copyImage.rows;i++)    {        uchar* data=copyImage.ptr<uchar>(i);//指针指向第i行            for(int j=0;j<copyImage.cols;j++)                {                    data[3*j]=int((i+1)*(j+1)%255);//3通道图片                    data[3*j+1]=int(j/(i+1));                    data[3*j+2]=int((i+j+1)%255);                }    }    imshow("picture",copyImage);    waitKey(0);}

效果图:
这里写图片描述

(2)Mat读图后加上一个很大的数会怎样?

#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc,char**argv){    Mat srcImage=imread("1.jpg");    Mat copyImage;    copyImage=srcImage.clone();     copyImage=srcImage+1255;    imshow("orgin",srcImage);    imshow("orgin+1255",copyImage);//+一个很大的数    waitKey(0);}

原图:
这里写图片描述
效果图:
这里写图片描述
在QT显示下,将效果图放大,会发现B通道全为255,所以就如效果图显示一般。及时换成减也是如此。

(3)让上面两张效果图相减能擦出什么样的火花?

下图是用上述第三个图减去第一个图得到:
这里写图片描述
感觉就像是加了一层蒙版。。
下面图则是反过来减:
这里写图片描述
这个就变化很大了

(4)相乘效果如何呢?

得到的图如下:
这里写图片描述
注意,这里使用的是mul乘。就是对应元素相乘。
然后对该图转置得到如下图:
这里写图片描述

好啦~简单复习了矩阵的知识…

原创粉丝点击