在matlab中,我们经常用到高斯滤波器,生成滤波器一般都是这样的函数psf =   fspecial('gauss', GaussSize, sigma),但是在vs2010中用到的高斯滤波器不能自己直接定义一个滤波器,所以我就用c++与OPENCV的mat类实现了高斯滤波器,具体代码如下:

  

#include"opencv24.h"
using namespace std;
Mat MakeGaussFilt(int GauSize, double Sigma)
{
double siz = (GauSize-1.0)/;
Mat x = Mat(GauSize,GauSize,CV_64F);
Mat y = Mat(GauSize,GauSize,CV_64F);
for (int i=;i<GauSize;i++)
{
x.col(i)=double(i-siz);
y.row(i)=double(i-siz);
}
Mat argu = Mat(GauSize,GauSize,CV_64F);
Mat x2=x.mul(x);
Mat y2=y.mul(y);
argu = -(x2+y2)/(*Sigma*Sigma);
Mat h = Mat(GauSize,GauSize,CV_64F);
exp(argu,h);
Scalar sumh=sum(h);
double summ=sumh.val[];
h=h/summ;
return h;
}

其中Mat类用到了OPENCV库,自己要在VS上进行库的导入,函数经过亲测,可行。

最新文章

  1. pk8和x509.pem转换成keystore
  2. 关于各种类型数据char、int、double、float 所占空间长度的计算,而char类型让我长姿势了
  3. MyEclipse 8.5整合Git,并在Github上发布项目【转】
  4. A daemon process class in python
  5. Introduction to Structured Data
  6. Careercup - Facebook面试题 - 6026101998485504
  7. 摘录 javescript 常用函数
  8. [置顶] 应广大童鞋的要求提供一个封装模块,直接和ADB 服务进程交互
  9. 一场完美的“秒杀”:API加速的业务逻辑
  10. UOJ #311「UNR #2」积劳成疾
  11. 《PHP内核剖析 - 变量/内存管理》
  12. js 判断数组中是否有重复值
  13. 容器化 — 基于Docker技术容器云
  14. Markdown 引用
  15. RNN知识点
  16. P1242 新汉诺塔(搜索+模拟退火)
  17. 【Linux】percona-toolkit工具包的安装
  18. 【转载】GetDeviceCaps()函数相关说明
  19. Jquery DataTable基本使用
  20. android 打开系统相机,

热门文章

  1. CodeForces-1132C Painting the Fence
  2. python第三天(dictionary应用)转
  3. Halcon17对硬件配置要求
  4. python的三种控制流
  5. Linux杂技
  6. Python执行Linux系统命令的4种方法
  7. Thread.currentThread().getContextClassLoader().loadClass(className)和Class.forName(className)的区别
  8. 【bzoj2049】[Sdoi2008]Cave 洞穴勘测 LCT
  9. hdu 1267 下沙的沙子有几粒? (递推)
  10. 【题解】【CF Round #278】Tourists