-

Matlab的图像压缩技术

一.目的要求

掌握Matlab图像图像压缩技术原理和方法。理解有损压缩和无损压缩的概念,了解几种常用的图像压缩编码方式,利用matlab进行图像压缩算法验证。

二.实验内容

1、观察颜色映像矩阵的元素

>> hot(8)

ans =

0.3333 0 0

0.6667 0 0

1.0000 0 0

1.0000 0.3333 0

1.0000 0.6667 0

1.0000 1.0000 0

1.0000 1.0000 0.5000

1.0000 1.0000 1.0000

数据显示第一行是1/3红色,最后一行是白色。

2、pcolor显示颜色映像

>> n=16;

>> colormap(jet(n));

>> pcolor([1:n+1;1:n+1]);

>> title(Using Pcolor to Display a Color )Map);

图2 显示颜色映像

3、colorbar显示当当前坐标轴的颜色映像

>> [x,y,z]=peaks;

>> mesh(x,y,z);

>> colormap(hsv);

>> axis([-3 3 -3 3 -6 8]);

>> colorbar;

图3 显示当前坐标轴的颜色映像

4、图像格式转换

g=rgb2gray(I);

g=rgb2gray(I);

>> imshow(g),colorbar;

图4-1 原图像saturn.png

图4-2转换后的图像

5、求解图像的二唯傅里叶频谱

I=imread(cameraman.tif);

>> imshow(I)

>>

J=fftshift(fft2(I));

>> figure;

>> imshow(log(abs(J)),[8,10])

图5-1 原图像cameraman.png

图5-2 频谱图

将图像更换一下

I=imread(pout.tif);

imshow(I)

J=fftshift(fft2(I));

figure;

imshow(log(abs(J)),[8,10])

图5-3 原始图 pout.tif

图5-4 频谱图

6、利用DCT变换进行图像压缩

RGB=imread(peppers.png);

>> I=rgb2gray(RGB);

>> J=dct2(I);

>> imshow(log(abs(J)),[]),colormap(jet(64)),colorbar

图6-1 DCT变换后二维变换谱

J(abs(J)<10)=0;

>> K=idct2(J); %逆变换

>> figure,imshow(I)

figure,imshow(K,[0 255])

图6-2 原始图像

图6-3 压缩还原后的图像

仔细看我们可以发现,压缩还原后的图像比较模糊。

7、利用离散余弦变换进行JPEG图像压缩

>> I=imread(cameraman.tif);

>> I=im2double(I);

>> T=dctmtx(8); %产生二维DCT变换矩阵

>> B=blkproc(I,[8 8],P1.*x,T,T); %改成点乘

>> mask=[1 1 1 1 0 0 0 0;1 1 1 0 0 0 0 0;1 1 0 0 0 0 0 0;1 0 0 0 0 0 0 0 ;zeros(4,8)] %二值掩膜用来压缩DCT系数

mask =

1 1 1 1 0 0 0 0

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

>> B2=blkproc(B,[8 8],P1*x,mask); %只保留10个系数

>> I2=blkproc(B2,[8 8],P1*x*P2,T,T); %逆DCT

>> subplot(1,2,1);

>> imshow(I);title(原图像);

>> subplot(1,2,2);

>> imshow(I2);title(压缩图像);

图7-1 原图像和第一种压缩后的图像

>> mask=[1 1 0 0 0 0 0 0;1 0 0 0 0 0 0 0 ;zeros(6,8)]

mask =

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

图7-2 原图像和第二种压缩后的图像

>> mask=[1 0 0 0 0 0 0 0 ;zeros(7,8)]

mask =

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

图7-3 原图像和第三种压缩后的图像

比较三种情况。mask舍弃系数越多,图像越模糊。压缩应在最合理近似原图像下使用最少系数。

1、图像中哪些信息主要,哪些信息次要?

需要传达给别人的部分是主要的。其他是次要的。例如肖像图片,肖像部分是主要的,其背景是次要的。为了证明当时的场景,场景就是主要的了,而人物就变成次要的。描述风景,人物是次要的,背景是主要的。主要和次要是相对的。

DCT变换后 图像变成了1.0 代号 0 的就是次要 冗余信息 1 就是主要信息

DCT变换 主要作用就是把图像信息集中在较小的一部分 利于图像处理。

2、简述离散余弦变换原理。

DCT变换和FFT变换都属于变换压缩方法(TransformCompression),变换压缩的一个特点是将从前密度均匀的信息分布变换为密度不同的信息分布。在图像中,低频部分的信息量要大于高频部分的信息量,尽管低频部分的数据量比高频部分的数据量要小的多。例如删除掉占50%存储空间的高频部分,信息量的损失可能还不到5%。

压缩过程为:

(1) 首次将输入图像分解为8*8或16*16的块,然后对每个子块进行DCT变换。

(2) 将变换后得到的量化的DCT系数进行编码和传送形成压缩后电脑图像格式。

解压过程:

(1) 对每个8*8或16*16的块进行DCT反变换。

(2) 将每个反变换矩阵的块合成一个单一的图像。

余弦变换有把高度相关数据能量集中的趋势,DCT变换后能量集中在矩阵的左上角,右下角大多数DCT系数接近于0。对于通常图像,舍弃这些系数,并不会对重构图像的画面质量带来显著下降。所以利用DCT变换可以节约大量压缩空间。压缩应在最合理近似原图像下使用最少系数。

9

欢迎下载

展开阅读全文

