OpenCV3之操作例子总汇
文章目录
- 一、图像操作
- 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之操作例子总汇相关推荐
- ASP.NET 网站项目 EF 的简单操作例子
ASP.NET 网站项目 EF 的简单操作例子: 操作代码: using EFTest.Models; using System; using System.Collections.Generic; ...
- 2018年第23周-大数据的HDFS数据流及操作例子
上周已经把Hadoop的HDFS的架构和设计大概说了下,也有部署过程.在这周讲的HDFS的数据流及操作例子 HDFS数据流 HDFS系统依赖于以下服务 1.NameNode 2.DataNode 3. ...
- oracle首先创建三个表,oracle理论学习详解及各种简单操作例子(初学者必备)
oracle理论学习详解及各种简单操作例子(菜鸟必备) 1.数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2.关于数据库的概念 DB:数据库(存储信 ...
- mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园
一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...
- oracle10G 错误删除数据或者表 闪回功能帮你忙。。。闪回操作例子
闪回查询 (1).查询闪回 例如: 1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下: select * ...
- Opencv3基础操作3——图像形态学处理
文章目录 形态学腐蚀操作 形态学膨胀操作 开运算 闭运算 梯度运算 礼帽 黑帽 形态学腐蚀操作 腐蚀操作通常处理只有二值的图像(比如黑白),这里的例子就是一个值为255(白色),一个是1(黑色). 先 ...
- ARMV8体系结构简介:exclusive操作例子
之前,提到了为什么要引入exclusive操作.ARM对于exclusive操作,新增了exclusive指令. 下面以一个例子,来说明下,这个是如何工作的. 以以下代码进行说明,标准的抢锁代码: 线 ...
- 在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码比较,opencv3进行g++例子程序编译、动态库的制作
1.首先安装的是cmake软件,使用指令: apt-get install cmake 接着查看版本,测试是否安装成功: root@emouse:/home# cmake --version cmak ...
- oracle事务操作例子,oracle 事务 与 提交
一般事务(DML)即数据修改(增.删.改)的事务 事务会将所有在事务中被修改的数据行加上锁(行级锁),来阻止其它人(会话)同时对这些数据的修改操作. 当事务被提交或回滚后,这些数据才会被释放锁. 举个 ...
最新文章
- C++通过GSoap访问webService
- wdcp导出mysql_phpmyadmin导入导出mysql(只适用WDCP系统)
- AQS理解之四—看看我们写的和 ReentrantLock 的公平不公平锁的区别
- led大屏按实际尺寸设计画面_年会活动要用LED大屏还是投影?专业行家都是看这些数据。...
- 跨站点脚本(XSS)和预防
- 【Java】批判一个有关++的Java选择题
- js 判断字符串为空的方法
- 求解最大公因子(JAVA辗转相除法)、python的最大公因子,最小公倍数
- oracle读写mysql_Oracle读写磁盘经过的缓存
- redhat7 安装telnet服务
- mysql5.7卸载教程_MySQL 5.7.19 简易安装、卸载教程
- LaTex 在线编辑编译,生成PDF —— Overleaf
- 【一文读懂】python 中的 numpy.reshape(a, newshape, order=‘C‘) 详细说明及实例讲解
- 武大郎后悔爱上潘金莲爱上了三剑客
- 股民误将向日葵当成农业股
- 慎用manifest
- vite打包分析插件rollup-plugin-visualizer
- Words Accumulation
- 瑞星linux u盘引导盘杀毒教程,制作启动型杀毒U盘的详细教程
- Spark 2.0的SparkSession详解