图像上机实验.docx
- 文档编号:25042611
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:18
- 大小:873.81KB
图像上机实验.docx
《图像上机实验.docx》由会员分享,可在线阅读,更多相关《图像上机实验.docx(18页珍藏版)》请在冰豆网上搜索。
图像上机实验
实验一图像处理的基本操作
一,实验目的
1.熟悉有关数字图像处理的MATLAB基本操作和编写;
2.掌握数字图像的基本读写、显示与保存;
3.能够利用MATLAB工具箱完成图像处理的基本运算;
二,实验内容
1.
(1)读取图像并显示真彩色图像house.tiff;
(2)读取图像并显示索引色图像canoe.tif,并转换为灰度图像;
(3)读取图像并显示灰度图像rice.png,并转换为二进制图像;
(4)检测内存中的图像和保存图像;
2.查看不同分辨率下图像lena.tiff的显示结果;
3.对彩色图像Peppers.png观看GRB通道各单通道图像;
4.实现马赫带效应并画出灰度直方图。
三,代码
I=imread('house.tiff');
figure
(1)
imshow(I)
[A,map]=imread('canoe.tif');
figure
(2)
subplot(121)
imshow(A,map)
D=ind2gray(A,map);
subplot(122)
imshow(D)
G=imread('rice.png');
figure(3)
subplot(121)
imshow(G)
th=graythresh(G);H=im2bw(G,th);
subplot(122)
imshow(H)
whos;imwrite
B=imread('lena.tiff');
figure(4),
subplot(121)
imshow(B)
C=imresize(B,0.2)
subplot(122)
imshow(C)
D=imread('Peppers.png');
r=D,r(:
:
[23])=0;
g=D,g(:
:
[13])=0;
b=D,b(:
:
[12])=0;
figure(5),
subplot(1,3,1),imshow(r);
subplot(1,3,2),imshow(g);
subplot(1,3,3),imshow(b);
a=zeros(256,256);
fori=1:
32:
256
a(:
i:
i+32)=i;
end
figure(6);
subplot(121)
imshow(uint8(a));
subplot(122)
imhist(uint8(a));
四,实验结果
五,结果分析
从运行结果可以看出,实验还是比较成功的。
但是在做索引色那个图像的时候,如果索引色和灰度图像放在同一个figure里,索引色图像显示的也是灰色,因此我只能把索引色图像和灰度图像分开放到两个figure里。
在查看不同分辨率下图像lena.tiff的显示结果时,必须要对两个图像进行放大查看才能看出不同。
实验二图像变换1
一,实验目的
1.熟悉有关MATLAB工具箱中提供的图像变换函数;
2.掌握傅立叶变换和小波变换等常用的正交变换函数;
二,实验内容
1.对图像lena.png进行傅立叶变换和离散余弦变换,并分别求出其逆变换后重构图像的均方误差;
2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;
3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。
三,代码
%1.对图像lena.png进行傅立叶变换和离散余弦变换,
%并分别求出其逆变换后重构图像的均方误差;
clear;
clc;
I=imread('lena.png');
%傅里叶变换
figure
(1);
I1=fft2(I);
I1=fftshift(I1);
If=ifftshift(I1);
If=uint8(real(ifft2(If)));
subplot(231);
imshow(I);
subplot(232);
imshow(log(abs(I1)),[]);
subplot(233);
imshow(If);
[m,n]=size(I);%计算均方误差
fori=1:
m
forj=1:
n
temp(i,j)=(If(i,j)-I(i,j))^2;
end
end
wucha1=sum(sum(temp))
%离散余弦变换
I2=dct2(I);
I3=fftshift(I2);
Id=idct2(I2);
Id=uint8(real(Id));
subplot(234);
imshow(I);
subplot(235);
imshow(log(abs(I3)),[]);
subplot(236);
imshow(Id);
[m,n]=size(I);%计算均方误差
fori=1:
m
forj=1:
n
temp(i,j)=(If(i,j)-I(i,j))^2;
end
end
wucha2=sum(sum(temp))
%%
%2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;
X=imread('lena.png');
[c,s]=wavedec2(X,2,'bior3.7');
a1=wrcoef2('a',c,s,'bior3.7',1);
h1=wrcoef2('h',c,s,'bior3.7',1);
v1=wrcoef2('v',c,s,'bior3.7',1);
d1=wrcoef2('d',c,s,'bior3.7',1);
c1=[a1,h1;v1,d1];
c1=uint8(c1);
Xr=waverec2(c,s,'bior3.7');
figure
(2);
subplot(131);
imshow(X);
subplot(132);
imshow(c1);
subplot(133);
imshow(uint8(Xr));
[m,n]=size(X);%计算均方误差
fori=1:
m
forj=1:
n
temp(i,j)=(Xr(i,j)-I(i,j))^2;
end
end
wucha3=sum(sum(temp))
%%
%3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,
%分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。
P=imread('C:
\shiyan2\IM1.BMP');
[c,s]=wavedec2(P,3,'bior3.7');
a1=wrcoef2('a',c,s,'bior3.7',1);
h1=wrcoef2('h',c,s,'bior3.7',1);
v1=wrcoef2('v',c,s,'bior3.7',1);
d1=wrcoef2('d',c,s,'bior3.7',1);
c1=[a1,h1;v1,d1];
c1=uint8(c1);
figure(3);
subplot(131);
imshow(P);
subplot(132);
imshow(c1);
subplot(133);
imshow(uint8(a1));
四,实验结果
五,实验结果
从运行结果可以看出,实验还是比较成功的。
上图分别是1.对图像lena.png进行傅立叶变换和离散余弦变换,并分别求出其逆变换后重构图像的均方误差;2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。
最后求得误差均为零,我认为这可能是重构方法均是使用matlab自带函数的原因,使得重构图像与原图几乎一样。
实验三图像变换2
一,实验目的
1.熟悉有关图像增强的直方图方法;
2.掌握傅立叶变换和离散余弦变换等常用的正交变换函数;
二,实验内容
1.实现对图像IM2.BMP进行直方图均衡化,从而达到增强图像的目的,观察图像直方图的前后变化;
2.实现对图像IM3.BMP加入某种噪声(如椒盐噪声等),运用低通滤波和中值滤波分别进行图像平滑;
3.实现对图像IM4.BMP的同态增强:
对照明分量和反射分量进行同态滤波。
三,代码
clear;
clc;
%实现对图像IM2.BMP进行直方图均衡化,从而达到增强图像的目的,
%观察图像直方图的前后变化
i=imread('IM2.BMP');
j=histeq(i);
figure
(1);
subplot(221);
imshow(i);
title('原始图像');
subplot(222);
imshow(j);
title('均衡化图像');
subplot(223);
imhist(i,64);
title('原始直方图');
subplot(224);
imhist(j,64);
title('均衡化直方图');
%实现对图像IM3.BMP加入某种噪声(如椒盐噪声等),
%运用低通滤波和中值滤波分别进行图像平滑
k=imread('IM3.BMP');
l=imnoise(k,'salt&pepper',0.02);
figure
(2);
subplot(221);
imshow(k);
title('原始图像');
subplot(222);
imshow(l);
title('噪声图像');
p=medfilt2(l);
subplot(223);
imshow(p);
title('中值滤波图像');
f=double(l);
g=fftshift(fft2(f));
[N1,N2]=size(g);
n=2;%butterworth滤波器的参数n=2
d0=50;%d0为截止频率(与原点的距离)
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=2:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d/d0)^2*n);
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
x2=ifft2(result);
x3=uint8(real(x2));
subplot(224);
imshow(x3);
title('butterworth低通滤波图像');
%实现对图像IM4.BMP的同态增强:
对照明分量和反射分量进行同态滤波
%图像的动态范围压缩,图像的对比度增强,类似于高通滤波
clear;
figure;
I=imread('IM4.BMP');
I1=log(double(I)+1);
I2=fft2(I1);
n=3;
d0=5;
rh=0.1;
rl=0.05;
[row,col]=size(I2);
fori=1:
row
forj=1:
col
d1(i,j)=sqrt(i^2+j^2);
h(i,j)=rl+(rh/(1+(d0/d1(i,j)^(2*n))));
end
end
I3=I2.*h;
I4=ifft2(I3);
I5=exp(I4)-1;
subplot(121);
imshow(I);
title('原始图像');
subplot(122);
imshow(I5);
title('同态滤波');
四,实验结果
五,结果分析
从运行结果可以看出,实验还是比较成功的。
但在加入椒盐噪声后进行高斯低通滤波的实验中,高斯低通滤波并不能完美的把噪声滤掉,图像中依然存在噪声,虽然变得不明显了。
我想可能是算子取得不好,导致了高斯低通滤波的失败。
实验四图像处理
一、实验目的
1.掌握图像分割中的四叉树区域分割与合并法;
2.掌握图像分割中的阈值分割法;
3.了解图像纹理分析和特征提取方法;
4.了解图像目标识别方法及其应用;
二、实验内容
1.使用四叉树(quadtree)的方法,找出图像IM5.BMP中物体的轮廓;
2.选择一个合适的初始阈值,将图像IM5.BMP分为两个区域;
3.选作题目:
选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来
描述纹理特征;
4.选作实验五特征提取
一、实验目的
1.了解图像纹理分析和特征提取方法;
二、实验内容
1.选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来描述纹理特征;
题目:
汽车牌照定位与字符识别。
三,代码
%使用四叉树(quadtree)的方法,找出图像IM5.BMP中物体的轮廓
h=imread('L8_2.BMP');
s=qtdecomp(h,0.2);
figure
(1);
subplot(221);
imshow(full(s));
title('参数为0.2');
s=qtdecomp(h,0.4);
subplot(222);
imshow(full(s));
title('参数为0.4');
s=qtdecomp(h,0.6);
subplot(223);
imshow(full(s));
title('参数为0.6');
s=qtdecomp(h,0.8);
subplot(224);
imshow(full(s));
title('参数为0.8');
%%
%选择一个合适的初始阈值,将图像IM5.BMP分为两个区域
h=imread('L8_2.BMP');
h1=im2bw(h,40/255);
h2=im2bw(h,100/255);
h3=im2bw(h,150/255);
h4=im2bw(h,180/255);
figure
(2);
subplot(221);
imshow(h);
title('原图像');
subplot(222);
imshow(h2);
title('t=100');
subplot(223);
imshow(h3);
title('t=150');
subplot(224);
imshow(h4);
title('t=180');
四,实验结果
五,结果分析
通过上图可以看出,实验还是比较成功的,在进行使用四叉树进行轮廓分析和阈值分割图像时,我分别使用了不同的参数来进行实验,得到的效果是完全不同的。
实验五特征提取
一、实验目的
1.了解图像纹理分析和特征提取方法;
二、实验内容
1.选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来描述纹理特征;
三,代码
clc;
clear;
[I,M]=imread('L8_2.BMP');
%imhist(I);
imshow(I,M);
glcm=graycomatrix(I,'Offset',[060],'NumLevels',8);
energy=graycoprops(glcm,'energy');
entropy=0;
[row,col]=size(glcm);
fori=1:
row
forj=1:
col
entropy=entropy+glcm(i,j)*log10(glcm(i,j));
end
end
%display(glcm);
display(energy);
display(entropy);
四,实验结果
五,结果分析
给定不不同的向量和灰度压缩成不同个数会得到不同不同的值,原因是没有对图像进行归一化,导致有多值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 上机 实验