基于 MATLAB DCT 的图像编码器并进行调试分析

♻️ 资源

大小: 1.37MB

➡️ 资源下载: https://download.csdn.net/download/s1t16/87430267

DCT 的图像编码器并进行调试分析

一、实验目的

设计用户界面,实现基于 DCT 的图像编码器,将 DCT 编码器的原始输入图像和压缩结果图像在界面上并排进行显示,每幅压缩图片的 PSNR 也应当在界面上进行显示。

二、实验要求

界面需要加入滑动条或者参数输入控制框,用来控制编码器的目标码率(压缩率),如果改变目标码率,编码器应能够即时压缩输入图像,并在用户界面上显示出来。

三、实验内容与设计(主要内容,操作步骤、算法描述或程序代码)

1、使用 matlab 做界面设计,首先创建两个控件和一个 edit 框。两个 button 一个是打开图片,一个是进行 DCT 变换

2、在 button1 进行编辑 callback,选取图片路径设为 global 变量以便在 DCT 变换中使用。分别显示原图、灰度图、DCT 处理后图像

3、在 DCT 变换的 button4 中编辑 callback 函数,首先得到的 D1 DCT 图像进行压缩变换,压缩比在 edit 中由用户输入,同样设其为 global 在本 callback 函数中将其转换为 number,由于此值 var 为 cell 类型【一维数组】不可按比例算出压缩后的图片,因此先转换成 double 类型,D2(1:data,1:data)=D1(1:data,1:data); 计算后再逆 dct 变换得到 ID2 显示

4、计算 PSNR 可直接使用 psnr(ID2,I)来计算两图的峰值信噪比

代码:

三、测试数据和执行结果 (在给定数据下,执行操作、算法和程序的结果,可使用数据、图表、截图等给出)

四、实验结果分析及总结(对实验的结果是否达到预期进行分析,总结实验的收获和存在的问题等)

在 matlab 中 dct 和 psnr 的处理计算都由相应函数。处理稍微麻烦一些的地方是传参数,用户输入的值默认是 string 类型,转换成数字后仍不能用于计算压缩后的图片,需要先换成 cell 类型,var(输入数据)是 cell 类型的数据(1 维数组)不可以直接进行 1:var 计算,必须先转换成 double 类型才可以进行压缩比的计算;dct 逆变换得到的数组要求必须在 0-255,所以用 uint8()强制转换。

相关推荐
2zcode14 小时前
项目文档:基于MATLAB图像处理与FCM聚类的骨癌X射线影像辅助检测系统设计与实现
图像处理·matlab·聚类
2zcode2 天前
项目文档:基于MATLAB深度卷积特征的多曝光图像自适应融合系统设计与实现
深度学习·计算机视觉·matlab
Promise微笑3 天前
回路电阻测试仪采购:多维度技术评估与深度避坑指南
开发语言·matlab·语音识别
程高兴3 天前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
2zcode4 天前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
matlab代码5 天前
Matlab基于主成分分析PCA人脸识别系统(GUI界面)【源码44期】
开发语言·matlab·人脸识别
Evand J6 天前
【MATLAB例程】一维EKF(扩展卡尔曼滤波)、UKF(无迹卡尔曼滤波)、CKF(容积卡尔曼滤波)、PF(粒子滤波)四种滤波方法对比
开发语言·matlab·ekf·ckf
茗创科技6 天前
CGE连接组:用基因表达解码脑疾病的异质性(附高分文献下载)
python·matlab·脑网络
EW Frontier7 天前
GRAIL-SCML:一种几何正则化自适应集成似然的波达方向估计算法【附MATLAB代码】
matlab·自适应·宽带·doa估计·波达方向估计·几何正则化·窄带