📄 ip_tvh.m
字号:
function I = ip_tvh(I,M,args)
% get the parameters
a2 = args{1}^2;
% get M
ndx = find(M);
% compute neighbors
Io = I(ndx);
Itmp = circshift(I,[0 -1]); Ie = Itmp(ndx);
Itmp = circshift(I,[0 1]); Iw = Itmp(ndx);
Itmp = circshift(I,1); In = Itmp(ndx);
Itmp = circshift(I,-1); Is = Itmp(ndx);
Itmp = circshift(I,[1 -1]); Ine = Itmp(ndx);
Itmp = circshift(I,[1 1]); Inw = Itmp(ndx);
Itmp = circshift(I,[-1 -1]); Ise = Itmp(ndx);
Itmp = circshift(I,[-1 1]); Isw = Itmp(ndx);
% compute weights
We = (a2 + (Ie - Io).^2 + (0.25*(Ine+In-Is-Ise)).^2).^-.5;
Ww = (a2 + (Iw - Io).^2 + (0.25*(Inw+In-Is-Isw)).^2).^-.5;
Ws = (a2 + (Is - Io).^2 + (0.25*(Ise+Ie-Iw-Isw)).^2).^-.5;
Wn = (a2 + (In - Io).^2 + (0.25*(Ine+Ie-Iw-Inw)).^2).^-.5;
% approximate new image
I(ndx) = (Ie.*We + Iw.*Ww + In.*Wn + Is.*Ws)./ (We+Ww+Wn+Ws);
%I(ndx) = Io + 1/(2*0.5)*(Ie.*We + Iw.*Ww + In.*Wn + Is.*Ws)./ (We+Ww+Wn+Ws);
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -