数字图像处理:滤波

news/2024/9/19 23:47:47

1、中值滤波

2、均值滤波

3、双边滤波

--------------

下边是基于卷积核滤波的操作:

在图像中滤波的一般操作就是:

  1. 有一个原图。
  2. 有一个滤波核。(其实就是一个滑动窗口)
  3. 就是结果图。

 PS:滤波的效果怎么样,完全取决于你这个滤波核是怎样的,就是原图像在这个滑动小窗口里边是怎么操作的。

就是滤波核在原图像进行从左到右、从上到下的滑动操作。

4、高斯滤波

4.1、高斯分布:

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution)。

二维正态分布:

 

式子中\rhoxy的相关系数。

4.2、高斯滤波核的计算

将上述\sigma _{1}=\sigma _{2}=\sigma\rho =0,得二维高斯曲面的公式如下: (式子中xy表示像素的模板坐标,模板中心位置为原点。)

 根据这个公式,我们可以计算得到不同σ的高斯模板。 下面是假设\sigma =1,将x和y的坐标带进去计算。  

如何确定高斯滤波核里边的值?(核里边的值是根据你的size和标准差\sigma来确定的)

 下面是C语言程序实现:

#include "stdafx.h"
#include <fstream>
#include <math.h>
#include <iomanip>
using namespace std;
#define N 4//(确定高斯核模板大小)
#define PI 3.141592653
int _tmain(int argc, _TCHAR* argv[])
{char* path = "C:\\path1.txt";ofstream fout(path);double a[2 * N + 1][2 * N + 1];    // 高斯模板;(大小为9x9)double r = 1;                     // 高斯半径;double A = 1 / (2 * PI * r * r);if (fout){for (int i = -1 * N; i <= N; i++){for (int j = -1 * N; j <= N; j++){a[i + N][j + N] = A*exp((-1)*(i*i + j*j) / (2 * r*r));fout << setiosflags(ios::fixed) << setprecision(6) << a[i + N][j + N] << "   ";}fout << endl;}}fout.close();return 0;
}

 当σ即半径为0.7时,最后得到的高斯滤波核结果如下图所示:(大小为9x9)

那么,我们还有个问题,如何确定模板的大小与标准差之间的关系。经过我们的不断验证,即改变上述的σ和模板大小的值,可以得知。当σ越大时,要求的模板也就是越大。即当σ为1时,我们可以得到如下的高斯模板:

 上图的意思是,与水平面平行的x,y平面,也就是上面高斯模板中的坐标(x,y),z轴表示的灰度值,也就是上面高斯模板中的灰度值。

通过上图我们可以得知,7*7的模板已经不能满足我们,我们需要9*9的模板,这时如果用5*5的模板,则会取中间部分的5*5模板。模板和σ的选择取决于我们图像的大小。如果图像是几万的分辨率,则需要高斯模板和σ值都要很大,如果几十的分辨率,用很小的如3*3的模板或者5*5的模板就可以了,这时σ一般可以取0.5左右。

得到的绘出的高斯曲面:

 还可以对高斯核进行归一化处理,就是把高斯核内的所有数据相加,取倒数再与每一个值相乘就是最终的权重(如上右图)。 

4.3、高斯滤波的思想

(就是类似于高斯分布图一样,离得近多分一点,离得远少分一点)

给每一个像素点加一个系数,离自身中心点越近,系数越大。

可以看出将中间的灰度值进行平滑了。

  下边是5x5的卷积核:(道理一样,中心点他的权重高,向外扩展,无论是水平方向还是垂直方向向外扩展越远他所占的权重比越来越低。)

参考博客:https://blog.csdn.net/farmwang/article/details/78699926

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/17828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

齐次坐标的理解(1)

1、为什么要引入齐次坐标&#xff0c;齐次坐标的意义 首先百科解读&#xff1a; 齐次坐标就是将一个原本是n维的向量用一个n1维向量来表示&#xff0c;是指一个用于投影几何里的坐标系统&#xff0c;如同用于欧氏几何里的笛卡儿坐标一般。 以下内容是对这个链接的翻译&#x…

齐次坐标的理解(2)

接上篇文章齐次坐标的理解&#xff08;1&#xff09;&#xff1a;https://blog.csdn.net/m0_37957160/article/details/119549709 “齐次坐标表示是计算机图形学的重要手段之一&#xff0c;它既能够用来明确区分向量和点&#xff0c;同时也更易用于进行仿射&#xff08;线性&a…

OpenCV中的二进制鲁棒独立基本特征——BRIEF

OpenCV中的二进制鲁棒独立基本特征——BRIEF 1. 效果图2. 源码参考这篇博客将介绍OpenCV中的二进制鲁棒独立基本特征。BRIEF是一种更快的特征描述符计算和匹配方法。它还提供了较高的识别率,除非存在较大的面内旋转。 BRIEF Binary Robust Independent Elementary Features 二…

相机标定:(1)相机模型

之前在进行标定时只是简单的会使用&#xff0c;调用OpenCV里边的函数&#xff0c;完成标定即可。并没有做过多深入的理解&#xff0c;今天趁着course学习把标定详细的记录一下&#xff0c;以下完全是个人理解如果有不对的地方欢迎批评指正。 公式推导见标定2&#xff08;2&…

.NET 4.0 Interop新特性ICustomQueryInterface (转载)

.NET 4.0 Interop新特性ICustomQueryInterface 在.NET Framework v4.0发布的新功能中&#xff0c;在名字空间System.Runtime.InteropServices新增加了一个叫做ICustomQueryInterface的Interface, 顾名思义&#xff0c;这个Interface的功能就是使得用户可以自己控制QueryInterf…

相机标定(1)

理解相机标定就要想明白相机模型,成像原理(小孔成像)。 相机标定一共分为两个部分: (1)在进行精度较高的测量时,需要校正畸变即图像的畸变矫正 !(是自身的) (2)相机和机器人之间标定 =手眼标定!

相机标定:(2)内\外参矩阵和畸变矩阵

由(1)我们知道相机模型:相机标定:(1)相机模型_Upupup6的博客-CSDN博客 标定一共分为两个部分: (1)在进行精度较高的测量时,需要校正畸变即图像的畸变矫正,需要进行相机标定 !(是自身的) (2)相机和机器人之间标定 =手眼标定! 0、标定的意义 无论是在图像测…

OpenCV中的立体图像创建深度图

OpenCV中的立体图像创建深度图 1. 效果图2. 源码参考这篇博客将介绍如何从立体图像创建深度图。 1. 效果图 原图 VS 视差图效果如下: 可以看到结果受到高度噪音的污染。通过调整 numDisparities 和 blockSize 的值,可以获得更好的结果。 2. 源码 # 立体图像匹配和点云生…