资源简介
自己实现的非局部均值图像去噪的原始算法,对理解算法原理有一定帮助
代码片段和文件信息
function G = nlm(F win adj h)
% input: F: the original image;
% win: the size of window region
% adj: the size of adjacent region
% h: a degree of filtering
% output G: the output image
% BY Liu Fuxing
[mn]=size(F);
G=zeros(mn);
for i=1:m
i
for j=1:n
% (ij) is the center point
% set the size of adjacent region
ax1=floor(adj/2);
ax2=floor(adj/2);
ay1=floor(adj/2);
ay2=floor(adj/2);
if j<=floor(adj/2)
ay1=j-1;
elseif j+floor(adj/2)>n
ay2=n-j;
end
if i<=floor(adj/2)
ax1=i-1;
elseif i+floor(adj/2)>m
ax2=m-i;
end
% set the size of window region
wx1=floor(win/2);
wx2=floor(win/2);
wy1=floor(win/2);
wy2=floor(win/2);
if j<=floor(win/2)
wy1=j-1;
elseif j+floor(win/2)>n
wy2=n-j;
end
if i<=floor(win/2)
wx1=i-1;
elseif i+floor(win/2)>m
wx2=m-i;
end
k=0;
weigh=0*ones(1win^2);
% choose an adjacent region
for ii=i-wx1+ax1:i+wx2-ax2
for jj=j-wy1+ay1:j+wy2-ay2
% (iijj) is the center of certain adjacent region
if ii-ax1>0 & ii+ax2<=m & jj-ay1>0 & jj+ay2<=n
w=0;
% calculate each element
for iii=ii-ax1:ii+ax2
for jjj=jj-ay1:jj+ay2
% (iiijjj) is a pixel in a certain
% adjacent region
if iii>0 & iii<=m & jjj>0 & jjj<=n
dist=(F(iiijjj)-F(iii-ii+ijjj-jj+j))^2;
w=w+exp(-dist/(h^2));
end
end
end
k=k+1;
weigh(k)=w;
end
end
end
% calculate the weight
total=0;
for t=1:k
total=total+weigh(k);
end
weigh=weigh/total;
% reconstruct
t=0;
for ii=i-wx1+ax1:i+wx2-ax2
for jj=j-wy1+ay1:j+wy2-ay2
if ii-ax1>0 & ii+ax2<=m & jj-ay1>0 & jj+ay2<=n
t=t+1;
G(ij)=G(ij)+F(iijj)*weigh(t);
end
end
end
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2652 2013-04-23 17:14 nlm.m
----------- --------- ---------- ----- ----
2652 1
相关资源
- 基于Matlab的最大熵模糊图像复原算法
- KITTI雷达点云与图像数据融合matlab源码
- matlab 解码 NMEA0183格式GGA数据
- 一个有关飞机的模板匹配的跟踪的m
- 基于MATLAB的电弧模型仿真
- PRI信号分选
- Matlab论文:基于Matlab的二进制数字调
- 802.11协议吞吐量随节点数性能仿真
- matlab图片rgb转yuv,存.yuv文件 播放器
- Duda模式分类Pattern Classification MATLAB 代
- dijkstra算法的matlab实现31274
- 随机路径生成函数matlab
- matlab语音信号处理工具箱
- matlab2013激活文件
- L-shade.zip
-
神经网络算法simuli
nk - matlab实现游程编码
- 暗通道先验+引导滤波MATLAB代码
- 边缘检测中的canny算法及其matlab实现
- 通过达曼光栅生成点阵的matlab程序.
- MATLAB核函数算法
- 求控制系统的性能指标MptrtsFAI,matl
- matlab 求DTFT
- 逆变器重复控制算法MATLAB仿真
- MATLAB R2014b 许可协议文件
- matlab读取comtrade格式的程序
- 基于Matlab的RC一阶电路仿真
- Las点云数据读取代码
- 雷达回波加天线方向图模拟程序
- MATLAB 2017b 安装文件及其破解文件百度
评论
共有 条评论