没有合适的资源?快使用搜索试试~ 我知道了~
(完整word版)全变分去噪matlab程序注释.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 41 浏览量
2022-10-30
15:13:33
上传
评论
收藏 38KB DOCX 举报
温馨提示
试读
2页
(完整word版)全变分去噪matlab程序注释.docx(完整word版)全变分去噪matlab程序注释.docx
资源推荐
资源详情
资源评论
Function test1()
%定义test函数
im=imread('water.tif');
figure(1),imshow(im,[])
im=double(im);
%读取一幅tif格式的water图像,命名为im
%创建图像1,用来显示刚才读取的im图像
%生成矩阵im
[nx,ny]=size(im);
rand('state',0);
%读取矩阵的大小,Nx是矩阵im的行,Ny是矩阵的列
%为了能和作者产生相同的结果,在这里选择0,意思是在指定状态下,产生相同的随机结果
rdn=randn(nx,ny);
sigma1=20;
%随机的噪声是一个和输入图像的尺寸一样大的噪声,命名为rdn
赋值% 令西格玛等于20
noise=sigma1.*rdn;
%噪声等于20倍的rdn
imy=im+noise;
%新生成的imy图像是原图像加上噪声的图像,即imy是含噪声图像
figure(2),imshow(imy,[]),title(num2str(sigma1));
%建立图像2,用来显示带噪声的图像imy,标提是西格玛1的值
iteration=500;
u_old=imy;
迭代终%止的值
%进行初始化
系数
%迭代开始,是从1到500,步长为1,也就是迭代500次
tau=0.01;
%
for n=1:iteration
u=u_old+tau .*(BackwardX( ForwardX(u_old))+BackwardY(ForwardY(u_old)));
f x, y
f x, y
2
2
u u old 0.01
%对图像求二阶偏导,公式为
x
2
y
2
u_old=u;
将计算后%得到的图像u重新命名为u-old
figure(3),imshow(u,[]),title(num2str(n))
建% 立图像3,用来显示图像u,标题为迭代次数
end
end
%结束
%结束
function [dx]=BackwardX(u);
[Ny,Nx] = size(u);
%定义BackwardX(u)函数
%读取矩阵u的大小,因为对行求差的时候只需要列坐标变动,所以这里行列的名字颠倒一下,这样更方便
dx = u; 令dx和u%一样
dx(2:Ny-1,2:Nx-1)=( u(2:Ny-1,2:Nx-1)-u(2:Ny-1,1:Nx-2));
f y,x
dx y,x u y,x u y,x 1
dx
保留竖直方向上的差值
%
对矩阵中列求一阶偏导,即
x
a a
a
1n
12
11
%
dx
a a
y2
a
y1
mn
dx(:,Nx) = -u(:,Nx-1);
%dx中Nx列所有元素的值都等于-u矩阵中Nx-1列的
end
%结束
function [dy]=BackwardY(u);
[Ny,Nx] = size(u);
dy = u;
%定义BackwardY(u)函数
读取图像%U的大小
令dx和u一%样
dy(2:Ny-1,2:Nx-1)=( u(2:Ny-1,2:Nx-1) - u(1:Ny-2,2:Nx-1) );
资源评论
- weixin_481408692023-05-30简直是宝藏资源,实用价值很高,支持!
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功