大家都知道,NL-means去噪算法很大的缺陷就是它的运算速度太慢,故,我采取一种快速块匹配对之进行了改进
function [posIdx, weiIdx] = BM_NL_means_test(Img,par)
% Img : 输入图像
% posIdx : 与中心块相似的块的位置索引
% weiIdx : 与中心块相似的块的权重索引
search_r = par.s_r; %search block的半径
similarWinNum = par.nblk; % 相似window的个数
win_r = par.win_r; %similarity window的半径
win=2*win_r+1;%
winSize = win^2; % 每个similarity window的元素个数
hp = par.hp^2; % 高斯参数
step=1;
%在图像四周镜面填充厚度为win_r的像素点,行数和列数增加了win(2*win_r)个
%填充的目的是为了让每一个像素都能被计算到
PaddedImg = padarray(Img,[win_r,win_r],'symmetric','both');
[R , C] = size(PaddedImg);
% R=row+2*win_r C=col+2*win_r
N = R - win + 1; % 最后一个window的起始行坐标(步长1)
M = C - win + 1; % 最后一个window的起始列坐标
winNum =