高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 實現

article/2025/11/7 13:39:48
http://blog.csdn.net/cay22/article/details/5546636 

高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 實現

 

在之前提到過了均值濾波器, 就是說某像素的顏色, 由以其為中心的九宮格的像素平均值來決定. 在這個基礎上又發展成了帶權的平均濾波器, 這裡的高斯平滑或者說濾波器就是這樣一種帶權的平均濾波器.

那麼這些權重如何分布呢? 我們先來看幾個經典的模板例子(權重的分布就是使用這些模板來設置):

 

 

 

嘗試了使用這些濾波器對我們原來的圖進行操作, 得到了這樣的一組結果:

 

原圖:

 

 

3x3 高斯:

 

 

5x5 高斯:

 

單純從效果來看, 兩個模板都起到了平滑的作用, 只是程度有深淺的區分. 那麼從理論上來說為什麼能起到平滑的作用呢? 很顯然, 像素的顏色不僅由自身決定了, 同時有其周圍的像素加權決定, 客觀上減小了和周圍像素的差異. 同時這些權重的設定滿足了越近權重越大的規律. 從理論來講, 這些權重的分布滿足了著名的所謂高斯分布:

 

   這就是1維的計算公式

 

 

 這就是2維的計算公式

 

x, y表示的就是當前點到對應點的距離, 而那些具體的模板就是由這裡公式中的一些特例計算而來. 需要說明的是不只有這麼一些特例, 從wikipedia可以方便地找到那些復雜的模板比如像:

 

Sample Gaussian matrix

This is a sample matrix, produced by sampling the Gaussian filter kernel (with σ = 0.84089642) at the midpoints of each pixel and then normalising. Note that the center element (at [4, 4]) has the largest value, decreasing symmetrically as distance from the center increases.

 

0.00000067 0.00002292 0.00019117  0.00038771 0.00019117  0.00002292 0.00000067

0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292

0.00019117  0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117 

0.00038771 0.01330373 0.11098164 0.22508352  0.11098164 0.01330373 0.00038771

0.00019117  0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117 

0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292

0.00000067 0.00002292 0.00019117  0.00038771 0.00019117  0.00002292 0.00000067

 

是不是看到就頭大了:) 不過沒關系, 對於一般的應用來說, 前面的例子已經可以完成任務了.  代碼的話我們還是給一份5x5的example:

 

view plaincopy to clipboardprint?

/** 

** method to remove noise from the corrupted image by gaussian filter value 

* @param corrupted input grayscale binary array with corrupted info 

* @param smooth output data for smooth result, the memory need to be allocated outside of the function 

* @param width width of the input grayscale image 

* @param height height of the input grayscale image 

*/ 

void gaussianFilter2 (unsigned char* corrupted, unsigned char* smooth, int width, int height)  

