opencv C++矩阵操作
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++矩阵操作的更多相关文章
- Opencv Mat矩阵操作注意事项
矩阵操作通常不会进行元素复制,应注意: Mat a=Mat(100,100,CV_32S); Mat b=Mat(100,100,CV_32S); b=a.col(8);//此时并未进行元素赋值,而只 ...
- OpenCV图片矩阵操作相关,对png图片操作(多通道)
文献链接: http://www.cnblogs.com/tornadomeet/archive/2012/12/26/2834336.html 下面这个高手,写了个小程序我还没有调试,回头 调试看看 ...
- OpenCV利用矩阵实现图像旋转
利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREA ...
- 图像处理之 opencv 学习---矩阵的操作
OpenCV的一些操作,如生成随机矩阵,高斯矩阵,矩阵相乘之类的 /*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include " ...
- opencv 矩阵操作
OpenCv矩阵操作 有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处 ...
- OpenCV在矩阵上的卷积
转载请注明出处!!!http://blog.csdn.net/zhonghuan1992 OpenCV在矩阵上的卷积 在openCV官网上说是戴面具,事实上就是又一次计算一下矩阵中的每个value,那 ...
- opencv Mat 像素操作
1 cv::Mat cv::Mat是一个n维矩阵类,声明在<opencv2/core/core.hpp>中. class CV_EXPORTS Mat { public: //a lo ...
- 【OpenCV】像素操作的数字图像处理
之前几天捣鼓matlab,用来处理数字图像,矩阵操作什么的,如果忘记线性代数就真的GG了. 在用了matlab被深深地吐槽之后,决定改用opencv,C++貌似也是处理数字图像的很好的工具 1. 在u ...
- [opencv]常用阵列操作函数总结
/*=========================================================================*/ // 阵列操作 /*============ ...
随机推荐
- ngnix随笔一
nginx安装及启动 1.用yum源安装,首先配置yum源 在“/etc/yum.repo.d/”下创建yum源文件 例如:cd /etc/yum.repo.d/nginx.repo [nginx-s ...
- Spring MVC基于注解@Controller和@RequestMapping开发的一个例子
1.创建web项目 2.在springmvc的配置文件中指定注解驱动,配置扫描器 在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC ...
- sqlmap基本使用
sqlmap 使用 需要安装python2的环境 使用方法: 用最基础的get型注入开始 1.当我们发现注入点的时候, python sqlmap.py -u "http://192.168 ...
- 包装类的使用与Junit单元测试类
包装类: 针对八种基本数据类型定义相应的引用类型,使之有了类的特点,就可以调用类的方法 基本数据类型 包装类 boolean Boolean byte Byte short Short int Int ...
- 个人工具,编辑器visual studio code
个人收集的使用方法:简化版 主要基于基础web前端开发,visual studio code教程——基础使用.扩展插件安装使用 下载地址: https://visualstudio.microsoft ...
- 小谢第2问:后端返回为数组list时候,怎么实现转为tree
要求后端返回给我的list时候,在数组中定义有id , parentid, 可以用双重循环的方法,得到tree需要的数据结构,这样得到的数据就可以直接复制给树组件的data啦const oldData ...
- Java实现蓝桥杯模拟存储转换
问题描述 在计算机存储中,15.125GB是多少MB? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. pac ...
- java实现迷宫走法
** 迷宫走法** 迷宫问题 对于走迷宫,人们提出过很多计算机上的解法.深度优先搜索.广度优先搜索是使用最广的方法.生活中,人们更愿意使用"紧贴墙壁,靠右行走"的简单规则. 下面的 ...
- Pi-star MMDVM双工板介绍
Pi-star MMDVM双工板介绍(2020/2) pi-star里控制模式选择:双工模式(DUPLEX Mode)/单工模式(SIMPLE Mode) 双工板工作频率范围:144-148,219- ...
- (七)DVWA之SQL Injection--SQLMap测试(Low)
目录结构 一.测试需求分析 二.SQLMap利用SQL注入漏洞,获取数据库信息 1.判断是否存在注入点 2.获取DBMS中所有的数据库名称 3.获取Web应用当前连接的数据库 4.列出数据库中的所有用 ...