matlab bp数据压缩,[求助]BP网络在图象压缩中的应用

本文介绍了一种利用BP神经网络进行图像压缩的方法,并详细展示了如何通过调整网络参数实现图像的有效压缩。文中提供了完整的MATLAB代码示例,包括数据预处理、网络训练及图像压缩效果对比。

icon10.gif [求助]BP网络在图象压缩中的应用

构建的BP网络

function Y=S(I)

P=I;

T=P;

%规范化数据

[pn,minp,maxp,tn,mint,maxt] = premnmx(P,T);

[ptrans,transMat] = prepca(pn,0.001);

[R,Q] = size(ptrans);

%建立网络

net=newff(minmax(P),[16,64],{'tansig','purelin'},'traingdx');

net.LW{2,1} = net.LW{2,1}*0.01;

net.b{2} = net.b{2}*0.01;

[W1,B1]=nwtan(8,64);

%网络训练

net.trainParam.show=2000;

%设置训练显示间隔次数

net.trainParam.epochs=10000;

%设置最大训练循环次数

net.trainParam.goal=0.001;

%设置性能目标值

net.trainParam.lr=0.01;

%设置学习系数

net.trainParam.mc=0.95;

%设置动量因子

net.trainParam.lr_inc=1.05;

%设置递增乘因子

net.trainParam.lr_dec=0.7;

%设置递减乘因子

net.trainParam.max_perf_inc=1.04;

%设置误差速率

[net,tr]=train(net,P,T);

for i=1:16;

w1=net.IW{1,1};

b1=net.b{1};

w2=net.LW{2,1};

b2=net.b{2};

a=simuff(P,w1,b1,'tansig');

yasuo_doc1(1,i).yincengshuchu=a;

yasuo_doc1(1,i).layerweight=w2;

yasuo_doc1(1,i).bias=b2;

save;

end

Y=sim(net,P);

主程序

load rice

I1=rice

I=double(I1)+1;

I=I/255;

Y=@S;

I2=blkproc(I,[64 64],Y);

subplot(1,2,1);imshow(I1);

title('压缩前的图像');

axis square;

disp('压缩前图像大小');

whos('I1');

subplot(1,2,2);imshow(I2);

title('压缩后的图像');

axis square;

disp('压缩后图像大小');

whos('I2')

弱弱的问一下

如果改变压缩比该怎么改

图象的信噪比该如何显示

谢谢高手指教

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值