tuxiangfuyuan.m

来自「该程序为盲源分离的仿真程序」· M 代码 · 共 62 行

M
62
字号
function image=bldconv(g)
%Blind-deconv example
%Created by realasking
%Welcome to visit my blog: hi.baidu.com/realasking
%finish time:5-22-2007

a1=0.1;
a2=0.01;

PQ=paddedsize(size(g));
G=fft2(g,PQ(1),PQ(2));

[y x]=size(G);
htemp=ones(3);
h0=freqz2(htemp,PQ(1),PQ(2));
R=Rcreat(y,x);

H=h0;
for k=1:10 %计算IMG和psf
iMG=(conj(H).*G)./((conj(H).*H)+a1*R);
H=conj(iMG).*G./((conj(iMG).*iMG)+a2*R);
end

IMG=mat2gray(real(ifft2(iMG)));
image=IMG(1:size(g,1),1:size(g,2));
imwrite(image,'testfile.tif')
imshow(image,[]);
hold on;

end

%===========================
%计算R矩阵的函数Rcreat
%===========================

function R=Rcreat(y,x)
%R矩阵生成子函数
%by Realasking
%为bdeconv.m编制

i=1:y
j=1:x

RI=zeros(y,x);
RJ=zeros(y,x);
R=zeros(y,x);

for k=1:y %向量化代码生成R的矩阵
RI(k,i)=-2*cos(2*pi*i./y);
end

for k=1:x
RJ(j,k)=-2*cos(2*pi*j'./x);
end

R=4+RI+RJ;

end 

 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?