资源简介
使用双边滤波器对图像进行滤波,达到保边去噪的效果。程序已经调试过,可以运行通过
代码片段和文件信息
// BilaterialFilter.cpp: implementation of the BilaterialFilter class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “BilaterialFilter.h“
#include “Comlib.h“
#include
#include
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
BilaterialFilter::BilaterialFilter()
{
}
BilaterialFilter::~BilaterialFilter()
{
}
// 双边滤波器的空间领域函数
/****************************************************************************
函数名:double ** BilatFilter:: SpatialFunction(int mode_rowint mode_clodouble singa)
功能描述:实现双边滤波器的空间领域函数
输入参数:spat 函数返回的空间领域函数数据指针
mode_row 滤波器模板的长
mode_clo 滤波器模板的宽
singa 空间函数的方差大小
输出参数:
返回值:double ret;
其他说明:
*****************************************************************************/
double ** BilaterialFilter:: SpatialFunction(int mode_rowint mode_clodouble singa)
{
int ij;
double **ret = (double**)CComlib::fspace_2d(mode_rowmode_closizeof(double));
for (i = -(mode_row/2); i <= (mode_row/2); i++)
{
for (j = -(mode_clo/2); j <= (mode_clo/2); j++)
{
ret[i + mode_row][j + mode_clo] = exp(-1/2 * (i * i + j * j) / (singa*singa));
}
}
return ret;
}
//双边滤波器的灰度相似度函数
/****************************************************************************
函数名:void BilatFilter::RangeWeightFunction(double in_datadouble out_dataint mode_rowint mode_clodouble singa)
功能描述:实现双边滤波器的灰度相似函数
输入参数:in_data 输入图像中心点像素值
ou_data 输出的灰度相似函数数据矩阵
singa 灰度相似性函数的方差大小
输出参数:
返回值:double ret;
其他说明:
*****************************************************************************/
double BilaterialFilter::RangeWeightFunction(double in_data1double in_data2double singa)
{
double ret;
ret = exp(-1/2 * (in_data1 - in_data2)*(in_data1 * in_data2) / (singa*singa));
return ret;
}
//双边滤波器函数
/****************************************************************************
函数名:void BilatFilter::RangeWeightFunction(double in_datadouble out_dataint mode_rowint mode_clodouble singa)
功能描述:实现双边滤波器的灰度相似函数
输入参数:in_data 输入图像数据
ou_data 滤波后输出图像
mode_row 滤波器模板的长
mode_clo 滤波器模板的宽
rowclo 图像的行列数
singa 空间函数的方差大小
输出参数:
返回值:void
其他说明:
*****************************************************************************/
double **BilaterialFilter::BilatFilter(double **in_dataint rowint cloint sizedouble spa_singadouble range_singa)
{
int ijkl;
// double sum1 = 0.0;
// double sum2 = 0.0;
double temp1temp2temp;
int mode_row = size;
int mode_clo = size;
// double **temp1 = (double **)CComlib::fspace_2d(mode_rowmode_closizeof(double));
double **output_img = (double **)CComlib::fspace_2d(rowclosizeof(double));
for (i = 0; i < row; i++)
{
for(j = 0; j {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16384 2011-03-09 17:32 双边滤波\~VC2EA.tmp
文件 973 2011-03-09 19:37 双边滤波\FileIO.h
文件 0 2011-03-09 17:32 双边滤波\~VC2EB.tmp
文件 9308 2011-03-09 19:35 双边滤波\FileIO.cpp
文件 4756 2011-03-09 21:37 双边滤波\BilaterialFilter.cpp
文件 17462 2010-06-29 18:15 双边滤波\mountain_p3.bmp
文件 4922 2011-03-09 21:38 双边滤波\BilFit.dsp
文件 667 2011-03-09 11:38 双边滤波\StdAfx.h
文件 293 2011-03-09 11:38 双边滤波\StdAfx.cpp
文件 1208 2011-03-09 11:38 双边滤波\ReadMe.txt
文件 535 2011-03-09 11:38 双边滤波\BilFit.dsw
文件 66560 2011-03-12 10:49 双边滤波\BilFit.ncb
文件 985 2011-03-12 10:27 双边滤波\BilFit.plg
文件 814 2011-03-09 12:41 双边滤波\Comlib.h
文件 2485 2011-03-09 12:42 双边滤波\Comlib.cpp
..A.SH. 34816 2011-03-12 10:28 双边滤波\Thumbs.db
文件 930 2011-03-09 16:06 双边滤波\BilaterialFilter.h
文件 148480 2011-03-12 10:27 双边滤波\Debug\vc60.idb
文件 187368 2011-03-12 10:26 双边滤波\Debug\BilFit.pch
文件 233472 2011-03-12 10:26 双边滤波\Debug\vc60.pdb
文件 1975 2011-03-12 10:26 双边滤波\Debug\StdAfx.obj
文件 48738 2011-03-12 10:26 双边滤波\Debug\FileIO.obj
文件 7528 2011-03-12 10:26 双边滤波\Debug\Comlib.obj
文件 46869 2011-03-12 10:27 双边滤波\Debug\BilFit.obj
文件 7410 2011-03-12 10:26 双边滤波\Debug\BilaterialFilter.obj
文件 262112 2011-03-12 10:27 双边滤波\Debug\BilFit.ilk
文件 245810 2011-03-12 10:27 双边滤波\Debug\BilFit.exe
文件 484352 2011-03-12 10:26 双边滤波\Debug\BilFit.pdb
文件 2141 2011-03-12 10:12 双边滤波\BilFit.cpp
文件 263222 2004-12-02 11:20 双边滤波\2.bmp
............此处省略7个文件信息
- 上一篇:DES算法C++实现
- 下一篇:学生成绩管理系统结构体数组版
相关资源
- DES算法C++实现
- 用C++语言设计的一个小型公司工资管
- 客房管理系统的C++课程设计
- 商品销售统计的C++课程设计
- c++ 写的电梯调度程序
- C++串口通信类,包含头文件和CPP文件
- ADO DATA控件
- Canny 边沿提取算子 C++代码实现
- 拼写纠错 拼写检查 c++
- C++从YUV420序列中获得指定一帧数据(
- 将png格式图片转换成YUV格式,C++
- c++教程网的linux网络编程视频
- SPOOLing算法模拟 C++实现
- 操作系统3种页面置换算法 C++实现
- VC++ 四种进程间通信的完整
- 学生社团管理程序 c++ 课程设计
- C++写的家庭小记账本
- 多机调度问题C++语言解决的源代码
- C++ 停车场管理 数据结构 课程设计
- 书店管理系统 C++
- 八数码游戏程序人工智能,c++
- 一个简单的vs c++ socket通讯程序
- 程序流程图生成器支持C/C++
- C++代码转换成C#工具
- 飞行棋c++源码初学者学习用
- MFC小学生速算练习系统VS2017
- xcs 基于遗传算法的自动学习分类器系
- 基于VS2008和IVF11的C/C++和Fortran混合编程
- 使用标准C++库实现的WAV音频文件读写
- C++ 带接口类动态链接库开发
评论
共有 条评论