惊喜!Mat研究(1)

(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乘。就是对应元素相乘。
然后对该图转置得到如下图:
这里写图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值