OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()
OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()
线性滤波:即多个信号之和的响应和它们各自响应之和相等。
参考:
https://blog.csdn.net/poem_qianmo/article/details/22745559
代码:
#include <opencv2/opencv.hpp>Mat g_srcImage,g_dstImage1,g_dstImage2,g_dstImage3; //存储图片的Mat类型
int g_nBoxFilterValue=3; //方框滤波参数值
int g_nMeanBlurValue=3; //均值滤波参数值
int g_nGaussianBlurValue=3; //高斯滤波参数值using namespace cv;
using namespace std;int main(int argc, char *argv[])
{// 载入原图g_srcImage = imread( "F:/C++/2. OPENCV 3.1.0/TEST/1.jpg", 1 );if( !g_srcImage.data ){ printf("Oh,no,读取srcImage错误~! \n"); return false; }//克隆原图到三个Mat类型中g_dstImage1 = g_srcImage.clone( );g_dstImage2 = g_srcImage.clone( );g_dstImage3 = g_srcImage.clone( );g_dstImage4 = g_srcImage.clone( );g_dstImage5 = g_srcImage.clone( );//显示原图imshow("【<0>原图窗口】",g_srcImage);// 1、方框滤波namedWindow("【<1>方框滤波】", 1);createTrackbar("内核值:", "【<1>方框滤波】", &g_nBoxFilterValue, 40, on_BoxFilter);on_BoxFilter(g_nBoxFilterValue,0);// 2、均值滤波namedWindow("【<2>均值滤波】", 1);createTrackbar("内核值:", "【<2>均值滤波】",&g_nMeanBlurValue, 40,on_MeanBlur );on_MeanBlur(g_nMeanBlurValue,0);// 3、高斯滤波namedWindow("【<3>高斯滤波】", 1);createTrackbar("内核值:", "【<3>高斯滤波】",&g_nGaussianBlurValue, 40,on_GaussianBlur );on_GaussianBlur(g_nGaussianBlurValue,0);//输出一些帮助信息cout<<endl<<"\t运行成功,请调整滚动条观察图像效果~\n\n"<<"\t按下“q”键时,程序退出。\n";//按下“q”键时,程序退出while(char(waitKey(1)) != 'q') {}return 0
}
// 1、方框滤波操作的回调函数
static void on_BoxFilter(int, void *)
{//方框滤波操作(未归一化)boxFilter( g_srcImage, g_dstImage1, -1,Size( g_nBoxFilterValue+1, g_nBoxFilterValue+1),Point(-1,-1),false);//显示窗口imshow("【<1>方框滤波】", g_dstImage1);
}// 2、均值滤波操作的回调函数
static void on_MeanBlur(int, void *)
{//均值滤波操作blur( g_srcImage, g_dstImage2, Size( g_nMeanBlurValue+1, g_nMeanBlurValue+1), Point(-1,-1));//显示窗口imshow("【<2>均值滤波】", g_dstImage2);
}// 3、高斯滤波操作的回调函数
static void on_GaussianBlur(int, void *)
{//高斯滤波操作GaussianBlur( g_srcImage, g_dstImage3, Size( g_nGaussianBlurValue*2+1, g_nGaussianBlurValue*2+1 ), 0, 0);//显示窗口imshow("【<3>高斯滤波】", g_dstImage3);
}
结果:
OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()相关推荐
- opencv学习笔记五--文件扫描+OCR文字识别
opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...
- opencv 学习笔记五 二维离散卷积
卷积的用途: 卷积主要用于降噪处理,是降噪处理的一种方式: 二维离散卷积包含高斯滤波,平滑滤波,中值滤波,以及能保证图像边缘的双边滤波和导向滤波算法等: 一.了解噪声的来源以及噪声的分类: 图像中难免 ...
- OpenCV学习笔记五-图像混合
将两张图片混合 P6 图像混合 #include<iostream> #include<opencv2/opencv.hpp>using namespace std; usin ...
- opencv学习笔记五十三:训练自己的级联分类器
训练工作主要分为如下几步: 加载训练环境 制作训练数据集 获取样本路径列表 生成正样本描述文件(.vec) 训练人脸分类器 使用分类器进行人脸检测 加载训练环境 训练过程主要依靠OpenCV自带的两 ...
- opencv学习笔记五十八:grabCut抠图
基本步骤: 基于交互式界面由用户选择前景区域: 定义一个单通道的输出掩码,0为背景,1为前景,2为可能的背景,3为可能的前景: grabCut抠图:将输出结果与可能的前景作比较得到可能的前景: 定义三 ...
- OpenCV学习笔记五:直方图
图像由不同颜色值的像素组成,像素值在图像中的分布情况是图像的一个重要特征. 一.计算图像的直方图 直方图是一个简单的表,它给出了图像中各个像素值的数目(归一化后则为相应的比例),在OpenCV中可以使 ...
- opencv学习笔记五:cv2.warpAffine()函数详解
cv2.warpAffine()函数主要是利用变换矩阵M对图像进行如旋转.仿射.平移等变换,只需要我们提供一个2*3的变换矩阵M,就可以对图像进行变换.它一般是和cv2.getRotationMatr ...
- 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...
1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...
- opencv学习笔记11:图像滤波(均值,方框,高斯,中值)
为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...
最新文章
- 【培训】 项目实训中遇到的问题 总结 跟解决方法
- 手把手玩转win8开发系列课程(18)
- javascript---》arguments对象
- Lighting System Design UVA 11400 (dp+思维)
- Z-Blog 扩展数据库 字段 二次开发
- 域控 只能访问特定网址_开发人员需要了解的特定于域的语言
- Vmware10组建局域网
- Ubuntu安装:解决Unable to locate package *** 问题
- 最经典25本Python编程开发电子书精粹
- 海康流媒体服务器客户端网页打不开,海康dvr流媒体服务器+客户端
- 良心高效,3款超级好用的PC端软件,让你找不到拒绝的理由
- 针对宝塔面板一个站点多个域名使用SSL证书的解决方案
- qemu指定CPU型号
- python求15 17 23 65 97的因数_python练习题-答案
- 北森2020未来人才管理论坛:HR变革驱动中国企业转型
- 2017物联网蓬勃发展,看各领域巨头如何抢先机占山头
- 昵图网显示内部服务器错误,为什么博客老是显示网页错误?无法正常打开
- linux交叉编译 windows,从Windows到Linux的C ++交叉编译器
- html制作打字游戏,js实现打字小游戏
- 双显卡只用独显好吗_显卡有什么作用 独显和双显卡笔记本哪个好【详解】
热门文章
- 论文阅读笔记(三)【ACL 2021】Locate and Label: A Two-stage Identifier for Nested Named Entity
- 深度推荐系统2019年度阅读收藏清单
- 论文浅尝 | 引入“引用”的语言模型
- 论文浅尝 | 主题感知的问答生成
- Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at
- Android中使用官方提供好的功能使用说明(比如系统图库获取),也作为延生学习的学习文档
- TypeError: 'NoneType' object is not subscriptable
- Python:Tensorflow中两个稀疏张量相乘
- 导航栏下拉至一定高度后固定在顶部的特效
- Apache网站服务