实验(1)使用给定的图像lena做实验,采用im2bw把灰度图像转换为二值图像,试计算二值化时阈值分别取0.2,0.4,0.6的压缩比是多少?

clc
close all
clear allI=imread('D:/lena.jpg');
BW=im2bw(I,0.6);%二值化阈值
[zipped,info]=RLEencode(BW);
unzipped=RLEdecode(zipped,info);
subplot(1,3,1);imshow(I);xlabel('(a)原图');
subplot(1,3,2);imshow(BW);xlabel('(b)二值化后的图像');
subplot(1,3,3);imshow(uint8(unzipped)*255);xlabel('对(b)经游程编码及解码后的图像');
cr=info.ratio;
fprintf('cr = %8.5f\n',cr)
whos BW unzipped zipped
function [zipped,info]=RLEencode(vector)
[m,n]=size(vector);
vector=uint8(vector(:));
L=length(vector)
c=vector(1);
e(1,1)=double(c);
e(1,2)=0;
t1=1;
for j=1:L      if(vector(j)==c) e(t1,2)=(e(t1,2))+1; else               c=vector(j);  t1=t1+1;   e(t1,1)=double(c); e(t1,2)=1;end
endzipped=e;
info.rows=m;info.cols=n;
[m,n]=size(e);
info.ratio=(info.rows*info.cols)/(m*n);
endfunction unzipped=RLEdecode(zip,info)
[m,n]=size(zip);
unzipped=[];
for i=1:m    section=repmat(uint8(zip(i,1)),1,zip(i,2)); unzipped=[unzipped section];
end
unzipped=reshape(unzipped,info.rows,info.cols);
end

实验(2)以所给lena图像为例,采用dct进行图像压缩编码,其中模板矩阵mask分别设置为

mask = [1 1 1 1 1 0 0 0;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],
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],
mask = [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;0 0 0 0 0 0 0 0],

可以得到不同的压缩编码图像,根据公式

,编写程序计算原图像和上述三种模板下得到不同的压缩编码图像之间的均方误差。

clc
close all
clear all
I=imread('D:/lena.jpg');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T'); mask = [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;0 0 0 0 0 0 0 0];
B2=blkproc(B,[8 8],'P1.*x',mask);
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
e=sqrt(mse(abs(I2-I)));
fprintf('均方误差 = %8.5f',e)

当mask = [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;0 0 0 0 0 0 0 0]时

参考:https://blog.csdn.net/uchihalyn/article/details/104593878

MatLab 数字图像处理实验 图像压缩相关推荐

  1. 图像处理边缘增强matlab,数字图像处理实验 matlab 图像增强 边缘检测 图像操作.doc...

    数字图像处理实验 matlab 图像增强 边缘检测 图像操作 实验1 点运算和直方图处理 实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理. ...

  2. 计算压缩比的程序matlab,数字图像处理实验5 图像压缩

    实验5 图像压缩 一.实验目的: 1.掌握图像压缩的原理--编码冗余,压缩比C R的计算等. 2.了解并掌握霍夫曼编码的原理.实现步骤. 3.掌握JPEG标准--通用的图像压缩/解压缩编码标准. 二. ...

  3. Matlab数字图像处理 实验1、数字图像的傅里叶变换

    子曰:桃李不言,下自成蹊. 数字图像的傅里叶变换数字图像的傅里叶变换数字图像的傅里叶变换 Part.0实验目的仅限于学习交流Part.0 实验目的^{仅限于学习交流}Part.0实验目的仅限于学习交流 ...

  4. Matlab数字图像处理 实验3、图像边缘检测的计算机实现

    子曰:桃李不言,下自成蹊. 图 像 边 缘 检 测 的 计 算 机 实 现 图像边缘检测的计算机实现 图像边缘检测的计算机实现 P a r t . 0 实 验 目 的 仅 限 于 学 习 交 流 Pa ...

  5. MATLAB数字图像处理 实验二:单像素空域图像增强

    目录 一.实验目的 二.实验环境 三.实验内容 题目 相关知识 部分核心代码 实验结果 四.实验小结 一.实验目的 1.熟悉基于基于单像素空域图像增强方法,理解并掌握直方图均衡化和规定化实现图像增强 ...

  6. MatLab 数字图像处理实验 图像增强

    实验内容 (1)对曝光不足的图像采用灰度线性变换对图像每一个像素灰度做线性拉伸. close all clear all I = im2double(imread('D:\figure51.jpg') ...

  7. matlab数字图像处理课程设计报告,数字图像处理初步-实验1

    MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...

  8. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  9. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...

    <数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...

最新文章

  1. HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,
  2. Pycharn比较好的配色方案
  3. 程序员羽化之路--假如需要一百万个对象
  4. 2g 双核电脑 linux,9208)(奔腾双核E5200/2G/320G)电脑详细技术
  5. Java工作笔记-使用Maven创建Spring Boot并生成war包外部tocamt运行
  6. 人群计数(Crowd Counting)研究综述
  7. Facebook人工智能实验室的前世今生
  8. 图片裁剪上传插件——jquery.photoClip.js
  9. PLSQL提示动态执行表不可访问,本会话的自动统计被禁止问题的解决
  10. 【指纹识别】基于matlab GUI指纹识别【含Matlab源码 586期】
  11. 2020年“深圳杯”数学建模挑战赛C题-无线可充电传感器网络充电路线规划
  12. android 动态壁纸 时钟,Android动态时钟壁纸开发
  13. 硬件-电子基础元器件(一)电阻
  14. 在 OpenBSD 系统下的安装PHP
  15. 从排名看主流半导体厂商在3G市场的策略与心态
  16. mysql修改字段设置_在mysql中,如何改变列声明.
  17. 动量守恒和角动量守恒结果不同可能原因
  18. 手把手教你起步Creator3D横版酷跑游戏
  19. net start npf启用失败问题解决 net start npf 发生系统错误5、net start npf 服务名无效
  20. NANDCONT, ECC , RnB(nandflash更加深入的内容--1)

热门文章

  1. 2022年3月份报告合辑 附下载
  2. 在linux系统下怎么下载sra数据,NCBI sra数据下载软件安装
  3. python 100 days github_GitHub - xz333221/Python-100-Days: Python - 100天从新手到大师
  4. linux ntpdate交叉编译,arm交叉编译ntpdate与服务器进行时间同步
  5. vi编辑器如何显示行号
  6. 怎么样把手机全部内存释放?
  7. transfer方法详解
  8. angular——上传下载文件
  9. HTML+CSS+JavaScript❤制作浪漫气球520告白相册❤
  10. 打开即用Chat gpt