太原理工大学数字图像处理实验Word格式文档下载.docx

上传人:b****6 文档编号:8475491 上传时间:2023-05-11 格式:DOCX 页数:31 大小:762.67KB
下载 相关 举报
太原理工大学数字图像处理实验Word格式文档下载.docx_第1页
第1页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第2页
第2页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第3页
第3页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第4页
第4页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第5页
第5页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第6页
第6页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第7页
第7页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第8页
第8页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第9页
第9页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第10页
第10页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第11页
第11页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第12页
第12页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第13页
第13页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第14页
第14页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第15页
第15页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第16页
第16页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第17页
第17页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第18页
第18页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第19页
第19页 / 共31页
太原理工大学数字图像处理实验Word格式文档下载.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

太原理工大学数字图像处理实验Word格式文档下载.docx

《太原理工大学数字图像处理实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《太原理工大学数字图像处理实验Word格式文档下载.docx(31页珍藏版)》请在冰点文库上搜索。

太原理工大学数字图像处理实验Word格式文档下载.docx

RX01.jpg'

);

subplot(1,2,1);

imshow(I);

title(‘原图’);

I=double(I);

[M,N]=size(I);

fori=1:

M

forj=1:

N

ifI(i,j)<

=30

I(i,j)=I(i,j);

elseifI(i,j)<

=150

I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30;

else

I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;

end

end

subplot(122);

imshow(uint8(I));

结果:

加椒盐噪声再处理的结果:

2、直方图均衡化

