MATLAB课设代做在哪儿找,MATLAB代做|FPGA代做--Tikhonov算法的仿真

资源简介:

MATLAB程序下载——一基于MATLAB的Tikhonov算法的仿真。

function [u,SNR] = tik_inpaint(I,u0,mask)

% Algorithm for the Tikhonov model of image inpainting, using a least

% squares approach (as opposed to iterative approach)

%

% Input: I = original clean image

%        u0 = corrupted image

%        mask = set of data without missing intensities

%

% Output: u = TV restored image

%         SNR = signal-to-noise ratio

% initialization

[n,m]=size(u0);

u0=u0(:);

nm=n*m;

u0(mask == 1) = NaN;

k=isnan(u0(:));

% list the nodes which are known, and which will be interpolated

notinD = find(k);

inD = find(~k);

[nr,nc]=ind2sub([n,m],notinD);

notinD=[notinD,nr,nc];

% build sparse matrix approximating Laplacian for every element in u0.

% compute finite difference for second partials on row variable

[i,j]=ndgrid(2:(n-1),1:m);

indices=i(:)+(j(:)-1)*n;

laplacian=sparse(repmat(indices,1,3),[indices-1,indices,indices+1], ...

repmat([1 -2 1],(n-2)*m,1),n*m,n*m);

% now second partials on column variable

[i,j] = ndgrid(1:n,2:(m-1));

indices   = i(:)+(j(:)-1)*n;

laplacian=laplacian+sparse(repmat(indices,1,3),[indices-n,indices,indices+n], ...

repmat([1 -2 1],n*(m-2),1),nm,nm);

% eliminate knowns

rhs=-laplacian(:,inD)*u0(inD);

k=find(any(laplacian(:,notinD),2));

% and solve...

u=u0;

u(notinD(:,1))=laplacian(k,notinD(:,1))\rhs(k);

u=reshape(u,n,m);

% calculate SNR

num = var(I(:), 1);

denom = mean((I(:)-u(:)).^2);

SNR = 10*log10(num/denom);

下载:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值