求大神帮忙给这段matlab程序加上注释,跪谢,急求!

求大神帮忙给这段matlab程序加上注释,跪谢,急求!,第1张

f=imread('cameraman.tif')  如告% 读图

f=im2double(f) % 转化为double型数据

[r c]=size(f)%设置矩阵的行列数,图的大小

h=fspecial('gaussian',[r c],0.5) % 模糊核

g=imfilter(f,h,'circular')  % 图像模糊

a=0.1

b=0.000000000001

n=a+b*randn(r,c)  % 噪声,均值为0.1,方差为b^2

g=g+n  % 模糊图像加噪声

F=fft2(f) % 清晰图像频谱

G=fft2(g)  % 加噪图像频谱

H=psf2otf(h)  % PSF->OTF

N=fft2(n)  % 噪声频谱

H2=conj(H).*H  

N2=conj(N).*N 

F2=conj(F).*F

NF=N2./F2  % 噪信比

huv=H2./(H2+NF)

tuv=(1./(H+eps)).*huv  % 频域滤波器

RA=tuv.*G  

ra=real(ifft2(RA))  % 降贺银噪图像

MN=sum(sum(N2))

MF=sum(sum(F2))

sr=MN/MF

huv=H2./(H2+sr)

tuv=(1./(H+eps)).*huv 禅橡宴 % 另一个频域滤波器

RC=tuv.*Grc=real(ifft2(RC))  % 另一幅降噪图像

figure,imshow(f)title('原始图像')

先写这么多,待会儿再补充,吃饭去了,回来接着写。。

function [uf,vf] = sfn(u,v)%此函数为自定义的sfn函数,u,v为输入变量

uf、vf为输出变量

global e b k%定义全局变量 e b k;

ny = size(u,1)%求出矩阵u的行逗铅瞎的数目,赋给ny

nx = size(u,2)%求出矩阵u的列的数目,赋给nx;

uer = [u(:,1),u,u(:,nx)]

%构造一个矩阵uer,u(:,1)为矩阵u的第一列; u(:,nx) 为矩阵第最后一列,u就不解释了。

uec = [u(1,:)uu(ny,:)]

%构造一个矩阵uec,u(1,:)为矩阵u的第一行;u(ny,:)为u最后一行

ul = uec(3:ny+2,:)+uec(1:ny,:)+uer(:,1:nx)+uer(:,3:nx+2)-4*u

%用矩阵uec的第三行到第(ny+2)行+uec的第一行到第ny行+uer的第一列到第nx列+uer的第三行到(nx+2)列-4*u

u3 = u.*u.*u%把u的三次方赋给u3

uf = (u-u3/3-v)/e + k^2*ul%这行不用激罩解释吧,简单的矩阵运算。

vf = e*(u+b-0.5*v)%同上。。山空

程序2:

clc %清屏

global k b e %定义全局变量k b e

nsteps = 2000%将2000赋给nsteps

nxy = 100%100赋给nxy

u = 5*ones(nxy,1)*([1:nxy]-0.4*nxy)/nxy

%ones(nxy,1)是创建一个nxy*1的矩阵,[1:nxy]是行向量[1 2 3 4 .. nxy]

v = 5*(([1:nxy]-0.4*nxy)')*ones(1,nxy)/nxy%同上

h = 0.04

e = 0.1

b = 0.67

colormap hsv% 创建一个hsv颜色映射表

set(0,'DefaultSurfaceEdgecolor','none')%设置为缺省边缘颜色为none。

k=1

for i=1:nsteps

[uf,vf] = sfn(u,v)%调用上面写的sfn函数

u = u+h*uf%矩阵运算

v = v+h*vf

if mod(i,3) == 1 %如果i对3求余数等于1

pcolor(u)drawnow%按u中元素着色,画图。。

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8269190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存