图 像 处 理 实 验一直 方 图Word格式文档下载.docx
《图 像 处 理 实 验一直 方 图Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图 像 处 理 实 验一直 方 图Word格式文档下载.docx(4页珍藏版)》请在冰点文库上搜索。
subplot(1,2,1)imshow(J);
FFT变换结果'
subplot(1,2,2)K=fftshift(J);
imshow(K);
零点平移'
imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;
系数分布图'
%图象的DCT变换RGB=imread('
subplot(1,2,1)imshow(RGB);
彩色原图'
a=rgb2gray(RGB);
subplot(1,2,2)imshow(a);
灰度图'
b=dct2(a);
imshow(log(abs(b)),[]),colormap(jet(64)),colorbar;
DCT变换结果'
b(abs(b)<
10)=0;
%idctc=idct2(b)/255;
imshow(c);
IDCT变换结果'
图象处理变换(三)小波变换实验内容:
熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图象作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.程序如下:
clccloseallcleara=imread('
subplot(1,2,1);
imshow(a);
原始图象'
I=rgb2gray(a);
subplot(1,2,2);
imshow(I);
原始图象的灰度图'
%进行二维小波变换[a,b]=wavedec2(I,2,'
bior3.7'
%提取各层低频信息figure;
c=appcoef2(a,b,'
1);
imshow(c,[]);
一层小波变换结果'
d=appcoef2(a,b,'
2);
imshow(d,[]);
二层小波变换结果'
图象处理实验(四)模板运算一、实验内容:
(1)平滑:
平滑的目的是模糊和消除噪声。
平滑是用低通滤波器来完成,在空域中全是正值。
(2)锐化:
锐化的目的是增强被模糊的细节。
锐化是用高通滤波器来完成,在空域中,接近原点处为正,在远离原点处为负。
利用模板进行图象增强就是进行模板卷积。
1、利用二个低通邻域平均模板(3×
3和9×
9)对一幅图象进行平滑,验证模板尺寸对图象的模糊效果的影响。
2、利用一个低通模板对一幅有噪图象(GAUSS白噪声)进行滤波,检验两种滤波模板(分别使用一个5×
5的线性邻域平均模板和一个非线性模板:
3×
5中值滤波器)对噪声的滤波效果。
3、选择一个经过低通滤波器滤波的模糊图象,利用sobel和prewitt水平边缘增强高通滤波器(模板)对其进行高通滤波图象边缘增强,验证模板的滤波效果。
4、选择一幅灰度图象分别利用一阶Sobel算子和二阶Laplacian算子对其进行边缘检测,验证检测效果。
二、实验步骤:
1、利用低通邻域平均模板进行平滑:
girl.bmp'
subplot(1,3,1);
J=fspecial('
average'
J1=filter2(J,I)/255;
subplot(1,3,2);
imshow(J1);
3*3滤波'
K=fspecial('
9);
K1=filter2(K,I)/255;
subplot(1,3,3);
imshow(K1);
9*9滤波'
2、中值滤波和平均滤波I=imread('
J=imnoise(I,'
gaussian'
0,0.01);
subplot(2,2,1);
subplot(2,2,2);
imshow(J);
noise'
5);
K1=filter2(K,J)/255;
subplot(2,2,3);
L=medfilt2(J,[35]);
subplot(2,2,4);
imshow(L);
medium'
3、高通滤波边缘增强I=imread('
originalpic'
3);
J1=conv2(I,J)/255;
%J1=filter2(J,I)/255;
3*3lowpass'
prewitt'
K1=filter2(K,J1)*5;
L=fspecial('
sobel'
L1=filter2(L,J1)*5;
imshow(L1);
sibel'
4、边缘检测分别用sobel和laplacian算子来进行,程序如下:
laplacian'
0.7);
K1=filter2(K,I)/100;
L1=filter2(L,I)/200;
图像处理实验(五)图像分割实验目的:
1、学习边缘检测2、学习灰度阀值分割实验内容:
1、分别用sobel、Laplacian-Gaussian方法对一幅灰度图像进行边缘提取,2、给出对比结果i=imread('
eight.tif'
imshow(i);
原始图像'
i1=edge(i,'
imshow(i1);
sober方法提取的边缘'
i2=edge(i,'
log'
imshow(i2);
Laplacian-Gaussian方法提取的边缘'
比较提取边缘的效果可以看出,sober算子是一种微分算子,对边缘的定位较精确,但是会漏去一些边缘细节。
而Laplacian-Gaussian算子是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘的细节比较丰富。
通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
3、利用双峰法对一幅灰度图像进行灰度分割处理i=imread('
imhist(i);
原始图像直方图'
thread=130/255;
i3=im2bw(i,thread);
imshow(i3);
分割结果'
根据原图像的直方图,发现背景和目标的分割值大约在130左右,并将灰度图像转为二值图像,分割效果比较理想。
图像处理实验(六)图像压缩与编码实验目的:
学习JPEG压缩编码实验内容:
一.实现基本JPEG的压缩和编码分三个步骤:
1.首先通过DCT变换去除数据冗余;
2.使用量化表对DCT系数进行量化;
3.对量化后的系数进行Huffman编码。
具体源程序由主程序及两个子程序(DCT量化、Huffman编码)组成:
1.主程序I=imread('
autumn.tif'
yiq=rgb2ntsc(I);
my=[1611101624405161;
1212141926586055;
1413162440576956;
1417222951878062;
182237566810910377;
243555648110411392;
49647887103121120101;
7292959811210010399];
miq=[1718244799999999;
1821266699999999;
2426569999999999;
4766999999999999;
9999999999999999;
9999999999999999];
I1=yiq(:
:
1);
I2=(:
2);
[mn]=size(I1);
t1=8;
ti1=1;
while(t1t1=t1+8;
ti1=ti1+1;
endt2=8;
ti2=1;
while(t2t2=t2+8;
ti2=ti2+1;
endtimes=0;
fork=0:
ti1-2forj=0:
ti2-2dct8x8(I1(k*8+1:
k*8+8,j*8+1:
j*8+8),my,times*64+1);
dct8x8(I2(k*8+1:
j*8+8),miq,times*64+1);
times=times+1;
endblock(I2(k*8+1:
t2),[88],'
dctmtx(8)'
endforj=0:
t1,j*8+1:
j*8+8),times*64+1);
enddct8x8(I1(k*8+1:
t2),times*64+1);
2.functiondct8x8(I,m,s)%定义DCT量化子程序T=inline('
y=blkproc(I,[88],T);
y=round(y./m);
p=1;
te=1;
while(p<
=64)forq=1:
tey1(s+p)=y(te-q+1,q);
p=p+1;
endforq=te:
-1:
1y1(s+p)=y(te-q+1,q);
endendf=haffman(y1);
c(s:
s+64,1)=f(:
s+64,2)=f(:
s+64,3)=f(:
3)3.functionc=haffman(I)%定义Huffman编码子程序[m,n]=size(I);
p1=1;
s=m*n;
fork=1:
mforh=1:
nf=0;
forb=1:
p1-1if(c(b,1)==I(k,h))f=1;
break;
endendif(f==0)c(p1,1)=I(k,h);
p1=p1+1;
endendendforg=1:
p1-1p(g)=0;
c(g,2)=0;
nif(c(g,1)==I(k,h))p(g)=p(g)+1;
endendendp(g)=p(g)/s;
endpn=0;
po=1;
while
(1)if(pn>
=1.0)break;
else[pmp2]=min(p(1:
p1-1));
p(p2)=1.1;
[pm2,p3]=min(p(1:
p(p3)=1.1;
pn=pm+pm2;
p(p1)=pn;
tree(po,1)=p2;
tree(po,2)=p3;
po=po+1;
endendfork=1:
po-1tt=k;
m1=1;
if(or(tree(k,1)<
9,tree(k,2)<
9))if(tree(k,1)<
9)c(tree(k,1),2)=c(tree(k,1),2)+m1;
m2=1;
while(ttm1=m1*2;
forh=tt:
po-1if(tree(h,1)==tt+g)c(tree(k,1),2)=c(tree(k,1),2)+m1;
m2=m2+1;
tt=h;
elseif(tree(h,2)==tt+g)m2=m2+1;
endendendc(tree(k,1),3)=m2;
endtt=k;
if(tree(k,2)<
9)m2=1;
po-1if(tree(h,1)==tt+g)c(tree(k,2),2)=c(tree(k,2),2)+m1;
elseif(tree(l,2)==tt+g)m2=m2+1,tt=h;
endendendc(tree(k,2),3)=m2;
endendend二.JPEG2000采用小波变换编码,小波变换压缩编码实现程序为loadwbarb;
subplot(2,2,1),image(X);
colormap(map)title('
[c,s]=wavedec2(X,2,'
thr=20;
ca1=appcoed2(c,s,'
ch1=detcoef2('
h'
c,s,1);
cv1=detcoef2('
v'
cd1=detcoef2('
d'
a1=wrcoef2('
a'
c,s,'
h1=wrcoef2('
v1=wrcoef2('
d1=wrcoef2('
c1=[a1,h1,v1,d1];
ca1=wcodemat(ca1,440,'
mat'
0);
ca1=0.5*ca1subplot(2,2,2),image(ca1)title('
压缩图象一'
)ca2=appcoed2(c,s,'
ca2=wcodemat(ca2,440,'
ca2=0.5*ca2;
subplot(2,2,3),image(ca2)title('
压缩图象二'
)图象处理实验(七)应用KL变换进行图象的特征提取一、实验要求:
应用KL变换进行图象的特征提取。
熟悉MATLAB的相关命令。
二、实验目的:
掌握如何应用KL变换进行图象的特征提取。
三、实验内容:
选择一幅稍大的灰度图象(最好用纹理图象),按下面步骤进行实验:
(1)应用9×
9的窗口对上述图象进行随机抽样,共抽样200块子图象;
(2)将所有子图象按列相接变成一个81维的行向量;
(3)对所有200个行向量进行KL变换,求出其对应的协方差矩阵的特征向量和特征值,按降序排列特征值以及所对应的特征向量;
(4)选择前40个最大特征值所对应的特征向量作为主元,将原图象块向这40个特征向量上投影,所获得的投影系数就是这个子块的特征向量。
(5)求出所有子块的特征向量。
四、实验结果:
源程序如下:
clearcloseallclcM=rand(200,200);
a.bmp'
[mx,my]=size(I);
fori=1:
200forj=1:
199if(ceil(M(i,j)*mx)x(i)=ceil(M(i,j)*mx);
y(i)=ceil(M(i,j+1)*my);
endendendfori=1:
200I1(:
i)=imcrop(I,[x(i),y(i),8,8]);
I2(:
i)=reshape(I1(:
i),1,81);
endI2=double(I2);
C=I2'
*I2/200;
[a,s]=eig(C);
A=a(161:
200,:
U=A*I2'
;
imshow(U);
特征向量'
/bbsxp/showtopic.asp?
topage=1&
id=1525&
forumid=37&
page=11
欢迎光临程序员联合开发网(,[gavin1000---]
.cn/vibbbs/query.asp[gavin1000---]
仅供个人用于学习、研究;
不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;
notforcommercialuse.
Nurfü
rdenpersö
nlichenfü
rStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'
é
tudeetlarechercheuniquementà
desfinspersonnelles;
pasà
desfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文