图像压缩之基于神经网络压缩(BP)
基于人工神经网络ANN的图像压缩方法。
% *************************************************% **** BP_Compress/Decompress ***% *************************************************
clc;
clear all;
close all;
%function Codec[Image,I,H]=ReadParams ; % Read Parameters %I=16; % Number of nerons in Input and output layer%H=8; % Number of nerons in hidden layerSqrt_H=fix(sqrt(H)); % Input and Output Block size: Sqrt_H* Sqrt_H Sqrt_I=fix(sqrt(I)); % Compressed Block size: Sqrt_I* Sqrt_ITime = clock; % Start execution cloclImage=imread('bar.bmp');Image=rgb2gray(Image);[M,N]=size(Image);No=M*N/I; % Number of input blocks[v,w,v_b,w_b]=ReadWeights(I,H); % Return weights of network 64_16_64mrg=zeros(M/2,N/2); % Compressed image Dmrg=zeros(M,N); % Decompressed image disp('Start compressing/Decompressing ...');for u=1:No[x]=NextPattern(Image,I,u); % Read next block of image(x vector) that the block size=64x=double(x)/256; % Normalize to [0,1]h_in=(x'*v)'+v_b; % Input of hidden layerh=f1(h_in); % Output of hidden layer% h is the compressed datak=1;for i=1: Sqrt_Hfor j=1: Sqrt_Htmp(i,j)=h(k);k=k+1;endendmrg=AddPattern(mrg,tmp,M,N,u);y_in=w_b+(h'*w)'; % Input of output layery=f1(y_in); % Output of output layer% y is decompressed datak=1;for i=1: Sqrt_Ifor j=1: Sqrt_Itmp(i,j)=y(k);k=k+1;endendDmrg=AddPattern(Dmrg,tmp,M,N,u);clear tmp;enddisp('Codec completed.');Dmrg=Dmrg*256;mrg=mrg*256;% *************************************************% **** Outputs ***% *************************************************% Compute the PSNRa=double(Image)/255;b=double(Dmrg)/255;Psnr=PSNR(a,b);snr=SNR(Image,Dmrg);nmse=NMSE(Image,Dmrg);a=uint8(Image);b=uint8(Dmrg);ssim=ssim(a,b);% Computing Bit rate% BitRate(BlockSize,NoOfBlocks,NoOfHiddenNeroun,NoOfBitsOut,NoOfBitsWeight)NoOfBitsOut=8;NoOfBitsWeight=8;Bitrate=BitRate(I,No,H,NoOfBitsOut,NoOfBitsWeight);str=['------------------------------------------'];disp(str);str=[' + PSNR= ',num2str(Psnr),' dB'];disp(str);str=[' + SNR= ',num2str(snr),' dB'];disp(str);str=[' + NMSE= ',num2str(nmse)];disp(str);str=[' + Bit rate(all)= ',num2str(Bitrate),' bpp'];disp(str);str=[' + Bit rate(CR)= ',num2str(I/H),' bpp'];disp(str);str=[' + SSIM= ',num2str(ssim)];disp(str);disp(' ')subplot(1,2,1);imshow(Image);title('Ori')%subplot(1,3,2);%imshow(uint8(fix(mrg)));%title('Compressed image')subplot(1,2,2);imshow(uint8(fix(Dmrg)));title('BP')Ttime= etime(clock,Time); % All time in Sec.Thour=fix(Ttime/3600);Tmp=round(rem(Ttime,3600));Tmin=fix(Tmp/60);Tsec=round(rem(Tmp,60));% elapsed timestr=[' + Time: ',int2str(Thour),':',int2str(Tmin),''':',int2str(Tsec),''''''];disp(str);str=['------------------------------------------'];disp(str);
实验结果:
图像压缩之基于神经网络压缩(BP)相关推荐
- 【笔记】基于边缘检测和BP神经网络的大豆杂草识别研究
<基于边缘检测和BP神经网络的大豆杂草识别研究> 单位:吉林农业大学信息技术学院 作者:侯雨 数据获取 设备:大疆 DJI 精灵3 相机:EXMOR 1/2.3 RGB 相机 拍照:飞行高 ...
- matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究
研究与开发 现代计算机 2019.04 上 文章编号:1007-1423(2019)10-0031-05 DOI:10.3969/j.issn.1007-1423.2019.10.007 基于 DPI ...
- 【机器学习】基于AutoEncoder的BP神经网络的tensorflow实现
[机器学习]基于AutoEncoder的BP神经网络的tensorflow实现 一.基于AutoEncoder的BP神经网络 1.1.BP神经网络 1.1.1.BP神经网络结构 1.1.2.BP神经网 ...
- gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 文章目录智能优化算法应用:基于GWO优 ...
- Python基于PyTorch实现BP神经网络ANN分类模型项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 在人工神经网络的发展历史上,感知机(Multilayer Per ...
- Python基于PyTorch实现BP神经网络ANN回归模型项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 在人工神经网络的发展历史上,感知机(Multilayer Per ...
- 基于bp的神经网络算法,bp神经网络是什么算法
BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...
- 生猪价格matlab,基于时间序列的BP神经网络猪肉价格预测
科技创新 2m6钎第20期I科技创新与应用 基于时间序列的BP神经网络猪肉价格预测 张津张瑞斌 (成都理工大学管理科学学院,四川成都610059) 摘要:猪肉价格是不稳定的,起伏变化的,猪肉价格的预测 ...
- 【智能控制实验】基于MATLAB的BP神经网络设计
实验五:基于MATLAB的BP神经网络设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理和代码设计方法,应用MATLAB编写BP神经网络训练方法:应用神经网络工具箱设计BP神经网络实现对输入输 ...
最新文章
- Kubernetes集群日志详解
- 黄聪:PHP网站流量统计开源程序大全
- 树形结构:递归转化为迭代,万能通用方法,分治策略基于栈的实现
- 关于OSPF用反掩码
- win10打开计算机黑屏怎么办,教你如何解决win10电脑开机黑屏的问题
- 靠加班?靠团建?靠个人?请停止无效努力!
- micropython教程modbus_基于S7-300400 CPU集成PN接口的Modbus TCP在TIA Portal的使用入门教程...
- 计算机记录乐器声音的文件是,一、用计算机录音的过程.pptx
- 激活策略 查询_苹果手机未激活也可能不是原装货,激活过的手机到底能不能买?...
- 率土之滨显示未选择服务器怎么办,率土之滨未转服,为什么要转服
- android 空白,Android ViewPage显示空白
- 钟晱晱,首富不是终点
- 喝杯java冷静一下是什么梗_大哥喝冰阔落是什么梗 喝冰阔落的出处在哪
- python 操作微信小程序数据库 实现批量修改
- 【JS】388- 深入了解强大的 ES6 「 ... 」 运算符
- 并行运算遇到的fatal error(已解决)
- poj - 2586 - Y2K Accounting Bug
- 福瑞泰克完成数亿元B+轮融资,行泊一体+NOA进入大规模量产周期
- JRs在看啥?- 虎扑社区用户行为分析
- 开放地理空间信息联盟(OGC)简介
热门文章
- 初识C语言——C语言的第一课
- java xmap_xml和java Bean的直接转换,Xmap
- Android 平台最新资讯(《Google android 入门开发与实战》pdf完整下载)
- 【SSD】自动化测试框架
- python函数中self的作用_在Python中self的用途是什么?
- 什么是门禁系统?门禁设备有哪些?
- DFP算法_python
- php 获取搜狗微信 sn,记搜狗微信号搜索反爬虫
- 用python计算准确率_Python下的scikit-learn预测准确率计算(代码实例)
- 手机APP开发:学JAVA转安卓APP开发是不是很容易?