基于matlab的JPEG彩色图像编码解码源码
%% 清空环境
close all;
clc;
clear;
%% 图像压缩
filePath='2.bmp';%被压缩的图像的途径
quantizationFactor=0.5;%该变量为量化因子,最小为0.01,最大为255,建议在0.5和3之间,越小质量越好文件越大
I=imread(filePath);%读bmp彩色图像
FileCode=encode(I,quantizationFactor);%压缩图像
%保存文件
savePath='save.myjpeg';%文件保存路径
fileID = fopen(savePath, 'w');
for i=1:8:length(FileCode)-8
fwrite(fileID,bin2dec(FileCode(i:i+7)),'uint8');
end
i=i+8;
if i<=length(FileCode) %剩余位数不足一个字节,补零
lastBitsCount=length(FileCode)-i+1;
lastByte=['0' '0' '0' '0' '0' '0' '0' '0' ];
lastByte(1:lastBitsCount)=FileCode(i:length(FileCode));
fwrite(fileID,bin2dec(lastByte),'uint8');
end
fclose(fileID);
%计算压缩比
listing=dir(filePath);
originalSize=listing.bytes;
listing=dir(savePath);
currentSize=listing.bytes;
disp(['压缩比率为' num2str(originalSize/currentSize)]);
%% 读取文件并解压缩图像
fileID2 = fopen(savePath, 'r');
Bytes=fread(fileID2,inf,'uint8');
fclose(fileID2);
Codes=dec2bin(Bytes,8);%传化为字符串,方便解码时取一位操作
FileCode2=reshape(Codes',1,length(Codes)*8);%获得字符代表码流,将每组字节码,合并成一个字符串
I2=decode(FileCode2);%解压缩
%% 测试对比
[m n ~]=size(I2);
disp(['比特率为' num2str(currentSize*8/(m*n))]);%输出比特率
disp(['信噪比为' num2str(PSNR(I,I2))]);%输出信噪比
%原图像与压缩图像对比imwrite
figure('Name','原图像','NumberTitle','off'),imshow(I);
figure('Name','压缩图像','NumberTitle','off'),imshow(I2);
基于matlab的JPEG彩色图像编码解码源码相关推荐
- 【信号处理】基于Matlab GUI数字均衡器设计,源码附上
[信号处理]基于Matlab GUI数字均衡器设计,源码附上 数字均衡器是一种常用于音频信号处理的技术,可以有效地补偿声音中的频率失真,提高音质.在这篇文章中,我们将介绍如何使用Matlab GUI进 ...
- 基于Matlab的磁力计校准(附源码)
目录 一.理想磁力计 二.硬铁效应 三.软铁效应 四.校正技术 五.使用函数magcal 5.1 仅偏移计算 编辑5.2 硬铁补偿和轴缩放计算 5.3 全硬铁和软铁补偿 5.4 自动拟合 六. 结论 ...
- 基于matlab仿真多普勒效应及其影响(附源码)
目录 一.介绍 二.估计直升机的叶片速度 三.直升机回声模拟 四.叶片返回微多普勒分析 五.汽车雷达中的行人识别 六.行人微多普勒提取 七.总结 八.程序 本例介绍了由于目标旋转而对目标进行雷达回波时 ...
- Dubbo篇:基于Netty实现Dubbo协议编解码源码分析
Dubbo协议解析 Dubbo协议设计参考了TCP/IP协议,包括协议头和协议体两部分.16字节报文头主要携带了魔法数(0xdabb,用于分割两个不同请求),以及当前请求报文是否是Request.Re ...
- 基于Matlab鸟群跟踪仿真(附源码)
目录 一.方案定义 二.跟踪器定义 三.追踪鸟群 四.生成的代码中跟踪器的结果 五.总结 六.程序 此示例演示如何跟踪大量对象.生成一大群鸟类,并使用全局最近邻多目标跟踪器来估计鸟群中每只鸟的运动. ...
- 基于matlab的雷达和通信系统,基于MATLAB的多功能通信信号源仿真
第 29 卷 第 3 期 2006 年 9 月 电 子 器 件 Chinese Journal of Electron Devices Vol. 29 No. 3 Sep. 2006 Simulati ...
- 基于java web servlet生鲜商城管理系统源码含报告文档
(一)目的 电子商务的迅速兴起,网上购物也为人们的生活提供了极大的便利,不受时间和空间的限制.商城系统的兴起,扩大了消费市场的空间,对于大型企业来说,建设商城系统是正确的选择,不仅要扩大销售渠道,而且 ...
- 基于Simulink宽带单基地雷达系统仿真(附源码)
目录 一.探索示例 1.1 收发器 1.2 信号处理子系统 1.3 渠道 1.4 目标子系统 二.结果和显示 三.总结 四.程序 本示例演示如何仿真宽带雷达系统.当雷达系统的带宽超过系统中心频率的5% ...
- .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析
介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...
最新文章
- PHPExcel读取excel的多个sheet存入数据库
- css字体居中_简单介绍CSS.
- 刚输一行代码就报5次假漏洞,npm让程序员们累觉不爱
- 用SVR模型完成对Boston房价的回归预测
- JZOJ 3769. 【NOI2015模拟8.14】A+B
- HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)
- 手机app 服务器 网页同步,手机app接入云服务器
- HDU4911 Inversion 解题报告
- PHP定界符的使用既注意事项
- Linux中创建新用户并赋予指定目录的相关权限
- SAP License:SAP CO ML 物料帐配置
- 有关使用seajs和template模板的总结
- Error [ERR_INSPECTOR_ALREADY_ACTIVATED]解决方案
- 信息系统分析与设计相关
- 计算机算法分析与设计(第五版)
- this command with --force, or --legacy-peer-deps
- 章文嵩:开放与高可用是阿里云角力海外市场的关键
- EndNote X7如何在论文中嵌入中文格式要求的参考文献
- P2P: Tuning Pre-trained Image Models for Point Cloud Analysis with Point-to-Pixel Prompting
- 分析机构对华为手机极为悲观,预估它今年出货量大跌超七成
热门文章
- 基于Java的QQ屏幕截图工具的设计与实现(论文+PPT+源码)
- 黑客马拉松活动如何搞
- 用C语言代码编写一个五子棋小游戏
- 钢材规格解读的软件_钢材重量计算软件下载-钢材重量手册2020版下载 v3.71免费版--pc6下载站...
- linux解压war包后删除war包,解压好的文件夹跟着消失
- 储能控制器,simulink仿真模型。 采用下垂控制实现蓄电池超级电容构成的混合储能功率分配
- 洛谷 P1747 好奇怪的游戏
- Android项目结构和AndroidManifest.xml
- notepad 语言等常用设置
- 下载网络图片两种方式