(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乘。就是对应元素相乘。
然后对该图转置得到如下图:
好啦~简单复习了矩阵的知识…