文章目录

  • 一、图像操作
    • 1.显示图片
    • 2.图像叠加
    • (1)简单叠加
    • (2)掩膜叠加
    • 3.图像线性混合
      • (1)整体
      • (2)局部
    • 2.图像形态学运算(腐蚀、膨胀等)
    • 3.图像模糊
    • 4.Canny边缘检测
  • 二、视频操作
    • 1.读视频
    • 2.捕获摄像头
    • 3.捕获摄像头+Canny边缘检测
  • 三、书籍

一、图像操作

1.显示图片

imread()

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{Mat img=imread("1.jpg");imshow("[Origin]",img);waitKey(0);return 0;
}

2.图像叠加

ROI:Rect(),copyTo()
https://blog.csdn.net/sandalphon4869/article/details/94565827

(1)简单叠加

#include<opencv2/opencv.hpp>
using namespace cv;int main()
{Mat A=imread("3.jpg");Mat ROI=A(Rect(0,0,100,100));Mat B=imread("5.jpg");B.copyTo(ROI);imshow("A-changed",A);waitKey(0);return 0;
}

(2)掩膜叠加

#include<opencv2/opencv.hpp>
using namespace cv;int main()
{Mat backImage=imread("3.jpg");Mat logoImage=imread("5.jpg");Mat ROI=backImage(Rect(0,0,logoImage.cols,logoImage.rows));//ROIMat mask=imread("5.jpg",0);//mask要读取灰度图logoImage.copyTo(ROI,mask);//使用双参数的重载函数imshow("Effect",backImage);waitKey();return 0;
}

3.图像线性混合

addWeighted():https://blog.csdn.net/sandalphon4869/article/details/94436666#1addWeighted_333

(1)整体

#include<opencv2/opencv.hpp>
using namespace cv;int main()
{Mat backImage=imread("11.jpg");Mat logoImage=imread("12.jpg");Mat dstImage;addWeighted(backImage,0.5,logoImage,0.5,0.0,dstImage);imshow("11.jpg",backImage);imshow("12.jpg",logoImage);imshow("Effect",dstImage);waitKey();return 0;
}

(2)局部

#include<opencv2/opencv.hpp>
using namespace cv;int main()
{Mat backImage=imread("12.jpg");Mat logoImage=imread("5.jpg");Mat ROI=backImage(Rect(0,0,logoImage.cols,logoImage.rows));addWeighted(ROI,0.5,logoImage,0.3,0.0,ROI);imshow("Effect",backImage);waitKey();return 0;
}

2.图像形态学运算(腐蚀、膨胀等)

getStructuringElement()
morphologyEx()
https://blog.csdn.net/sandalphon4869/article/details/94576278#morphologyEx_144

如:腐蚀

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{Mat srcImage=imread("1.jpg");imshow("[Orignin]",srcImage);Mat kernel=getStructuringElement(MORPH_RECT,Size(15,15));Mat dstImage;morphologyEx(srcImage,dstImage,MORPH_ERODE,kernel);imshow("[Effect]",dstImage);waitKey(0);return 0;
}

3.图像模糊

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{Mat srcImage=imread("1.jpg");imshow("[Origin]",srcImage);Mat dstImage;blur(srcImage,dstImage,Size(7,7));imshow("[Effect]",dstImage);waitKey(0);return 0;
}

4.Canny边缘检测

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{Mat srcImage=imread("1.jpg");imshow("[Origin]",srcImage);Mat dstImage,edge,grayImage;dstImage.create(srcImage.size(),srcImage.type());cvtColor(srcImage,grayImage,COLOR_BGR2GRAY);blur(grayImage,edge,Size(7,7));Canny(edge,edge,3,9,3);imshow("[Effect]",edge);waitKey(0);return 0;
}

二、视频操作

