数字图像处理实验指导书.docx
- 文档编号:14620771
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:24
- 大小:421.15KB
数字图像处理实验指导书.docx
《数字图像处理实验指导书.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验指导书.docx(24页珍藏版)》请在冰点文库上搜索。
数字图像处理实验指导书
数字图像处理实验指导书
华北水利水电学院
信息工程学院
上机讲座0
实验一数字图像的运算3
实验1.1直方图3
实验1.23*3均值滤波4
实验1.33*3中值滤波5
实验1.4图像的缩放6
实验1.5图像旋转7
实验二数字图像的离散余弦变换9
实验三基于直方图均衡化的图像增强10
1.直方图修改处理图像的概念及方法10
2.直方图均衡化增强图像对比度的MATLAB程序:
11
实验四图像分割(常见的边缘检测算子——Sobel、Prewitt、Log)13
上机讲座
1.灰度图像的显示
(1)256色下显示64级灰度图像
调色板设置:
R=G=B=I=0-63
可显示64级真灰度。
(2)16、24或32位真彩下同理可显示更多灰度级的灰度图像。
(3)Windows下可显示格式为*.bmp、*.pcx、*.jpg和*.gif等Windows能识别并能显示的格式图像。
2.图像处理用图像数据
(1)无格式图像
图像处理中,常使用无格式(不带格式)图像数据。
(2)上机给定无格式图像数据
①人头像:
lena.img
256×256×8(分辨率/大小:
256×256,灰度级:
28=256级)。
②显微医学细胞图像:
cell_128.img
128×128×8(分辨率/大小:
128×128,灰度级:
28=256级)。
③指纹图像:
fing_128.img
128×128×8(分辨率/大小:
128×128,灰度级:
28=256级)。
3.图像获取、转换及输出
(1)图像获取
①数码照(摄录)相机→数字图像→计算机;
②照片或其它类型光学图像→图像扫描仪→计算机;
③计算机中显示图像的截取和拷贝;
④自行产生。
(2)图像或处理结果图像的输出
①常见格式图像(如*.bmp、*.pcx、*.jpg和*.gif等)可用支持这些格式图像的Windows等来显示、打印等;
②编程显示;
③无格式图像输出(显示、存盘、图文混排、打印等)
4.MATLAB命令简介
MATLAB的命令很多很难记,为了帮助用户找到命令,MATLAB通过其广泛的在线帮助功能提供帮助。
这些功能主要有三种形式:
help命令(在命令窗口中输入help…,回车即可),或者使用helpwin命令显示帮助窗口,该帮助窗口提供所有命令的帮助。
lookfor命令(提供了一种通过一般的关键词找到MATLAB命令和帮助标题的方式);还可交互使用help菜单条。
(1)常用命令
clea—无条件删除MATLAB工作空间中的变量。
ans—(answer的缩写)用于结果的缺省变量名。
axis—用于设置影响当前坐标轴对象的相关值。
所谓当前坐标轴对象,即最后创建的坐标轴或最后用鼠标点击选中的坐标轴。
plot—图形绘制命令,如:
plot(Y),Y是一个矩阵,则以矩阵的每个行列为线条绘制图形,plot(x,y),x,y为矢量,则绘制矢量y相对于矢量x的图形。
等等,还可以有其他参数。
subplot(x,y,z)—该命令用于创建一个图形框。
x代表行数,y代表列数,z为第z个图形。
例如subplot(2,2,1)。
title(‘…’)—给输出图像加标题。
abs()—按所操作的变量可以计算复数的幅值或者实数的绝对值。
exp—表示指数。
clc—清除命令窗。
%—起到文本注释的作用,其后的内容将不被执行。
(2)显示图像
image(C)—将矩阵C作为图像显示,其元素可以是双精度型的或者是unit8型的数据。
imagesc—调整数据并显示成图像。
它可以对其数据进行伸缩调整以充分利用全部的颜色图。
imshow—也用于显示图像,根据其参数不同,可以有不同的显示功能。
例如:
imshow(I,[low,high])可以显示给定显示图像的灰度范围;imshow(filename)可以显示filename所指定的图像文件中的图像。
该函数功能很大,可自行查书或利用前面讲的help命令。
注意:
给文件起名字时,不能只是使用数字。
例如:
1.m
在执行时,命令窗口中会出现:
ans=1,而不是执行了该文件。
在编写程序时要求我们一定不可直接调用MATLAB工具箱里的现成的工具,要自己通过编程来实现所要求的功能。
实验一数字图像的运算
实验1.1直方图
一.实验目的
1.熟悉matlab图像处理工具箱及直方图函数的使用;
2.理解和掌握直方图原理和方法;
二.实验设备
1.PC机一台;2.软件matlab。
三.程序设计
在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('caomei.tif');%读取图像
subplot(1,2,1),imshow(I);%输出图像
title('原始图像');%在原始图像中加标题
subplot(1,2,2),imhist(I);%输出原图直方图
title('原始图像直方图')%在原图直方图上加标题
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察图像matlab环境下的直方图分布。
(a)原始图像(b)原始图像直方图
六.实验报告要求
1、给出实验原理过程及实现代码;
2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.23*3均值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及均值滤波函数的使用;
2.理解和掌握3*3均值滤波的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
I=imread('caomei.tif');
figure,imshow(I);
J=filter2(fspecial(‘average’,3),I)/255;
figure,imshow(J);
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像增强(均值滤波)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下原始图像经3*3均值滤波处理后的结果。
(a)原始图像(b)3*3均值滤波处理后的图像
图(3)
六.实验报告要求
输入一幅灰度图像,给出其图像经3*3均值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行均值滤波,看看对25个点取均值与对9个点取中值进行均值滤波有什么区别?
有没有其他的算法可以改进滤波效果。
实验1.33*3中值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及中值滤波函数的使用;
2.理解和掌握中值滤波的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');
figure,imshow(I);
J=medfilt2(I,[5,5]);
figure,imshow(J);
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下原始图像经3*3中值滤波处理后的结果。
(a)原始图像(b)3*3中值滤波处理后的图像
图(4)
六.实验报告要求
输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。
看看对25个点取中值与对9个点取中值进行中值滤波有什么区别?
实验1.4图像的缩放
一.实验目的
1.熟悉matlab图像处理工具箱及图像缩放函数的使用;
2.掌握图像缩放的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');
figure,imshow(I);
scale=0.5;
J=imresize(I,scale);
figure,imshow(J);
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像缩放后的结果。
(a)原始图像(b)缩放后的图像
图(5)
六.实验报告要求
输入一幅灰度图像,给出其图像缩放后的结果,然后改变缩放比率,观察图像缩放后结果柄进行分析。
实验1.5图像旋转
一.实验目的
1.熟悉matlab图像处理工具箱及图像旋转函数的使用;
2.理解和掌握图像旋转的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');
figure,imshow(I);
theta=30;
K=imrotate(I,theta);%Tryvaryingtheangle,theta.
figure,imshow(K)
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像旋转函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像旋转后的结果。
(a)原始图像(b)旋转后的图像
图(7)
六.实验报告要求
输入一幅灰度图像,给出其图像旋转后的结果,然后改变旋转角度,观察图像旋转后结果柄进行分析。
实验二数字图像的离散余弦变换
一.实验目的
1.验证二维傅里叶变换的平移性和旋转不变性;
2.实现图像频域滤波,加深对频域图像增强的理解;
二.实验设备
1.PC机一台;
2.软件matlab;
三.实验内容及步骤
(1)产生如图3.1所示图像
(128×128大小,暗处=0,亮处=255),用MATLAB中的fft2函数对其进行FFT:
①同屏显示原图
和
的幅度谱图;
②若令
,重复以上过程,比较二者幅度谱的异同,简述理由;
③若将
顺时针旋转45度得到
,试显示
的幅度谱,并与
的幅度谱进行比较。
(2)对如图3.2所示的数字图像lena.img(256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。
实验三基于直方图均衡化的图像增强
一.实验目的
1.了解空间域图像增强的各种方法(点处理、掩模处理);
2.掌握采用直方图均衡化进行图像增强的方法;
3.使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;
二.实验设备
1.PC机一台;
2.软件matlab;
三.实验内容及步骤
对如图3.1所示的两幅128×128、256级灰度的数字图像fing_128.img和cell_128.img进行如下处理:
(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。
(2)对原图像加入点噪声,用4-邻域平均法平滑加噪声图像(图像四周边界不处理,下同),同屏显示原图像、加噪声图像和处理后的图像。
①不加门限;
②加门限
,(其中
)
1.直方图修改处理图像的概念及方法
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法可以在课后自行练习。
直方图是多种空间域处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。
直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程
2.直方图均衡化增强图像对比度的MATLAB程序:
I=imread(‘caomei.tif’);%读入原图像
J=histeq(I);%对原图像进行直方图均衡化处理
Imshow(I);%显示原图像
Title(‘原图像’);%给原图像加标题名
Figure;imshow(J);%对原图像进行屏幕控制;显示直方图均衡化后的图像
Title(‘直方图均衡化后的图像’);%给直方图均衡化后的图像加标题名
Figure;subplot(1,2,1);%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图
Imhist(I,64);%将原图像直方图显示为64级灰度
Title(‘原图像直方图’);%给原图像直方图加标题名
Subplot(1,2,2);%作第2幅子图
Imhist(J,64);%将均衡化后图像的直方图显示为64级灰度
Title(‘均衡变换后的直方图’);%给均衡化后图像直方图加标题名
2.直方图均衡化增强图像对比度的MATLAB程序
A=imread('d:
\pepper.bmp');
B=rgb2gray(A)
T=graythresh(B);
g=im2bw(B,T);
subplot(121),imshow(B);
subplot(122),imshow(g);
%统计图像直方图并以128为阈值进行分割
B=imread('d:
/1.bmp');
A=double(B);
[m,n]=size(A);
hist1=zeros(1,256);
fori=1:
m
forj=1:
n
pix=A(i,j);
hist1(pix+1)=hist1(pix+1)+1;
hist(pix+1)=double(hist1(pix+1)/(m+n));
end
end
fori=1:
m
forj=1:
n
ifA(i,j)<=128;
C(i,j)=0;
else
C(i,j)=255;
end
end
end
subplot(121),bar(hist);
subplot(122),imshow(C,[])
实验四图像分割(常见的边缘检测算子——Sobel、Prewitt、Log)
一.实验目的
1.熟悉matlab图像处理工具箱及图像边缘检测函数的使用;
2.理解和掌握图像边缘检测(Sobel、Prewitt、Log边缘算子)的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log边缘算子)函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');
J1=edge(I,'sobel');
J2=edge(I,'prewitt');
J3=edge(I,'log');
subplot(1,4,1),imshow(I);
subplot(1,4,2),imshow(J1);
subplot(1,4,3),imshow(J2);
subplot(1,4,4),imshow(J3);
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的边缘检测(Sobel边缘算子、Prewitt边缘算子、Log边缘算子)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察经过图像边缘检测(Sobel、Prewitt、Log边缘算子)处理后的结果。
(a)原始图像(b)Sobel边缘算子
(c)Prewitt边缘算子(d)Log边缘算子
图(7)
六.实验报告要求
输入一幅灰度图像,给出其图像边缘检测(Sobel、Prewitt、Log边缘算子)后的结果并进行分析对比。
%对图像进行一些简单的几何处理
clc;clear
I=imread('caomei.tif');
invI=imcomplement(I);%求I的补
K=uint8(filter2(fspecial('gaussian'),I));%对图像进行高斯滤波
[m,n]=size(I);%获取图像的长宽
i=1:
m;j=1:
n;
M=zeros(m,n);
M(i,j)=I(i,j)+20;%给图像所有像素加上一个值
Z=I-K;%求出经过高斯滤波和源图像的差值
I1=I*1.3;%做源图像和常数相乘
I2=I./invI;%做源图像和其不图像相除
J1=imresize(I,0.2);%将图像变为原来的0.2倍
J2=imresize(I,2.5);%将图像变为原先的2.5倍
figure
(1);
subplot(3,3,1);imshow(I,[0255]);title('原始图像')
subplot(3,3,2);imshow(invI,[0255]);title('图像求逆')
subplot(3,3,3);imshow(K,[0255]);title('图像滤波')
subplot(3,3,4);imshow(M,[0255]);title('图像加法')
subplot(3,3,5);imshow(Z,[0255]);title('图像减法')
subplot(3,3,6);imshow(I1,[0255]);title('图像乘法')
subplot(3,3,7);imshow(I2,[0255]);title('图像除法')
subplot(3,3,8);imshow(J1,[0255]);title('图像缩小')
subplot(3,3,9);imshow(J2,[0255]);title('图像放大')
%图像直方图均衡及其处理
B=imread('pout.tif');
B1=histeq(B);%做直方图均衡化
figure
(2);
subplot(2,2,1);imshow(B);title('原始图像')
subplot(2,2,2);imshow(B1);title('均衡化后')
subplot(2,2,3);imhist(B);title('原始图像的直方图')
subplot(2,2,4);imhist(B1);title('均衡化后图像的直方图')
%图像滤波,平滑,边缘提取,增强
C=imread('cameraman.tif');
F1=[111;111;111]/9;%3*3均值滤波
F2=[121;000;-1-2-1];%求边缘
F3=[-1-1-1;-19-1;-1-1-1];%高通滤波
C1=filter2(F1,C);%应用3*3均值滤波器
C2=filter2(F2,C);
C3=filter2(F3,C);
figure(3);
subplot(2,2,1);imshow(C,[0255]);title('原图')
subplot(2,2,2);imshow(C1,[0255]);title('平滑滤波')
subplot(2,2,3);imshow(C2,[0255]);title('边缘提取')
subplot(2,2,4);imshow(C3,[0255]);title('图像增强')
%图像添加噪声并且滤除
D=imread('eight.tif');
D1=imnoise(D,'gaussian',0,0.01);%给图像添加噪声
D2=medfilt2(D1);%中值滤波
figure(4);
subplot(1,3,1);imshow(D,[0255]);title('原图');
subplot(1,3,2);imshow(D1,[0255]);title('加入椒盐噪声')
subplot(1,3,3);imshow(D2,[0255]);title('中值滤波后')
%8*8矩阵做DCT反变换
clc,clear;
M=zeros(8,8);%产生一个8*8的全0矩阵
M(1,1)=1;%让其(0,0)点的系数为1
N1=idct2(M);%对M做IDCT变换
N1=uint8(N1);%转换为0-255的整数
M(1,1)=0;M(1,2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 指导书