1. #include<opencv2/opencv.hpp>
  2. #include<iostream>
  3. using namespace std;
  4. using namespace cv;
  5. int main()
  6. {
  7. float array[]={1,2,3};
  8. float array1[]={2,3,1};
  9. //用数组初始化Mat
  10. Mat mat=Mat(1,3,CV_32F,array);
  11. Mat mat1=Mat(1,3,CV_32F,array1);
  12. Mat tempmat;
  13. //对mat拷贝
  14. mat.copyTo(tempmat);
  15. cout<<tempmat<<endl;
  16. //选择roi,rect的四个参数分别是(x,y)坐标,第三个参数是宽度,第四个参数是高度
  17. Mat roi(mat,Rect(0,0,2,1));
  18. cout<<roi<<endl;
  19. //mat-mat1的1范数
  20. cout<<norm(mat,mat1,CV_L1)<<endl;
  21. //mat-mat1的2范数
  22. cout<<norm(mat,mat1,CV_L2)<<endl;
  23. //打印mat的内容
  24. cout<<mat<<endl;
  25. //创建对角为1的矩阵
  26. Mat eyemat=Mat::eye(4,4,CV_8U);
  27. cout<<eyemat<<endl;
  28. //提取eyemat的1-2行,3-4列
  29. Mat submat=eyemat(Range(0,2),Range(2,4));
  30. cout<<submat<<endl;
  31. //abs(),max(),min(),+,-,*,/等操作很简单,就不写了
  32. float a[2][2]={2,3,1,2};
  33. float b[2][2]={2,1,0,-1};
  34. Mat amat(2,2,CV_32F,a);
  35. Mat bmat(2,2,CV_32F,b);
  36. cout<<amat<<endl;
  37. cout<<bmat<<endl;
  38. //求amat的逆
  39. cout<<amat.inv()<<endl;
  40. //两矩阵相乘
  41. cout<<amat.mul(bmat)<<endl;
  42. //生成一个值为0的矩阵
  43. cout<<Mat::zeros(3,3,CV_32F)<<endl;
  44. //生成一个值为1的矩阵
  45. cout<<Mat::ones(3,3,CV_32F)<<endl;
  46. system("pause");
  47. }
  1. #include<opencv2/opencv.hpp>
  2. #include<assert.h>
  3. using namespace cv;
  4. int main()
  5. {
  6. Mat srcImage=imread("f:/huangshan.jpg");
  7. Mat dstImage=imread("f:/Lena.jpg");
  8. assert(srcImage.data!=NULL && dstImage.data!=NULL);
  9. Mat roi=srcImage(Rect(0,0,dstImage.cols,dstImage.rows)); //获取感兴趣区域
  10. Mat mask = imread("f:/Lena.jpg",0);
  11. namedWindow("image",WINDOW_AUTOSIZE);
  12. roi=roi.t(); //mat转置
  13. flip(roi,roi,0); //0为上下翻转,>0为左右翻转,<0同时上下左右翻转
  14. //将掩膜拷贝到ROI中
  15. //dstImage.copyTo(roi,mask);
  16. addWeighted(roi,0.7,dstImage,0.3,0.,roi);
  17. //Mat mask = imread("f:/huangshan.jpg",0);
  18. //img.copyTo(roi,mask);
  19. imshow("image",srcImage);
  20. waitKey();
  21. return 0;
  22. }

Mat代码操作的更多相关文章

  1. Visual Studio 控制台应用程序 同时使用OpenCV和matlab mat文件操作

    matalb具有灵活的图像处理,代码编写起来简洁而高效.而OpenCV具有很多成熟的计算机视觉算法,能够处理很多实时的识别处理等问题,而且代码运行起来效率很高.所以如何结合两者之间的优点,是让很多学术 ...

  2. MAT文件操作

    o李YZo 原文 MAT文件打开方法汇总及其他操作 MAT文件简介 为MATLAB使用的一种特有的二进制数据文件.MAT文件可以包含一个或者多个MATLAB 变量.MATLAB通常采用MAT文件把工作 ...

  3. 通过 C# 代码操作 Google 日历

    原文:通过 C# 代码操作 Google 日历 本文主题 借助 Google .NET APIs Client Library,通过 C# 代码在 Google 日历中创建会议邀请. 本文背景 最近, ...

  4. JavaScript后台代码操作HTML TABLE的方法

    原文:JavaScript后台代码操作HTML TABLE的方法 var rowNum = 0,fileNum = 0; //行号与列号 var oNewRow; //定义插入行对象 var oNew ...

  5. 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

    由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...

  6. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  7. 使用java代码操作Redis

    1导入pom.xml依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis ...

  8. java代码操作Redis

    1.导入需要的pom依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEn ...

  9. Zookeeper学习笔记(三)——java客户端代码操作

    Zookeeper客户端java代码操作 上篇博客记录了shell命令操作zookeeper集群的方式,这次尝试采用java代码来操作.通过查阅API,发现并不困难. 1. 首先获得客户端与服务器的连 ...

随机推荐

  1. mui app在线更新

    一参考资料 二代码 HTML代码 CSS代码 JS代码 接口代码 一.参考资料 http://ask.dcloud.net.cn/article/182 二.代码 1. HTML代码 <div ...

  2. vue削笔机

    // 1.vue 是异步更新dom // 2.vue修改多次状态,vue 只会渲染一次 // 3.vue变化侦查机制,每次状态的变化都会发出一个渲染信号. // 检查队列中是否存在,不存在将渲染操作添 ...

  3. Spring自定义注解扫描的实现

    目标:实现自定义spring自动扫描注解.主要为后期实现分布式服务框架自动注解提供技术支持 技术分析:通过配置组件扫描标签使spring解析标签. 1. JewelScanBeanDefaultPar ...

  4. 2-6-搭建FTP服务器实现文件共享

    ---------------------------------------------- 大纲: FTP服务:(文件传输协议---> File Transfer Protocol) 常见FT ...

  5. UVA-11374 Airport Express (dijkstra+枚举)

    题目大意:n个点,m条无向边,边权值为正,有k条特殊无向边,起止点和权值已知,求从起点到终点的边权值最小的路径,特殊边最多只能走一条. 题目分析:用两次dijkstra求出起点到任何一个点的最小权值, ...

  6. EasyUI validType属性

    /** * 包含easyui的扩展和常用的方法 * * @author * * @version 20120806 */ var wjc = $.extend({}, wjc);/* 定义全局对象,类 ...

  7. Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

    ExtendedActiveRecord 继承自 CActiveRecord,因此基础功能与 CActiveRecord 无异 为添加对多数据库连接的支持,增加了对 connectionName() ...

  8. web应用后台发生的事

    浏览器里输入网址后浏览器会通过访问的域名找出其IP地址,给Web服务器发送一个HTTP请求,得到一个服务的永久重定向响应,然后浏览器跟踪重定向地址,发送另一个请求,服务器接收到获取请求,然后处理并返回 ...

  9. zookeeper数据一致性与paxos算法

    数据一致性与paxos算法 据说Paxos算法的难理解与算法的知名度一样令人敬仰,所以我们先看如何保持数据的一致性,这里有个原则就是: 在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执 ...

  10. c# 实体处理工具类

    using System; using System.Collections; using System.Collections.Generic; using System.ComponentMode ...