⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip_tvh.m

📁 采用总变分法(TV)进行图像修复的matlab源代码。包括热扩散修复和多尺度方法。
💻 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 + -