int main(){
cv::Mat src1=(cv::Mat_<float>(2,3)<<1,2,3,4,5,6);
cv::Mat src2=(cv::Mat_<float>(2,3)<<11,12,13,14,15,16);
cv::Mat src3=(cv::Mat_<float>(3,2)<<11,12,13,14,15,16);
cv::Mat res=src1+src2;
std::cout<<"加法:"<<res<<std::endl;
std::cout<<std::endl;
res=src1-src2;
std::cout<<"减法:"<<res<<std::endl;
std::cout<<std::endl;
cv::multiply(src1,src2,res); // void multiply(InputArray src1, InputArray src2,OutputArray dst, double scale = 1, int dtype = -1);
std::cout<<"点乘:"<<res<<std::endl;
std::cout<<std::endl;
res=src1/src2;
std::cout<<"点除:"<<res<<std::endl;
std::cout<<std::endl;
res=src1*src3; // 乘法(矩阵相乘)必须是float类型否则会报错。
std::cout<<"乘法(矩阵相乘):"<<res<<std::endl;
std::cout<<std::endl; cv::Mat res1;
cv::add(src1,src2,res1); // add(InputArray src1, InputArray src2, OutputArray dst,InputArray mask = noArray(), int dtype = -1);
std::cout<<"加法:"<<res1<<std::endl;
std::cout<<std::endl;
cv::subtract(src1,src2,res1); // subtract(InputArray src1, InputArray src2, OutputArray dst,InputArray mask = noArray(), int dtype = -1);
std::cout<<"减法:"<<res1<<std::endl;
std::cout<<std::endl;
res1=src1.mul(src2); // 数据类型必须相同
std::cout<<"点乘:"<<res1<<std::endl;
std::cout<<std::endl;
gemm(src1,src3,1,NULL,0,res1); // 乘法(矩阵相乘)必须是float类型否则会报错。
// gemm(InputArray src1, InputArray src2, double alpha,InputArray src3, double beta, OutputArray dst, int flags = 0);
// gemm也只能接受CV_32FC1、CV_64FC1、CV_32FC2、CV_64FC2数据类型的Mat.
std::cout<<"乘法(矩阵相乘):"<<res<<std::endl;
std::cout<<std::endl; cv::Mat mat1=(cv::Mat_<int>(2,3)<<1,4,9,16,25,36); // 注意:cv::Mat_不能写为cv::Mat
cv::Mat dest;
// 幂函数,其幂指数确定不变,而幂底数为自变量;
// 指数函数却是底数确定不变,而指数为自变量。
// 幂指函数就是幂底数和幂指数同时都为自变量的函数。
pow(mat1,2,dest); // 幂函数
std::cout<<"幂函数:"<<dest<<std::endl;
std::cout<<std::endl; cv::Vec3b src4(1,2,3);
cv::Vec3b src5(1,2,3);
cv::Vec3b dst=src4+src5;
std::cout<<dst<<std::endl;
return 0;
}

注意:矩阵乘法只能接受CV_32FC1、CV_64FC1、CV_32FC2、CV_64FC2数据类型的Mat.剩下的会报错。

opencv C++矩阵操作的更多相关文章

  1. Opencv Mat矩阵操作注意事项

    矩阵操作通常不会进行元素复制,应注意: Mat a=Mat(100,100,CV_32S); Mat b=Mat(100,100,CV_32S); b=a.col(8);//此时并未进行元素赋值,而只 ...

  2. OpenCV图片矩阵操作相关,对png图片操作(多通道)

    文献链接: http://www.cnblogs.com/tornadomeet/archive/2012/12/26/2834336.html 下面这个高手,写了个小程序我还没有调试,回头 调试看看 ...

  3. OpenCV利用矩阵实现图像旋转

    利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREA ...

  4. 图像处理之 opencv 学习---矩阵的操作

    OpenCV的一些操作,如生成随机矩阵,高斯矩阵,矩阵相乘之类的 /*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include " ...

  5. opencv 矩阵操作

    OpenCv矩阵操作 有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处 ...

  6. OpenCV在矩阵上的卷积

    转载请注明出处!!!http://blog.csdn.net/zhonghuan1992 OpenCV在矩阵上的卷积 在openCV官网上说是戴面具,事实上就是又一次计算一下矩阵中的每个value,那 ...

  7. opencv Mat 像素操作

    1 cv::Mat cv::Mat是一个n维矩阵类,声明在<opencv2/core/core.hpp>中.   class CV_EXPORTS Mat { public: //a lo ...

  8. 【OpenCV】像素操作的数字图像处理

    之前几天捣鼓matlab,用来处理数字图像,矩阵操作什么的,如果忘记线性代数就真的GG了. 在用了matlab被深深地吐槽之后,决定改用opencv,C++貌似也是处理数字图像的很好的工具 1. 在u ...

  9. [opencv]常用阵列操作函数总结

    /*=========================================================================*/ // 阵列操作 /*============ ...

随机推荐

  1. 【C++】常见易犯错误之数值类型取值溢出与截断(3)

    0.  前言 本节是“[C++]常见易犯错误之数值类型取值溢出与截断(1)” 的补充,主要探讨浮点型的取值溢出. 1. 相关知识 (1) 浮点型数据取值范围如下: 单精度型 float 3.4 * 1 ...

  2. Beta冲刺 —— 5.31

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.讨论并解决每个人存在的问 ...

  3. Java实现 LeetCode 350 两个数组的交集 II(二)

    350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入 ...

  4. Java实现 LeetCode 116 填充每个节点的下一个右侧节点指针

    116. 填充每个节点的下一个右侧节点指针 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left ...

  5. Java实现 LeetCode 82 删除排序链表中的重复元素 II(二)

    82. 删除排序链表中的重复元素 II 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4- ...

  6. Java实现 LeetCode 67 二进制求和

    67. 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1 ...

  7. java实现第六届蓝桥杯居民集会

    居民集会 蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di. 每年,蓝桥村都要举行一次集会.今年,由于村里的人口太多 ...

  8. java实现第五届蓝桥杯猜年龄

    猜年龄 题目描述 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:"我们俩的年龄之积是年龄之和的6倍".小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8 ...

  9. 启动appium server时打印日志时间

    在调试脚本的时候想看查找元素和执行命令花了多少时间,我们可以在启动appium server的时候加上启动参数,实现我们的需求. 1)输入:appium h,可以查看appium提供的启动参数有哪些. ...

  10. 基于Nginx实现访问控制、连接限制

    0 前言 Nginx自带的模块支持对并发请求数进行限制, 还有对请求来源进行限制.可以用来防止DDOS攻击.阅读本文须知道nginx的配置文件结构和语法. 1. 默认配置语法 nginx.conf作为 ...