离散余弦变换经常被信号处理和图像处理使用,用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。这是由于离散余弦变换具有很强的"能量集中"特性:大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔科夫过程(Markov processes)的统计特性时,离散余弦变换的去相关性接近于K-L变换(Karhunen-Loève 变换--它具有最优的去相关性)的性能。例如,在静止图像编码标准JPEG中,在运动图像编码标准MJPEG和MPEG的各个标准中都使用了离散余弦变换。在这些标准制中都使用了二维的第二种类型离散余弦变换,并将结果进行量化之后进行熵编码。这时对应第二种类型离散余弦变换中的n通常是8,并用该公式对每个8x8块的每行进行变换,然后每列进行变换。得到的是一个8x8的变换系数矩阵。其中(0,0)位置的元素就是直流分量,矩阵中的其他元素根据其位置表示不同频率的交流分量。

% 设置压缩比,cr=0.5为2:1压缩;cr=0.1250为8:1压缩
cr = 0.022;
initialimage = imread('lena.bmp');
initialimage = rgb2gray(initialimage);
initialimage = double(initialimage)/255;
figure();
subplot(121);
imshow(initialimage);title('ORI');%对图像进行DCT变换
t = dctmtx(8);
dctcoe = blkproc(initialimage, [8 8], 'P1*x*P2', t, t');%将DCT变换后的矩阵转换成列,并按升序排列
coevar = im2col(dctcoe, [8 8], 'distinct');
coe = coevar;
[y, ind] = sort(coevar);[m, n] = size(coevar);%舍去不重要的系数
snum = 64-64 * cr;
for i = 1:ncoe(ind(1:snum), i) = 0;
end%把列变换为二维矩阵
b2 = col2im(coe, [8 8], [512 512], 'distinct');%逆DCT变换
i2 = blkproc(b2, [8 8], 'P1*x*P2', t', t);
subplot(122);
imshow(i2);title('DCT');

在压缩比为10,20,40情况下实验结果对比,目前只是实现的对于灰度图像的DCT变换压缩编码,彩色图像还没实现,有实现的小伙伴可以分享一下。

1.cr=10

2.cr=20

3.cr=40

图像压缩之DCT变换相关推荐

  1. 基于DCT变换的JPEG图像压缩原理

    1.为什么要进行图像压缩 众所周知,当今人类社会具有三大支柱,即物质.能量.信息.当下已由物质过渡到信息,从农业现代化到工业现代化,再到当今的信息化时代.信息具有通用性.抽象性.无限性.其通用性表现在 ...

  2. 基于DCT变换的JPEG图像压缩

    基于DCT变换的JPEG图像压缩 摘 要:图像和视频通常在计算机中表示会占用非常大的空间,而出于节省硬盘空间的考虑,往往要进行压缩.而随着网络的发展,图像压缩技术越来越被人所重视.DCT变换是图像压缩 ...

  3. 基于DCT变换的JPEG图像压缩原理与JPEG2000编解码原理

    目录 参考文章 基于DCT变换的JPEG图像压缩原理 图像数据压缩 图像处理 为什么可以进行图像压缩? 颜色空间转换 RGB CMY HSV/HSI/HSB/HSL YUV/YCbCr YCbCr与R ...

  4. dct图像压缩c语言实现,DCT变换在图像压缩中的实现

    小白拙见,希望理解不对的地方大家多多指教! 对于各种信号,都可以说它是由多个振幅与频率不同的正弦或者余弦函数组成的.并且一个信号通常由一个直流信号DC(幅值保持不变的信号)和多个交流信号AC(幅值以某 ...

  5. DCT变换在图像压缩中的实现

    小白拙见,希望理解不对的地方大家多多指教!对于各种信号,都可以说它是由多个振幅与频率不同的正弦或者余弦函数组成的.并且一个信号通常由一个直流信号DC(幅值保持不变的信号)和多个交流信号AC(幅值以某种 ...

  6. 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究

    分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...

  7. 理解JPEG图像压缩算法,DCT变换

    理解JEPG原理 JEPG不是一种文件格式,而是一类图像压缩算法. 1.彩色图像 灰度图像 灰度,一个pixel取值0-255. 彩色图像 需要比灰度图像更多的存储空间, 事实上, 所有颜色都可以用红 ...

  8. 【图像压缩】DCT图像无损压缩【含GUI Matlab源码 726期】

    ⛄一.DCT图像无损压缩简介 1 图像压缩 图像压缩按照压缩过程中是否有信息的损失以及解压后与原始图像是否有误差可以分为无损压缩和有损压缩两大类.无损压缩是指不损失图像质量的压缩,它是对文件的存储方式 ...

  9. matlab实现图像DCT变换

    实验三 图像的DCT变化及量化 一.问题描述 利用matlab,将road.tif彩色图像的分辨率转换为256*256,将图片转化为double数据类型,再利用T=dctmtx(8)建立一个8*8的D ...

  10. 【图像压缩】DCT图像压缩(压缩率可调)【含GUI Matlab源码 1049期】

    ⛄一.DCT图像无损压缩简介 1 图像压缩 图像压缩按照压缩过程中是否有信息的损失以及解压后与原始图像是否有误差可以分为无损压缩和有损压缩两大类.无损压缩是指不损失图像质量的压缩,它是对文件的存储方式 ...

最新文章

  1. Linux dd 命令具体用法
  2. 【机器学习】平衡你的数据集的几项技巧
  3. 浮点数赋值给整数_初学者专题:变量和赋值
  4. Servlet异常和错误处理示例教程
  5. 为什么编程语言以及数据库要从1970年1月1日开始计算时
  6. 找CTO杜仲:技术人别把股权(期权)弄成一张废纸(新书推荐)
  7. stone 的 log4j配置详解
  8. sql学习指南_SQL格式功能的全面指南
  9. IOS 项目中遇到的问题
  10. 一些开源的统计机器翻译系统简要介绍
  11. 微信代金券--免充值代金券创建、激活、发放,查看详情
  12. ERP实施中需掌握的基本财务基础知识
  13. 基于TCP/UDP的NIO服务端/客户端代码实现damo(java)
  14. 苹果电脑键盘没反应_MAC PRO type-c接口无反应,充电无反应或一直在充电解决方案...
  15. 魔兽对战平台服务器更新维护什么,魔兽官方对战平台更新:公会系统正式上线!...
  16. 关于异业联盟和O2O商业模式的一些想法
  17. ASUS华硕天选/天选2P/天选3P/飞行堡垒789/枪神/枪神2/枪神3/枪神4/枪神5P/枪神6P/幻14 FA506 FX506安装原厂Windows10系统原装Windows11出厂系统重装
  18. vscode使用注意事项
  19. 关于python使用hadoop(使用python操作hdfs)
  20. Spotify网络钓鱼活动目标锁定音乐爱好者

热门文章

  1. Android跳转qq进行聊天
  2. java chmod 777_java中 执行shell中的chmod 777命令,出现Caused by: java.io.IOException: Permission denied???...
  3. 平年和闰年c语言程序,C语言平年,平年闰年问题
  4. 战网服务器组件,架设自己的战网服务器
  5. 基本知识 100048
  6. grafana mysql 变量_grafana之Variables变量的使用
  7. 实例分割: 一文读懂 E2EC (CVPR 2022)
  8. 中英文常用标点符号统一清洗为英文格式
  9. unity3d内建着色器源码解析(一)
  10. 从零开始学习idea开发vue