II=imread('

RX02.jpg'

subplot(221);

subplot(222);

imhist(I)

I1=histeq(I);

subplot(223);

imshow(I1);

subplot(224);

imhist(I1);

3、均值滤波

45.gif'

x=1;

II1=zeros(M,N);

16

II(:

:

i)=imnoise(I,'

gaussian'

0,0.01);

II1=II1+double(II(:

i));

ifor(or(i==1,i==4),or(i==8,i==16));

subplot(2,2,x);

imshow(uint8(II1/i));

title(num2str(x));

x=x+1;

end;

4、中值滤波

34.gif'

J=imnoise(I,'

salt&

pepper'

0.02);

subplot(231),imshow(I);

title('

原始图像'

subplot(232),imshow(J);

添加椒盐噪声图像'

k1=medfilt2(J);

k2=medfilt2(J,[5,5]);

k3=medfilt2(J,[7,7]);

k4=medfilt2(J,[9,9]);

subplot(233),imshow(k1);

3x3模板中值滤波'

subplot(234),imshow(k2);

5x5模板中值滤波'

subplot(235),imshow(k3);

7x7模板中值滤波'

subplot(236),imshow(k4);

9x9模板中值滤波'

5、梯度锐化操作

20.gif'

subplot(131);

imshow(I)

H=fspecial('

Sobel'

H=H'

;

TH=filter2(H,I);

subplot(132),imshow(TH,[]);

subplot(133),imshow(TH,[])

六、思考题

1.设定不同的斜率值和截距,显示效果会怎样?

  答:

设定不同的斜率值和截距,可对任一灰度区间进行扩展和压缩。

2.直方图均衡化是什么意思?

它的主要用途是什么?

答:

直方图均衡化就是通过变换函数将原图像的直方图修正为平坦的直方图,以此来修正原图像之灰度值。

它的主要用途是达到清晰图像的目的。

3.均值(中值)滤波的模板大小对处理效果有什么影响?

模板尺寸越大,噪声减小的效果越显著。

当所用平滑模板尺寸增大时,对噪声的消除效果也有所增强,但同时会带来图像的模糊,边缘细节逐步减少

实验二图像几何变换

实验二图像几何变换

2理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;

1初始坐标为(

)的点经过平移(

),坐标变为(

),两点之间的关系为:

,以矩阵形式表示为:

2图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:

3图像缩小和放大变换矩阵相同:

时,图像缩小;

时,图像放大。

4图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。

其变换矩阵为:

该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(

)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

1启动MATLAB程序,对图像文件分别进行生成、失真和校正;

(参考教材100页,例5.8,例5.9)

2记录和整理实验报告

1生成原始图像,失真图像

f=checkerboard(24);

figure

(1);

imshow(f);

s=0.7;

theta=pi/6;

T=[s*cos(theta)s*sin(theta)0

-s*sin(theta)s*cos(theta)0

001];

tform=maketform('

affine'

T);

g1=imtransform(f,tform,'

nearest'

figure

(2);

imshow(g1);

失真图像'

选择连接点:

cpselect(g1,f);

还原并输出结果:

1.改变水平和垂直的偏移量,观察显示?

  

2.改变缩放比例,看看效果如何?

3.改变旋转角度,显示效果会怎么样?

实验三图像压缩编码技术

学号:

2013年6月9日

实验三图像压缩编码技术

1、理解有损压缩和无损压缩的概念;

2、理解图像压缩的主要原则和目的;

 

3、了解几种常用的图像压缩编码方式;

4、利用MATLAB程序进行图像压缩编码。

1、图像压缩原理

图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;

损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

(1)冗余度压缩方法,也称无损压缩、信息保持编码或熵编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:

(1)无损压缩编码种类

哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempelzev编码。

(2)有损压缩编码种类

预测编码,DPCM,运动补偿;

频率域方法:

正交变换编码(如DCT),子带编码;

空间域方法:

统计分块编码;

模型方法:

分形编码,模型基编码;

基于重要性:

滤波,子采样,比特分配,向量量化;

(3)混合编码。

有JBIG,H.261,JPEG,MPEG等技术标准。

本实验主要利用MATLAB程序进行赫夫曼(Huffman)编码和行程编码(RunLengthEncoding,RLE)。

1打开计算机,启动MATLAB程序;

2选择一幅图像,并进行赫夫曼和行程编码压缩处理;

3将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。

4记录和整理实验报告

2MATLAB、Photoshop等程序;

3移动式存储器(软盘、U盘等)。

4记录用的笔、纸。

1、霍夫曼编码

主程序

X=imread('

5.gif'

data=uint8(X);

[zipped,info]=huffencode(data);

unzipped=huffdecode(zipped,info);

subplot(121);

imshow(X);

imshow(unzipped);

cr=info.ratio

whosIunzippedzipped

子程序:

huffencode

function[zipped,info]=huffencode(vector)

if~isa(vector,'

uint8'

error('

inputargumentmustbeauint8vector'

[m,n]=size(vector);

vector=vector(:

)'

f=frequency(vector);

%计算各符号出现的概率

symbols=find(f~=0);

f=f(symbols);

[f,sortindex]=sort(f);

%将符号按照出现的概率大小排序

symbols=symbols(sortindex);

len=length(symbols);

symbols_index=num2cell(1:

len);

codeword_tmp=cell(len,1);

whilelength(f)>

1%生产Huffman树,得到码字编码表

index1=symbols_index{1};

index2=symbols_index{2};

codeword_tmp(index1)=addnode(codeword_tmp(index1),uint8(0));

codeword_tmp(index2)=addnode(codeword_tmp(index2),uint8

(1));

f=[sum(f(1:

2))f(3:

end)];

symbols_index=[{[index1,index2]}symbols_index(3:

[f,sortindex]=sort(f);

symbols_index=symbols_index(sortindex);

codeword=cell(256,1);

codeword(symbols)=codeword_tmp;

len=0;

forindex=1:

length(vector)%得到整个图像所有比特数

len=len+length(codeword{double(vector(index))+1});

string=repmat(uint8(0),1,len);

pointer=1;

length(vector)%对输入图像进行编码

code=codeword{double(vector(index))+1};

len=length(code);

string(pointer+(0:

len-1))=code;

pointer=pointer+len;

len=length(string);

pad=8-mod(len,8);

%非8整数倍时,最后补pad个0

ifpad>

string=[stringuint8(zeros(1,pad))];

codeword=codeword(symbols);

codelen=zeros(size(codeword));

weights=2.^(0:

23);

maxcodelen=0;

length(codeword)

len=length(codeword{index});

iflen>

maxcodelen

maxcodelen=len;

code=sum(weights(codeword{index}==1));

code=bitset(code,len+1);

codeword{index}=code;

codelen(index)=len;

codeword=[codeword{:

}];

%计算压缩后的向量

cols=length(string)/8;

string=reshape(string,8,cols);

7);

zipped=uint8(weights*double(string));

%码表存储到一个稀疏矩阵

huffcodes=sparse(1,1);

nnz(codeword)

huffcodes(codeword(index),1)=symbols(index);

%填写解码时所需的结构信息

info.pad=pad;

info.huffcodes=huffcodes;

info.ratio=cols./length(vector);

info.length=length(vector);

info.maxcodelen=maxcodelen;

info.rows=m;

info.cols=n;

%huffdecode函数对输入矩阵vector进行Huffman编码,

%返回解压后的图像数据

End

huffdecode

functionvector=huffdecode(zipped,info,image)

if~isa(zipped,'

%产生0,1序列,每位占一个字节

len=length(zipped);

string=repmat(uint8(0),1,len.*8);

bitindex=1:

8;

len

string(bitindex+8.*(index-1))=uint8(bitget(zipped(index),bitindex));

string=logical(string(:

%开始解码

51);

vector=repmat(uint8(0),1,info.length);

vectorindex=1;

codeindex=1;

code=0;

code=bitset(code,codeindex,string(index));

codeindex=codeindex+1;

byte=decode(bitset(code,codeindex),info);

ifbyte>

vector(vectorindex)=byte-1;

codeindex=1;

code=0;

vectorindex=vectorindex+1;

%vector=reshape(vector,info.rows,info.cols);

%函数addnode添加节点

frequency

functionf=frequency(vector)

if~isa(vector,'

f=repmat(0,1,256);

len=length(vector);

forindex=0:

255

f(index+1)=sum(vector==uint8(index));

f=f./len;

%函数decode返回码字对应的符号

decode

functionbyte=decode(code,info)

byte=info.huffcodes(code);

addnode

functioncodeword_new=addnode(codeword_old,item)

codeword_new=cell(size(codeword_old));

length(codeword_old)

codeword_new{index}=[itemcodeword_old{index}];

%函数frequency计算各符号出现的概率

2、行程编码

主程序:

%读入图像数据

[zipped,info]=RLEncode(I);

%调用RLE进行编码

unzipped=RLEdecode(zipped,info);

%调用解码程序进行编码

%显示原始图像和经编码解码后的图像,显示压缩比,并计算均方根误差得erms=0,表示ELE是无失真编码

imshow(unzipped);

%erms=compare(I(:

),unzipped(:

))

RLEncode

function[zipped,info]=RLEncode(vector)

L=length(vector);

c=vector

(1);

e(1,1)=c;

e(1,2)=0;

%e(:

1)存放灰度,e(:

2)存放行程

t1=1

forj=1:

L

if((vector(j)==c))

e(t1,2)=double(e(t1,2))+1;

c=vector(j);

t1=t1+1;

e(t1,1)=c;

e(t1,2)=1;

zipped=e;

[m,n]=size(e);

info.ratio=m*n/(info.rows*info.cols);

RLEecode

functionunzipped=RLEecode(zip,info)

zip=uint8(zip);

[m,n]=size(zip);

unzipped=[];

m

section=repmat(zip(i,1),1,double(zip(i,2)));

unzipped=[unzippedsection];

unzipped=reshape(unzipped,info.rows,info.cols);

%程序结束

1.图像中哪些信息是主要的,哪些信息是次要的?

需要传达给别人的部分是主要的。

其他是次要的。

例如肖像图片,肖像部分是主要的,其背景是次要的。

为了证明当时的场景,场景就是主要的了,而人物就变成次要的。

描述风景,人物是次要的,背景是主要的。

主要和次要是相对的。

没有绝对的主要,也没有绝对的次要。

2.简述赫夫曼编码和行程编码的原理。

答:

赫夫曼编码:

先统计数据中各字符出现的概率,再按字符出现频率高低的顺序分别赋以由短到长的代码,从而保证文件整体的大部分字符是由较短的编码所构成。

行程编码:

行程编码又称行程长度编码(RunLengthEncoding,RLE),是一种熵编码,其编码原理是将具有相同值的连续串用其串长和一个代表值来代替,该连续串就称为行程,串长称为行程长度。

实验四图像分割

实验四图像分割

理解和掌握图像分割的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行分割处理。

1、膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;

而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。

贴标签是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2