matlab自适应高斯滤波,[matlab] 自适应高斯滤波器在二维图像上的应用
为什么使用自适应高斯滤波器:
通常情况下,在使用高斯滤波器对二维图像进行平滑处理时,高斯函数的方差sigma是一个固定的值。在图像的细节区域(比如头发丝),使用较大的sigma会造成过度平滑,使之失去细节信息,在平坦的区域,使用较大的sigma却是一个比较好的选择。
自适应高斯滤波器就是根据被平滑的图像的局部特征,选择不同的sigma,使得在平滑后的结果图像中,可以保持细节信息。
自适应高斯滤波器原理:
自适应高斯滤波器的指导思想是要在最平滑的结果和最佳的保持细节信息的结果中取一个折中方案。它使用了一个能量函数,该函数的的形式为:
该函数有两项,第一项为 c/sigma^2,第二项为epsilon^2。当这两项的和取最小值时的sigma即为所求。
epsilon是残差,假设对一幅二维图像的高斯平滑可以用下面的公式表示:
在(x,y)像素点处,通过高斯平滑得到平滑后(x,y)处的灰度值
,使用原始图像该像素点的灰度值
减去
,可以得到该像素点的残差。
第一项c为常数项,因此要想和取得最小值,该项中sigma应该尽可能大。即该项鼓励sigma增大,希望得到尽可能平滑的结果。
第二项epsilon是残差的平方,要想使和取得最小值,残差就必须尽可能小,即通过高斯平滑后,(x,y)点处的灰度值尽可能不发生大的变化,此时鼓励sigma变小。
由此可知,第一项鼓励sigma变大,第二项鼓励sigma变小。因此由这个公式,可以自适应地选择合适的sigma,使得在平滑的结果和保持细节上得到折中。
matlab代码:
I = imread('lena.jpg');
index = 1;
for sigma = 0.6:0.1:6
gausFilter = fspecial('gaussian', [10, 10], sigma);
adaptiveImg{index} = imfilter(I, gausFilter, 'replicate');
index = index+1;
end
for index = 1:55
adaptiveSub{index} = (I - adaptiveImg{index}).^2;
temp = max(max(adaptiveImg{index}));
end
adaptiveI = I;
for i = 1:size(I, 1)
for j = 1:size(I, 2)
min = 100.0;
sigma = 0.6;
for index = 1:55
temp = 1/sigma + adaptiveSub{index}(i,j);
if temp < min
min = temp;
sigmaMap(i,j) = sigma;
indexMap(i,j) = index;
adaptiveI(i,j) = adaptiveImg{index}(i,j);
end
sigma = sigma + 0.1;
end
end
end
figure;
subplot(1,3,1);
imshow(I);
title('original image');
subplot(1,3,2)
imshow(adaptiveI);
title('adaptive image');
subplot(1,3,3);
imshow(adaptiveImg{20});
title('blur image with sigma = 2.5');
结果:
上图中第一幅图像是原始图像;第二幅图像是使用自适应高斯滤波器得到的结果图像;第三幅图像是使用传统的高斯滤波器得到的结果图像,其中sigma=2.5。
对于第二幅图像,上图展示了每个对应的像素点使用的sigma。可以看出,自适应高斯函数根据原始图像的局部特点,选择了不同的sigma,使得平滑后的图像保持了细节信息。
引用:
1、Mesh Smoothing by Adaptive and Anisotropic Gaussian Filter Applied to Mesh Normals
2、Local Smoothness in Terms of Variance: The Adaptive Gaussian Filter
3、Relief Analysis and Extraction
4、基于最小描述长度原则的各向异性扩散模型
matlab自适应高斯滤波,[matlab] 自适应高斯滤波器在二维图像上的应用相关推荐
- 使用matlab生成高斯滤波模板_高斯滤波matlab及FPGA实现
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程.通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到. ...
- 高斯滤波的开始——高斯核的计算
高斯滤波的开始--高斯核的计算 首先先说说高斯滤波的含义:高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程.通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点 ...
- MATLAB利用FIR滤波器创建二维滤波器
[f1,f2] = freqspace(25,'meshgrid'); Hd = zeros(25,25); d = sqrt(f1.^2 + f2.^2) < 0.5; Hd(d) = 1; ...
- 二维图像中的Hessian矩阵(及MATLAB代码)
文章目录 一.图像中Hessian矩阵的定义及公式推导 二.MATLAB代码 一.图像中Hessian矩阵的定义及公式推导 对于二维图像 f ( x , y ) f(x,y) f(x,y),在点 x ...
- 基于MATLAB实现二维图像叠加进行三维重建
三维重建主要过程概述 绘制圆心位置相同,内外半径相同的系列圆 ,图片尺寸为128*128,类似于血管的圆管柱图像: 绘制圆心位置不同,内外半径相同的系列圆,图片尺寸为128*128,类似于血管的圆管柱 ...
- matlab编程实现自适应均值滤波和自适应中值滤波
matlab编程实现自适应滤波器 一.自适应均值滤波器 1. 原理部分: 2. 程序代码 3. 结果对比 二.自适应中值滤波 1. 原理部分 2.程序代码 3. 结果对比 一.自适应均值滤波器 1. ...
- 带噪图像的高斯滤波MATLAB,图像处理___高斯滤波与高斯噪声
噪声 1.噪声表现形式 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块.一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息.通俗的说就是噪声让图像不清楚. 2 ...
- Matlab高频强调滤波增强,高斯高通滤波器,巴特沃斯高通滤波器图像处理
一.目标: 对lena图像采用高频强调滤波增强方法,并分析方法的效果.(理想.巴特沃斯.高斯).其结果好不好?能否有改善的方法? 二.函数分析: 1.高斯高通滤波器 传递函数: 高斯低通滤波器 传递函 ...
- 用matlab进行拉普拉斯滤波,matlab拉普拉斯算子锐化滤波
一. 本文主要是在给出拉普拉斯锐化算子公式的情况下,在matlab上实现代码设计.拉普拉斯算子是最简单的各向同性微分算子,有几种常用的滤波模板,本文使用的是八邻域模板,如下所示 image.png 其 ...
- 高斯模糊为什么叫高斯滤波_为什么高斯是所有发行之王?
高斯模糊为什么叫高斯滤波 高斯分布及其主要特征: (Gaussian Distribution and its key characteristics:) Gaussian distribution ...
最新文章
- quartz 分布式_6大分布式定时任务对比
- jmeter基本测试步骤
- Ubuntu 16.04 下Redis Cluster集群搭建
- 50. Leetcode 105. 从前序与中序遍历序列构造二叉树 (二叉树-二叉树构建)
- Python从数据库读取大量数据批量写入文件的方法
- 干货 | Python 标准库之 XML(上)
- java sort类_java中sort()方法的用法
- 使用vue开发一个双向展开的卷轴组件
- Pandas to_datetime
- JAVA电影购票系统
- 计算机上怎么计算x的n次方,计算x的n次方(用函数)
- python中函数定义的关键字_python中定义函数的关键字是什么
- 【风马一族_构思】时光穿梭机
- 如何进行网站的稳定性测试《转载》
- 南京理工大计算机专业介绍,南京理工大学计算机科学与技术专业介绍
- 一张RSCU堆积图的改动
- 将电脑硬盘的图片生成一个链接,提供外网访问
- JAVA 面向对象与面向过程区别
- QQ2014版—2014最新版QQ官方下载
- ORACLE 字符串替换函数 REPLACE()
热门文章
- android最新仿微信表情面板,Android高仿微信表情输入与键盘输入详解
- uniapp-前后端开发app-系列01开篇
- C语言实现入门级小游戏——扫雷(排行榜+玩家自定义难度+递归展开一片+标记地雷)版本
- 一个很有意思的熊猫免疫器
- 从人体3D建模和测量入手,云之梦要用虚拟试衣解放量体师和服装导购员
- Mirth连接Sybase数据库
- python计算微积分_python 微积分计算
- selenium官网下载地址以及相关介绍
- 模2除法与二进制除法
- 电子科技大学成都学院计算机考研,电子科大成都学院又双叒叕现学霸寝室,室友全考上研究生...