基于 MATLAB DCT 的图像编码器并进行调试分析 ♻️ 资源大小1.37MB➡️资源下载https://download.csdn.net/download/s1t16/87430267DCT 的图像编码器并进行调试分析一、实验目的设计用户界面实现基于 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 可直接使用 psnrID2,I来计算两图的峰值信噪比代码三、测试数据和执行结果 在给定数据下执行操作、算法和程序的结果可使用数据、图表、截图等给出四、实验结果分析及总结对实验的结果是否达到预期进行分析总结实验的收获和存在的问题等在 matlab 中 dct 和 psnr 的处理计算都由相应函数。处理稍微麻烦一些的地方是传参数用户输入的值默认是 string 类型转换成数字后仍不能用于计算压缩后的图片需要先换成 cell 类型var输入数据是 cell 类型的数据1 维数组不可以直接进行 1var 计算必须先转换成 double 类型才可以进行压缩比的计算dct 逆变换得到的数组要求必须在 0-255所以用 uint8()强制转换。