• 大小: 920KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 双边滤波  C++  

资源简介

使用双边滤波器对图像进行滤波,达到保边去噪的效果。程序已经调试过,可以运行通过

资源截图

代码片段和文件信息

// 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个文件信息

评论

共有 条评论