OpenCv基础知识梳理总结
来源:互联网 发布:移动刷流量软件 编辑:程序博客网 时间:2024/06/06 02:23
通过一些小例子,来学习下OpenCv的基本知识。
由于OpenCv的c++类和函数都是定义在命名空间cv中的,因此在使用OpenCv的一些类和函数的时候要加上cv::命名空间,还可以选择在程序中OpenCv函数的调用之前使用:
using namespace cv; 来确定命名空间,为了后面程序中OpenCv函数的调用方便。
Mat类:是保存图像以及其他矩阵数据的数据结构,默认大小为0,OpenCv2.0以后,实现图片的载入和显示变得更加便捷。需要使用imread()和imshow()。
看例子学应用:
Mat image1 = imread("imagePath",0);//载入灰度图像
Mat image1 = imread("imagePath",> 0 );//载入3通道的彩色图像
Mat image1 = imread("imagePath",2|4);//载入无损源图像
imshow()函数:原型:inshow(const string& winname, InputArray mat);
第一个参数为:需要显示的窗口标识名;第二个参数为:需要显示的图像类型为Mat。
创建窗口的函数:namedWindow(const string& winname, int flags = WINDOW_AUTOSIZE);
第二个参数的值分为: WINDOW_NORMAL : 无限制。
WINDOW_AUTOSIZE :自适应。
WINDOW_OPENGL:支持openGL。
在opencv2.0中可以 在上面属性的前面加CV_
namedWindow()函数的用途就是创建一个可以存放图片和进度条的容器窗口。
imwrite()函数:输出图像到文件。
imwrite(const string& filename, InputArray img, const vertor<int>¶ms = vector<int>());
第一个参数:需要写入的文件名,注意要带上后缀。
第二个参数:Mat类型的图像数据。
第三个参数:表示特定格式保存的参数编码,若填写按下面要求。
对于JPEG格式 参数[0 100] -表示图片质量,默认值值是95.
对于PNG格式 参数[0 9] -表示压缩级别 默认为3。
对于PPM,PGM,PBM - 表示一个二进制格式的标志,取值为0或1,默认为1.
图像的混合:addweighted();函数
图像处理中一个简单而有趣的点运算操作可以用以下的公式表示,可以实现两张图片的线性融合。
g(x) = (1-α)f0(x) + αf1(x)
这里α 表示两种图片的融合比例,这个g(x)表示 融合图片中的像素点,f0(x)和 f1(x)分别表示背景和前景图片中的像素点。
下面为例程中的函数调用,
beta = ( 1.0 - alpha );
addWeighted( src1, alpha, src2, beta, 0.0, dst);
opencv 通过 addWeighted函数实现图片的线性融合,这个函数在之前的例程中也有提到过。
这个函数的原型如下所示,可以看出这个函数最小需要6个参数。
1、 第1个参数,输入图片1,
2、第2个参数,图片1的融合比例
3、第3个参数,输入图片2
4、第4个参数,图片2的融合比例
5、第5个参数,偏差
6、第6个参数,输出图片
- OpenCv基础知识梳理总结
- C语言基础知识 梳理总结
- C语言基础知识 梳理总结
- C语言基础知识梳理总结
- C语言基础知识 梳理总结
- opencv基础知识总结
- HP软件测试前七章基础知识梳理总结
- 基础知识梳理
- Java基础知识梳理
- Unity3D基础知识梳理<转>
- Unity3D基础知识梳理
- 编程基础知识梳理
- 黑马程序员-基础知识梳理
- 三层基础知识梳理
- Unity3D基础知识梳理
- Unity3D基础知识梳理
- Unity3D基础知识梳理
- C语言基础知识梳理
- 机器学习理论(学习笔记)
- BeanUtils.copyProperties()用法
- bzoj1116 [POI2008]CLO(记录带环连通块)
- 死锁的条件
- linux下基本操作记录mongodb
- OpenCv基础知识梳理总结
- Echarts加载自定义地图geoJson
- SQL 查询存储过程、视图内容
- HDU 5253 连接的管道(kruskal+状态压缩+二维转化为一维)
- ES6的Lambda表达式
- CentOS7.3安装rocketmq
- 【C++】之【运算符重载函数】
- [Linux]入坑笔记(一) 目录
- vim插件之taglist