{  

    int templates[25] = { 1, 4, 7, 4, 1,   

                          4, 16, 26, 16, 4,   

                          7, 26, 41, 26, 7,  

                          4, 16, 26, 16, 4,   

                          1, 4, 7, 4, 1 };        

      

    memcpy ( smooth, corrupted, width*height*sizeof(unsigned char) );  

    for (int j=2;j<height-2;j++)  

    {  

        for (int i=2;i<width-2;i++)  

        {  

            int sum = 0;  

            int index = 0;  

            for ( int m=j-2; m<j+3; m++)  

            {  

                for (int n=i-2; n<i+3; n++)  

                {  

                    sum += corrupted [ m*width + n] * templates[index++] ;  

                }  

            }  

            sum /= 273;  

            if (sum > 255)  

                sum = 255;  

            smooth [ j*width+i ] = sum;  

        }  

    }  

 

附帶說一些,很明顯,和均值濾波器類似, 這個濾波器沒有消除校驗噪聲的作用.

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hhygcy/archive/2009/07/07/4329056.aspx


http://chatgpt.dhexx.cn/article/Np1yBppR.shtml

相关文章

高斯玻色采样enhance量子近似优化算法

上篇博文&#xff0c;我们已经接触了QAOA量子近似优化算法&#xff0c;我们已经知道近似优化算法一般用于求解组合优化问题。这里我们再说明一下什么是组合优化问题&#xff1a; 给定一个数据集 X &#xff5b; x 1 , x 2 , . . . x N &#xff5d; X&#xff5b;{x_{1},x_{2…

matlab 绘制高斯(Gaussan)函数图像

高斯函数如下&#xff1a; G a u s s a n 1 2 π σ e − ( x − μ ) 2 2 σ 2 Gaussan \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} Gaussan2π ​σ1​e−2σ2(x−μ)2​ 使用 MATLAB 编写高斯函数&#xff0c;需传入 x , μ , σ x,\mu,\sigma x,μ,…

高斯平滑滤波器(Gaussian Smoothing Filter)

一、图像滤波的基本概念 图像常常被强度随机信号&#xff08;也称为噪声&#xff09;所污染。一些常见的噪声有椒盐&#xff08;Salt & Pepper&#xff09;噪声、脉冲噪声、高斯噪声等。椒盐噪声含有随机出现的黑白强度值&#xff0e;而脉冲噪声则只含有随机的白强度值&am…

高斯滤波(Gauss filtering)

1.概念介绍 高斯滤波是一种线性平滑滤波&#xff0c;适用于消除高斯噪声&#xff0c;广泛应用于图像处理的减噪过程。  通俗的讲&#xff0c;高斯滤波就是对整幅图像进行加权平均的过程&#xff0c;每一个像素点的值&#xff0c;都由其本身和邻域内的其他像素值经过加权平均后…

Matlab_用高斯赛德尔(Gaoss-Seidel)迭代法解线性方程组

1.程序代码 function xGauss(A,b,x0,ep,N) %用途&#xff1a;用高斯迭代法解线性方程组Axb %A为系数矩阵&#xff0c;b为右端向量&#xff0c;x0为初始向量&#xff08;默认零向量&#xff09; %ep为精度&#xff08;1e-6&#xff09;&#xff0c;N为最大迭代次数&#xff…

gaussian_filter( )函数(高斯滤波)

对一个数进行高斯滤波&#xff08;模糊&#xff09;可以理解成将该数取附近矩形窗口所有值的加权平均值&#xff0c;距离处理数越近的点权重越大&#xff0c;距离处理点越远的点权重越小。因此如果取的矩形窗口越大&#xff0c;那么对处理点的模糊效果越强烈。 上图&#xff0c…

Gauss-Seidel迭代法的C++实现

高斯赛德尔迭代法大家可以从网站上找到相关的公式推导&#xff0c;这里给出它的C算法实现和运行的结果。 #include<iostream> #include<math.h> using namespace std;int n; //定义全局变量 double a[100…

高斯平滑

&#xfeff;&#xfeff; 高斯平滑 Common Names: Gaussian smoothing 简述&#xff1a; 高斯平滑操作是一种2-D的卷积操作&#xff0c;应用于模糊图像中&#xff0c;去除细节和噪声。从这个意思上说&#xff0c;它类似于均值滤波器&#xff0c;但是使用的是不同的内核&#…

高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现

发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了. 在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波…

Gaussian Smoothing(高斯平滑)

高斯平滑操作是一个二维卷积操作&#xff0c;用于**“模糊”**图像&#xff0c;去除细节和噪音。它类似于均值滤波器(假如3X3&#xff0c;则全部相加取均值&#xff0c;即成为中间点的像素值)&#xff0c;但它使用不同的核表示高斯驼峰的形状。 二维高斯公式 平均值(0&#xf…

高斯-赛戴尔(Gauss-Seidel)迭代法及算法实现

1、高斯-赛戴尔迭代法的定义以及表达形式 以下列方程组为例&#xff1a; 在雅克比迭代法中&#xff0c;并没有对新算出的分量进行充分利用&#xff0c;一般来说&#xff0c;这些新算出计算的结果要比上一步计算的结果精确。 对上式第二个方程组&#xff0c;第一行式子算出的x值…

常用技术指标之一文读懂RSI指标

什么是RSI指标&#xff1f; RSI (Relative Strength Index) 中文名又叫相对强弱指标&#xff0c;由韦尔斯.怀尔德(Welles Wilder)首创&#xff0c;发表在他的《技术交易系统新思路》一书中&#xff08;1978年版&#xff09; RSI指标基本原理&#xff1a; 通过测量一段时间间内…

量化投资常用技能——指标篇3:详解RSI指标,及其代码实现和绘图

量化投资常用技能 系列文章目录 我们已经介绍了三篇关于量化投资方面绘图的文章和两篇指标类的推导和介绍的文章&#xff0c;大家有兴趣可以了解一下 绘图篇 量化投资常用技能——绘图篇 1&#xff1a;绘制股票收盘价格曲线和ochl烛状图量化投资常用技能——绘图篇 2&#xf…

缠论指标(全网最精准)

支持平台 01 通达信(电脑手机&#xff09; 通达信版本简介 02 01 基础版功能&#xff1a; 支持缠论自动分笔&#xff0c;自动线段&#xff0c;显示笔中枢&#xff08;蓝色&#xff09;&#xff0c;线段中枢&#xff08;橙色&#xff09;&#xff0c;支持笔段中枢混合显示…

使用bind搭建权威DNS、智能DNS

DNS的解析过程&#xff1a;&#xff08;以www.qq.com为例说明&#xff09; 1、在浏览器中输入www.qq.com域名&#xff0c;操作系统会先检查自己本地的hosts文件是否有这个网址映射关系&#xff0c;如果有&#xff0c;就先调用这个IP地址映射&#xff0c;完成域名解析。 2、如…

DNS服务器的搭建

DNS&#xff08;域名系统&#xff09;&#xff0c;它用于TCP/IP网路。它提供的服务是用来将主机名和域名转换为IP地址的工作。 DNS常用术语 1. DNS服务器&#xff1a;提供域名解析服务的主机。 2. DNS客户机&#xff1a;任何联网的需要查询主机域名信息的主机。 3. 正向解析…

部署搭建DNS服务器

部署搭建DNS服务器 域名服务器DNS域名解析流程域名类型 DNS主服务器搭建正向解析配置配置正向区域数据文件DNS服务器测试 反向解析配置配置反向区域数据文件DNS服务器测试 DNS从服务器搭建正向反向解析配置DNS服务器测试 域名服务器 DNS&#xff08;Domain Name Server&#x…

智能DNS服务器搭建

前期准备 查看IP [rootlocalhost ~]# ip a | grep ens 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.200.111/24 brd 192.168.200.255 scope global ens32 3: ens34: <BROADCAST,MULTICAST…

DNS:快速搭建公司内网DNS解析服务器

背景 是这样的&#xff0c;公司办公室有小机房&#xff0c;研发测试开发环境在这&#xff0c;但是CTO吧&#xff0c;觉得测试环境通过ip访问太复杂&#xff0c;难记&#xff0c;通过黄页打开觉得太low&#xff0c;虽然办公室出口也有公网ip&#xff0c;直接可以解析进来&#…

DNS搭建

环境 server1&#xff1a;bigpeng1 IP&#xff1a;172.25.1.101 GW&#xff1a;172.25.1.1 DNS&#xff1a;172.25.1.101 server2&#xff1a;bigpeng2 IP&#xff1a;172.25.1.102 GW&#xff1a;172.25.1.1 DNS&#xff1a;172.25.1.101 client&…