资源简介
A.Buwades等人提出的非局部均值滤波的快速实现方法
代码片段和文件信息
function [u_Woutput]=fast_NL(uNPlemda)
u=double(imread(u));
[mn]=size(u);
u2 = padarray(u[N N]‘symmetric‘);
output=zeros(mn);
u_N=zeros(mn);
kernel = make_kernel(P);
kernel = kernel / sum(sum(kernel));
i=1;
for t=-N:N
for s=-N:N
%t=-N;
%s=-N;
if(t==0 && s==0) continue;end;
u_N(1:m1:n)=u2(N+1:N+mN+1:N+n)-u2(N+1+t:N+t+mN+1+s:N+s+n);
u_N=u_N.*u_N;
v_N=exp(-(conv2(u_Nkernel‘same‘))/lemda^2);
u_W(1:m1:ni)=v_N(1:m1:n);
%i
i=i+1;
output(1:m1:n)=output(1:m1:n)+v_N(1:m1:n).*u2(N+1+t:N+t+mN+1+s:N+s+n);
end
end
%i
for i=1:m
for j=1:n
u_Wmax(ij)=max(u_W(ij:));
u_Wsum(ij)=sum(u_W(ij:));
end
end
%u_Wma(1:m1:n)=max(u_w(1:m1:n:))
output(1:m1:n)=output(1:m1:m)+u2(N+1:N+mN+1:N+n).*u_Wmax;
output=uint8(output./(u_Wsum+u_Wmax));
figure;
imshow(output);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [kernel] = make_kernel(f)
kernel=zeros(2*f+12*f+1);
for d=1:f
value= 1 / (2*d+1)^2 ;
for i=-d:d
for j=-d:d
kernel(f+1-if+1-j)= kernel(f+1-if+1-j) + value ;
end
end
end
kernel = kernel ./ f;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1325 2011-03-21 22:23 fast_NL.m
----------- --------- ---------- ----- ----
1325 1
相关资源
- 暗通道先验+引导滤波MATLAB代码
-
扩展卡尔曼滤波SOC算法Simuli
nk模型 - 基于MATLAB_GUI_的滤波器设计软件
- 快速非局部均值滤波算法
- matlab设计的五种fir数字滤波器
- 交互多模型的滤波器
- 粒子滤波的基本原理和其在非线性系
- 数学形态滤波
- Trigger Algorithm 算法
- 实时提升小波,滤波
- 冲击滤波模型
- 语音分析程序
- NLTV WI v1 非局部全变分小波域图像修复
- Gaussian Particle Filter 高斯粒子滤波算法
- 阿尔法贝塔滤波器实例
- 低通滤波器
- 容积卡尔曼滤波
- 红外弱小目标的检测与跟踪
- GPS精密单点定位
- 非局部均值图像去噪的原始算法
- 扩散滤波实现图像增强
- 完美产生数字地面电视(DTMB)的信源
- 有源滤波器在双馈式风力发电机中使
- 单相lcl滤波逆变器并网电网电流及电
- 基于低通滤波原理对风电削峰填谷
- 几个SAR图像预处理方法
- 多相滤波(polyphase filter)的基本原理
- 最新最完整的Matlab粒子滤波工具箱(
- 最小二乘算法(LMS)处理滤波并预测
- 数字图像滤波程序
评论
共有 条评论