【实例简介】

Matlab 图像处理 人脸识别 等等 包括 jpeg仿真。。。

end

end

end

back=)*examplekd'i

end

得到的 differenc最大值为1.232902668846236e-12,可以忽略不计,所以两者功能

基本相同,只不过库函数可以计算非方阵的矩阵。

3.如果将DCT系数矩阵中右侧四列的系数全部置零,逆变换后的图像会发生什么变化?选

取一块图验证你的结论。如果左侧的四列置零呢?

相关程序如下

clear all close all clc

load( UpegCoert mat ' )i

load( hall. mat)i

middle-dct2 (double (hall gray)-ones(size(hall gray))x128

[×y]=size(m1ddle)

middle=[zeros(x, 4),middle(:(5:y))]i

middle=[middle(:,(1:(y-4))),zeros(x, 4

transform-idct2(middle)+ones(size (middle))*128

trans forml=idct2(middlel)+ones(size(middle))*128;

transform2=idct(middle)+ones(size(middle))*128i

fiqure

imshow(uint8(transform))i

王 Igure;

imshow (uint8(transform))i

Figure

imshow(uint8(transfor n2))i

左侧置零后图像,明显变灰

右侧置零后图像,没有太大改变

Ti置

岀现上述情况的原因是,αs变换后左侧有很多直流分量,置零后,会使图像像128靠近,

所以会变灰,而右侧较多高频分量,置零后,虽然会减少图像的高频分量,但人眼对高频分

量并不敏感,所以会感觉图像变化不大。

4.若对D冖系数分别做转置、旋转90度和旋转180度操作(ot90),逆变换后恢复的

图像有何变化?选取一块图验让你的结论。

相关程序如下

clear al, close all, clc

load( hall. mat)i

middle=dct2(double (hall gray)-128)i

middle=rotg0(middle)i

middle=rotg0(middle, 2)i

tt=icct2(middle)+128;

transform=idct2(middle)+128;

transform=idct(middle)+128

transform2=idct2(middle)+128;

figure;

imshow(uint8(transform))i

figure

imshow(uint8(transform1))i

± Igure;

imshow(uint8(transform2))i

得到如下结果

转置

旋转90

旋转180

5.如果认为差分编码是一个系统,请绘出这个系统的频率响应,说明它是一个高通滤波器。

nC系数先进行差分编码再进行熵编码,说明DC系数的高频频率分量更多

相关程序为

clear all, close all clc;

fxeq2([-11,1);

我们得到这个滤波器的频率响应如下

20

40

E

0.2030.4050.507080g

normalized fres

y(xπ rad/sample)

1

-15

D.10.2彐口.4口

Normalized Frequency(xπ rad/sample〕

可见此滤波器为高通滤波器。

6.DC预测误差的取值和 Category值有何关系?如何利用预测误差计算出其

Category

如果DC系数为0,则 Category为0,若DC系数不为0,那么

Category=floor(log2(abs(DC(count)))+1

7.你知道哪些实现zig-zag打描的方法?请利用 MATLAB的强大功能设计一种最佳方法

这个没有想到如何利用经优化过的矩阵算法进行运算,根据定义,我们可以得到如下程序

function [back]= zigzag(example)

back=zeros(64,1);

sed

6;8,13,19,24,34,38,49,7,14,18,25,33,39,48,50

15;17,26,32,40,47,51,58,16,27,31,41,46,52;57,59,,,

28;30,42,45,53;56,60,63,29,43,44,54,55,61;62,64];

a=zeros(64, 1)

t=1:8

((count-1)x8+1: count*8)-example(:, count)i

end

t=1:64

back(seg(count))=a(count)

end

end

以及逆 ZIgZag程序

function [back]= inv zigzag(example)

back=zeros(8,8)i

seq=[1,3,4,-0;11,21,22,36,2;5,9,12,20,23;35,37,

···

6,8,13,19,24;34;38,49,7,1418,25,33,39,48,50

15;17,26,32,40;47,51;58,16,27,31,41,46,5257,59

28,30,42,45,53,56,60,63,29,43,44,54,55,61;62,64];

middle=zeros(64,1)i

for count=1: 64

middle(count)=example(seg(count))i

end

for count=1: 8

back(: count)=middle((count-1)*B+l: count*8);

end

8.对测试图像分块、DCT和量化,将量化后的系数写成矩阵的形式,其中每一列为一个块

的DC系数zig-2ag扫描后形成的列矢量,第一行为各个块的DC系数。

相关程序如下

clear all, close all, clc

load(' Jpegcoetf. mat')i

load hall. mat hall gray

Th l]=size(hall gray)i

h

ei1(h/8)

1-8*cei1(1/8);

若图像横纵不为8的倍数,则要补全

example= zeros(h,1)氵

Th l=size hall gray)i

example(l: h, 1: 1)=hall grayi

example=double(example)-128

answer=zeros(64, ceil(h/8)ceil(1/8));

for count=l: ceil(h/8)

for count2=1: ceil(1/8)

answer(:(count-1)*ceil(1/8)+count2)

zigzag(round ((dct2(example((count-1)*8+1: count*8,(count2-1)*8+1: count

8))./QTAB)))

end

end

9.请实现本章介绍的EG编码(不包括写JFIF文件),输出为DC系数的码流、AC系

数的码流、图像高度和图像宽度,将这四个变量写入 Gpegcodes.mat文件。

相关程序如下

T28

[h l]=size(answer)i

DC-answer(l:

差分运算如下

for count=2: 1

DC(count)=answer(l, count-1)-answer(l, count)i

end

CCCcde-[]

fo≌ count=1:1

号找出cate,确定huff编码

DC (count)==0

cate=1

el se

cate=floor(log2(abs(DC (count)))+2)i

end

huff-DCtAB (cater 2: DCTAB(cater 1)+1)

coo-trans(DC(count))

DCCoce=[decode huff cooli

nd

DCCcce=logical(DECode)i

ACCede=[]

AC=answer(2:64:

n=0

last=find(ac(: count2)=0, l, 'last)i

for count=1:last

if AC(count count2)==0

t run>=l5

ACCode= [ACCode 111111]i

un=0;

run=run+1

end

else

找出huf编码

if AC(count count2)==-1 AC(count, count2)==

cate=1

e⊥se

ate==lcor(log2(abs(AC(

,Cunt2)))+1)

end

ans(AC(count

ACCode=[ACCode

ACTAB(run*10+cate, 4: ACTAB(run*10+cate, 3)+3)

end

ACCcCe=[ACCode 10 1]

en

ACCCCe=logical(AcCode)

Th 1]-size(hall gray)i

save jpegcodes mat DCCode ACCode h 1

进制转换

function [back trans( num

middle=dec2bin(abs(um))i

n-flcor(log2(abs(num)))+li

back=zeros(l, n)

for count=1: n

back(count)=str2num(middle(count))i

end

if num<0

back=back

end

back=double(back

号若num=0,那么要强制back=[0],否则会出现空阵

if

end

end

10.计算压缩比(输入文件长度/输出码流长度),注意转换为相同进制。

ACCode长度为23073, DECode长度为2054,原图大小为120*168米8

所以压缩约比为6.4186

11.请实现本章介绍的JPEG解码,输入是你生成的 jpegcodes.mat文件ε分别用客观(PSR

和主观方式评价编解码效果如何

相关程序如下

clear all, close all, clc

load(' ipegcodes. mat)

load( JpegCoeff. mat')i

各确定相关hu前缀需要向后读入的位数

CCTAE=[[1;1;2;3;4;6;7;8;9;10;11]DCAB];

ge=length(decode)i

count=li

while count<=ge

flag=0i

run=run+1

now=[now DCCode(count)]i

名确定相关长度的huFf编码

d (DCTAB(: 2)

for court2=1: length(po)

若与huff编码相同则读出应向后读入的位数

f double(now)=-dCTA3(po(count2),3: 3+DCTAB (po(count2),2)-1)

10-DCTA3(oo(count2),1)i

break;

if flag--1

确定DC编码

middle=DCCode(coun=+1: count+lo);

DC=[DC 0]i

else

DC=[DC inv trans(middle)]i

end

count=count+loi

now-

run=0;

end

count=count+1

end

AC=zeros(63, ceil(h/B)*ceil(1/8))i

ge=length(ACCode)i

count=l

[];

wherearewe=li

while count<=ge

号寻找AC编码与DC大致相同

run-run+l;

now=Lnow ACCode(count)i

po=fird(ACTAB(: 3)==run)i

for count2=1: length(p

f double(now)==AcTAB(po(count2),4: 4+run-1

【实例截图】

【核心代码】

matlab图像大作业,MATLAB图像大作业相关推荐

  1. matlab电机外特性曲线,电机大作业(MATLAB仿真电机特性曲线)

    电机大作业(MATLAB仿真电机特性曲线) 电机大作业专业班级:电气 XXXX姓 名:XXX学 号:XXX 指导老师:张 威一.研究课题(来源:教材习题 4-18)有一台三相四极的笼形感应电动机,参数 ...

  2. matlab电机外特性曲线,电机大作业(MATLAB仿真,电机特性曲线).doc

    电机大作业(MATLAB仿真,电机特性曲线).doc 电机电机大作业大作业 专业班级电气 XXXX 姓 名XXX 学 号XXX 指导老师张 威 一.研究课题(来源教材习题一.研究课题(来源教材习题 4 ...

  3. matlab几何失真校正,摄像头图像失真校正

    基于MATLAB的摄像头 图像失真校正 上学的时候玩智能车摄像头组,从发现图像失真.到下载研究各种文档.再到写程序测试.最后实际运用,整个过程很有意思,特别是逆透视变换值得研究.下面的内容是那时候写的 ...

  4. matlab选修结课作业,matlab结课作业

    文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. 山西大同大学 matlab 课程结课作业 MATLAB 程序应用 姓名: 课程序号: 2 班级: 学号: 2013 ...... 山西 ...

  5. matlab画梅花,基于Matlab图像素描生成算法究.doc

    毕 业 文 图像素描生成算法研究 姓 名 院(系) 信息学院 专业班级 学 号 指导教师 职 称 论文答辩日期 年月日 摘 要 分析比较图像处理提供参考.关键词: 目 录 1 前言1 1.1 课题研究 ...

  6. matlab图像相加例子,MATLAB图像处理例子

    MATLAB图像处理例子 clc;clear all;close all; a = imread( railway_05.jpg ); b = rgb2gray(a); c = im2bw(b,240 ...

  7. idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...

    [连线题]请对正确的快键键连线 [判断题]板书是指教师在课堂黑板或白板上书写,将教学内容形象.直观.简洁地传授给学生.清晰.流畅.快速的粉笔书写是课堂板书的基本功. [其它]利用 MATLAB 编程, ...

  8. matlab图像隐写,matlab软件图像处理相关内容.ppt

    内容主要分为以下四个篇章: 一.介绍应用matlab处理图像问题 (以一个图像隐写的简单例子为说明线索) 二.应用matlab解决三维血管重建中的图像处理问题 三.图像处理练习(应用matlab解决双 ...

  9. [Matlab]Simulink绘制3维图像

    [Matlab]Simulink绘制3维图像 绘制1维和2维图像时,在Simulink中一般使用Scope,而为了获得更多的显示功能,我们也可以通过定义S-Function来实现/封装任何所希望的功能 ...

  10. matlab 通过矩阵变换使图像旋转平移_28. 图像扭曲

    本文同步发表在我的微信公众号"计算摄影学",欢迎扫码关注 你有没有想过,下面这个视频中的特效应该如何实现? Morphing Female Starshttps://www.zhi ...

最新文章

  1. php的优势和背景,CSS_CSS 多图片融合背景定位的应用于优缺点分析,1. 关键字, 例如: background-positio - phpStudy...
  2. Android 自定义view时用到的TypedArray
  3. Android LayoutInflater详解
  4. 机器学习知识点(三十六)分类器性能度量指标f1-score
  5. oracle如何清空一个用户下的所有表中的数据?
  6. swoole的安装(已经做测试成功)
  7. 华为服务器bmc默认地址_智能数据中心和智慧园区:华为的单点突破与全局效应...
  8. 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)
  9. VC使用sqlite
  10. 六级核心词汇pdf_人民日报总结的500个四六级【核心词汇】,祝你一次必过!
  11. Tensorflow API(一)
  12. 心酸血泪前端路,不断成长任我行,零碎知识点笔记(vue踩坑日记)
  13. c语言编程矩阵范数,矩阵2范数计算 这个二阶矩阵的二范数怎么
  14. Python量化交易策略及回测系统
  15. 计算机存储器与寄存器的区别,存储器和寄存器的区别
  16. 用python的xlwings模块实现excel工作表批量隐藏和取消隐藏
  17. php alt什么意思,img标签的alt作用是什么
  18. 计算机系统应用软件的核心是什么,计算机系统软件的核心是什么?
  19. 【机器人学习】六足机器人simulink仿真(运动学分析与步态仿真)
  20. 线段树染色问题(例题为poj2777)

热门文章

  1. Struts+iBatis+Spring+mysql整合开发
  2. ROR中简单的数据操作
  3. mapxtreme java manger web 应用程序牛刀小试
  4. 3-3-ServletContext接口
  5. 运行gulp_Gulp的基本使用
  6. 为什么let在php中报错,ES6系列之声明变量let与const
  7. mmu计算机组成原理,计算机组成原理
  8. 设计师值得学习的分类网站
  9. 促销海报设计的套路你知道么? 看这里!
  10. 可临摹的PSD分层模板,拆解上线,高逼格电商设计竟如此简单?