1.读视频

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{VideoCapture capture("1.avi");while(1){Mat frame;capture>>frame;imshow("[Video]",frame);//注意视频循环中必须waitKey(ms),否则报错waitKey(30);}return 0;
}

2.捕获摄像头

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{VideoCapture capture(0);while(1){Mat frame;capture>>frame;imshow("[Video]",frame);waitKey(30);}return 0;
}

3.捕获摄像头+Canny边缘检测

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{VideoCapture capture(0);while(1){Mat frame,edge;capture>>frame;cvtColor(frame,edge,CV_BGR2GRAY);blur(edge,edge,Size(7,7));Canny(edge,edge,0,30,3);imshow("[Vedio]",edge);if(waitKey(30)>=0) break;}return 0;
}

三、书籍

链接:https://pan.baidu.com/s/1E03YkYG2pXO5u7hJj3AWaQ
提取码:xipd

OpenCV3之操作例子总汇相关推荐

  1. ASP.NET 网站项目 EF 的简单操作例子

    ASP.NET 网站项目 EF 的简单操作例子: 操作代码: using EFTest.Models; using System; using System.Collections.Generic; ...

  2. 2018年第23周-大数据的HDFS数据流及操作例子

    上周已经把Hadoop的HDFS的架构和设计大概说了下,也有部署过程.在这周讲的HDFS的数据流及操作例子 HDFS数据流 HDFS系统依赖于以下服务 1.NameNode 2.DataNode 3. ...

  3. oracle首先创建三个表,oracle理论学习详解及各种简单操作例子(初学者必备)

    oracle理论学习详解及各种简单操作例子(菜鸟必备) 1.数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2.关于数据库的概念 DB:数据库(存储信 ...

  4. mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园

    一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...

  5. oracle10G 错误删除数据或者表 闪回功能帮你忙。。。闪回操作例子

    闪回查询 (1).查询闪回 例如: 1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下: select * ...

  6. Opencv3基础操作3——图像形态学处理

    文章目录 形态学腐蚀操作 形态学膨胀操作 开运算 闭运算 梯度运算 礼帽 黑帽 形态学腐蚀操作 腐蚀操作通常处理只有二值的图像(比如黑白),这里的例子就是一个值为255(白色),一个是1(黑色). 先 ...

  7. ARMV8体系结构简介:exclusive操作例子

    之前,提到了为什么要引入exclusive操作.ARM对于exclusive操作,新增了exclusive指令. 下面以一个例子,来说明下,这个是如何工作的. 以以下代码进行说明,标准的抢锁代码: 线 ...

  8. 在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码比较,opencv3进行g++例子程序编译、动态库的制作

    1.首先安装的是cmake软件,使用指令: apt-get install cmake 接着查看版本,测试是否安装成功: root@emouse:/home# cmake --version cmak ...

  9. oracle事务操作例子,oracle 事务 与 提交

    一般事务(DML)即数据修改(增.删.改)的事务 事务会将所有在事务中被修改的数据行加上锁(行级锁),来阻止其它人(会话)同时对这些数据的修改操作. 当事务被提交或回滚后,这些数据才会被释放锁. 举个 ...

最新文章

  1. C++通过GSoap访问webService
  2. wdcp导出mysql_phpmyadmin导入导出mysql(只适用WDCP系统)
  3. AQS理解之四—看看我们写的和 ReentrantLock 的公平不公平锁的区别
  4. led大屏按实际尺寸设计画面_年会活动要用LED大屏还是投影?专业行家都是看这些数据。...
  5. 跨站点脚本(XSS)和预防
  6. 【Java】批判一个有关++的Java选择题
  7. js 判断字符串为空的方法
  8. 求解最大公因子(JAVA辗转相除法)、python的最大公因子,最小公倍数
  9. oracle读写mysql_Oracle读写磁盘经过的缓存
  10. redhat7 安装telnet服务
  11. mysql5.7卸载教程_MySQL 5.7.19 简易安装、卸载教程
  12. LaTex 在线编辑编译,生成PDF —— Overleaf
  13. 【一文读懂】python 中的 numpy.reshape(a, newshape, order=‘C‘) 详细说明及实例讲解
  14. 武大郎后悔爱上潘金莲爱上了三剑客
  15. 股民误将向日葵当成农业股
  16. 慎用manifest
  17. vite打包分析插件rollup-plugin-visualizer
  18. Words Accumulation
  19. 瑞星linux u盘引导盘杀毒教程,制作启动型杀毒U盘的详细教程
  20. Spark 2.0的SparkSession详解

热门文章

  1. LocalDate 计算两个日期相差天数
  2. 3dmax卡顿、卡死 怎么解决?
  3. 大功率的用电电器为什么要用三孔插座?
  4. 替换运动学插件TRAC-IK
  5. 如何在cad中导入谷歌地图_如何在Google地图中设置出发和到达时间
  6. Lanczos插值滤波器
  7. 单片机IO口悬空,高阻态究竟是什么意思?
  8. 智能世界2030八大展望
  9. 【RISC-V】 li指令
  10. AFNetworking源码简单分析