function []=blatt4b() %A=im2double(imread('cam11.tif')); %A=[1 0 0 0 0 1 1 1; 0 1 0 0 0 0 1 1 ; 1 0 1 1 0 1 0 0; 1 0 0 0 1 0 1 1; 0 1 0 1 0 0 0 1; 1 1 0 0 1 0 1 1; 0 1 1 1 0 1 1 1; 0 0 0 1 1 1 1 0]; A=zeros(17); sigma=0.1; [m,n]=size(A); y1 = linspace(0,1,m+1); y1 = (y1(1:m) + y1(2:m+1))/2; y2 = linspace(0,1,n+1); y2 = (y2(1:n)+y2(2:n+1))/2; [Y1,Y2]=meshgrid(y1,y2); dA=1/n*1/m; A(max(abs(Y1-0.25),abs(Y2-0.25))<0.1)=1; A((Y1-0.25).^2+(Y2-0.75).^2<0.15^2)=1; F=zeros(n*m,n*m); for j=1:n for i=1:m B=zeros(m,n); for k=1:m for l=1:n B(k,l)=dA*f([Y1(k,l)-Y1(i,j),Y2(k,l)-Y2(i,j)],sigma); %aus Performance GrĂ¼nden wird hier nicht die vorherige Funktion %blur() verwendet, da das Integral nur aus einem einzigen Summan %den besteht end end F(:,(j-1)*m+i)=B(:); end end a=A(:); b=F*a; B=reshape(b,m,n); c=inv(F)*b; C=reshape(c,m,n); noise = normrnd(0,0.05,m,n); noise = abs(noise); B2=B+noise; b2=B2(:); c2=inv(F)*b2; C2=reshape(c2,m,n); figure imshow(A) title('ungeblurrtes Bild') figure imshow(B) title('geblurrtes Bild') figure imshow(C) title('geblurrtes Bild invertiert') figure imshow(B2) title('geblurrtes Bild + Fehler') figure imshow(C2) title('geblurrtes Bild + Fehler invertiert') end function y=f(z,sigma) y=1/(2*pi*sigma^2)*exp(- (norm(z)^2/(2*sigma^2))); end