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]常用阵列操作函数总结
/*=========================================================================*/ // 阵列操作 /*============ ...
随机推荐
- Android_存储访问框架SAF
概念 存储访问框架---Storage Access Framework (SAF),这是在Android4.4(API level 19)之后引入的. 借助 SAF,用户可轻松在其所有首选文档存储提 ...
- [工具推荐]_iOS音频批量转换
通常为了便于市场推广和获得更高的下载量,产品安装包的体积是越小越好.那么问题来了,要如何才能做到使安装包的体积最小化呢.根据产品的组成成分,最终可以大概分为,代码,图片,视频,音频等这几部分,今天我们 ...
- SSI PAYLOAD
<pre><!--#exec cmd="ls" --></pre><pre><!--#echo var="DATE_ ...
- 《CEO说》读后感
<CEO说>读书心得(1至3章): 成功的企业和街头小贩有着共性的商业智慧,能够透过复杂的表象看到商业的本质,化繁为简,抓住企业经营的根本要素(现金净流入.利润.周转率.资产收益率.业务增 ...
- AUTOSAR-软件规范文档阅读
https://mp.weixin.qq.com/s/Jzm9oco-MA-U7Mn_6vOzvA 基于AUTOSAR_SWS_CANDriver.pdf,Specification of CAN ...
- 分布式事务专题笔记(二)分布式事务解决方案之 2PC(两阶段提交)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 前面已经了解了分布式事务的基础理论,以理论为基础,针对不同的分布式场景业界常见的解决方案有2PC.TCC ...
- SpringMVC(一)概述、解析器与注解
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.SpringMVC的概述 1.概述 Spring MVC框架是一个开源的Java平台,为开发强大的基 ...
- Java实现蓝桥杯 九宫幻方
九宫幻方 D: 今天做一道题目 九宫幻方 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分. 三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行.每一列和每一条对 ...
- Java实现 LeetCode 668 乘法表中第k小的数(二分)
668. 乘法表中第k小的数 几乎每一个人都用 乘法表.但是你能在乘法表中快速找到第k小的数字吗? 给定高度m .宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字. 例 ...
- Java实现 蓝桥杯VIP 算法提高 数的划分
算法提高 数的划分 时间限制:1.0s 内存限制:256.0MB 问题描述 一个正整数可以划分为多个正整数的和,比如n=3时: 3:1+2:1+1+1: 共有三种划分方法. 给出一个正整数,问有多少种 ...