计算机视觉实验三图像线性滤波实验(附opencv代码) 在计算机视觉领域中,图像滤波是图像处理中的一个重要步骤。图像滤波的目的是在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 在本实验中,我们将学习使用OpenCV库实现图像的线性滤波,包括框滤波、均值滤波和高斯滤波。这些滤波器都是线性滤波器,每个像素的输出值是一些输入像素的加权和。线性滤波器易于构造,并且易于从频率响应度来进行分析。 一、实验目的 * 通过实验掌握图像的框滤波原理和编程实现方法 * 通过实验掌握图像的均值滤波原理和编程实现方法 * 通过实验掌握图像的高斯滤波原理和编程实现方法 二、实验内容 * 使用OpenCV中的boxFilter函数实现框滤波 * 使用OpenCV中的blur函数实现均值滤波 * 使用OpenCV中的GaussianBlur函数实现高斯滤波 三、实验仪器、设备 * 计算机一台,已安装Windows 7操作系统和Visual Studio 2015 四、实验原理 图像滤波是图像处理中的一个重要步骤。图像滤波的目的是在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 在OpenCV中,提供了三种常用的线性滤波操作,它们分别被封装在单独的函数中,使得使用起来非常方便,分别是: * 框滤波boxFilter函数 * 均值滤波blur函数 * 高斯滤波GaussianBlur函数 五、实验步骤 * 创建Visual Studio 2015控制台程序 * 在Visual Studio 2015中配置OpenCV * 编写代码,使用boxFilter函数实现框滤波 * 编写代码,使用blur函数实现均值滤波 * 编写代码,使用gaussianBlur函数实现高斯滤波 六、实验注意事项 * 完成OpenCV安装之后,VS中配置OpenCV的方法 * boxFilter函数、blur函数、gaussianBlur函数的功能和使用方法 七、实验结果 实验代码如下所示: ```cpp //-------------------------------【头文件、命名空间包含部分】------------------------------- // 描述:包含程序所使用的头文件和命名空间 //------------------------------------------------------------------------------------- #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; //---------------------------------【全局变量声明部分】--------------------------------- // 描述:全局变量声明 //------------------------------------------------------------------------------------- Mat g_srcImage, g_dstImage1, g_dstImage2, g_dstImage3; int g_nBoxFilterValue = 3; // 框滤波参数值 int g_nMeanBlurValue = 3; // 均值滤波参数值 int g_nGaussianBlurValue = 3; // 高斯滤波参数值 //---------------------------------【全局函数声明部分】---------------------------------- // 描述:全局函数声明 //------------------------------------------------------------------------------------- // 四个轨迹条的回调函数 static void on_BoxFilter(int, void *); static void on_MeanBlur(int, void *); static void on_GaussianBlur(int, void *); void ShowHelpText(); //----------------------------------【main( )函数】----------------------------- // 描述:main函数 //------------------------------------------------------------------------------------- int main() { // ... } ``` 在本实验中,我们学习了使用OpenCV库实现图像的线性滤波,包括框滤波、均值滤波和高斯滤波。这些滤波器都是线性滤波器,每个像素的输出值是一些输入像素的加权和。线性滤波器易于构造,并且易于从频率响应度来进行分析。
- 粉丝: 31
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助