matlab对于图像压缩,Matlab的图像压缩技术相关推荐

  1. 【毕业设计/Matlab系列】基于K-L变换的图像压缩matlab实现

    Date: 2022.5.17 文章目录 前言 1.基于K-L变换的图像压缩原理 2.实现效果 3.主要matlab代码 前言 在大学毕业设计的时候,课题要求实现<基于K-L变换的图像压缩mat ...

  2. 小波图像增强matlab,用Matlab实现基于小波变换的图像增强技术

    用Matlab实现基于小波变换的图像增强技术 管琼 [期刊名称]<科技资讯> [年(卷),期]2013(000)025 [摘要]小波是有限宽度的基函数,这些基函数不仅在频率上而且在位置上是 ...

  3. 孤立词语音识别matlab,基于Matlab仿真的孤立词语音识别技术研究

    基于Matlab仿真的孤立词语音识别技术研究 摘要:研究一种改进的语音识别算法---改进的端点检测(滑动帧)动态时间规整(DTW)算法, 以一个能识别数字0-10的语音识别系统的实现过程为例,阐述了基 ...

  4. 扫描电镜图片的Matlab分析,基于Matlab的图像增强与复原技术在SEM图像中的应

    0引  言 根据国内外的相关文献,研究和发展图像处理工具,改善图像质量是当今研究的热点.图像增强与复原是一种基本的图像处理技术.其按照特定的需要突出一幅图像中的某些信息或强化某些感兴趣的特征,将原来不 ...

  5. matlab的多变量dmc源程序,基于MATLAB多变量DMC算法的仿真技术研究

    基于MATLAB多变量DMC算法的仿真技术研究 基于MATLAB多变量DMC算法的仿真技术研究 作者:李凤霞 于佐军 来源:<科技创新导报>2011年第17期 摘 要:利用MATLAB开发 ...

  6. 流水线自动分拣机器人仿真,vrep与matlab联合仿真,基于机器视觉技术进行自动分拣,采用scara型机械臂

    流水线自动分拣机器人仿真,vrep与matlab联合仿真,基于机器视觉技术进行自动分拣,采用scara型机械臂,按照不同的颜色与形状分拣,放入不同的盒子并统计数量. 仅供学习使用 基础太差的勿. ID ...

  7. matlab 摄像头拍照,matlab摄像头拍照

    图像采集: 该单元是指道路上安装的摄像头在检测到有车辆通过的同时进行 拍照并...在 MATLAB 中我们可以调用 im2gray 函数对图像进行灰度化处理. 4.2.2图像的...... 2 车辆牌 ...

  8. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数

    MATLAB函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句 ...

  9. matlab 倾斜矫正,matlab图像倾斜校正

    4 图像颜色畸变校正介绍图像颜色畸变现象可以是由摄像器材导致,也可以是由于真实环境本身就偏 色导致,还有的是由于图像放置过久氧化.老化导致.无论其产生的原因如何, 其校正方法都是类似的.如果用 Mat ...

  10. matlab.什么意思,MATLAB是什么意思? matlab是什么软件?

    MATLAB是什么意思? matlab是什么软件? MATLAB是什么? MATLAB® 是一种对技术计算高性能的语言.它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们 ...

最新文章

  1. 逻辑结构图向关系转换规则3
  2. 将现有网站与Community Server2.0整合解决方案(原创)
  3. 026_Pagination分页
  4. java 当一个文本框有值时另一个文本框置灰_【农行DevOps进行时】基于PaaS的持续集成/持续交付实践 | IDCF...
  5. 可以使用计算机解决的问题是什么,1.1 使用计算机解决问题的一般过程教案1
  6. mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
  7. rsoft透射谱_基于Rsoft软件光纤光栅的仿真模拟
  8. Oracle创建、删除、备份表
  9. 浅谈spring--AOP与IOC / DI
  10. 华为交换机默认vlan都是通的吗_华为设备二层交换技术——Hybrid接口详解
  11. 苹果新Metal API实测:四倍完爆OpenGL ES
  12. oracle到pg不停机增量迁移,研究 Oracle 到 PostgreSQL 的数据迁移 – 以 pgloader 为例 – Phy 的博客...
  13. php数组排序不要用函数,PHP数组排序函数使用方法
  14. 高速PCB设计中的屏蔽方法
  15. 农业银行计算机类笔试题库,中国农业银行笔试题库含答案
  16. 他山之石 | 小米小爱Query识别
  17. Pytorch的一些小问题
  18. Linux的root权限安装nvm后可用,切换用户以后报nvm: command not found解决办法
  19. rd,pe,ae,fae,marketing,sales都是干嘛的?
  20. Zabbix Trapper items

热门文章

  1. 陶行知:学生自治问题之研究
  2. 【ESP32_8266_WiFi (十五)】ESP8266 OTA 操作说明
  3. ipv6一致性(packet too big)测试
  4. 只因,在人群中多看了你一眼 (小说)
  5. 黑苹果uhd630黑屏_i7-9700k,UHD630核显,HDMI接口,usb3.0,成功黑苹果!-远景论坛-微软极客社区...
  6. 高德地图html js开发例子,vue.js高德地图实现热点图代码实例
  7. 〖Python接口自动化测试实战篇③〗- 什么才是真正的自动化 - 自动化测试的意义又是什么?
  8. Windows WSL2 安装Nvidia-Docker GPU 驱动Paddlepaddle
  9. 五霸七雄 细数ERP春秋(转)
  10. 魅蓝5s的android系统版本,魅蓝5s有几个版本?魅蓝5s标准版和高配版详细区别对比评测...