数字图象处理实验指导书2017

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理实验指导书
2015年9月1日
目录
实验一、直方图 (1)
实验二、边缘检测 (4)
实验三、K-means聚类 (7)
实验四、综合实验—虹膜检测 (11)
实验五、图像处理的基本算法 (11)
实验六、细胞图像的分割与测量 (115)
实验一、直方图
一、实验目的
学习、了解灰度直方图及灰度直方图均衡化的定义,作用、使用方法
二、实验原理
1、灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数
(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表示图像中该灰度级出现的个数(频率)。

一维直方图的结构表示为
2、直方图均衡化是图像处理领域中利用图像直方图对对比度进
行调整的方法。

这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。

通过这种方法,亮度可以更好地在直方图上分布。

这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

三、实验步骤及实验结果
1、直方图的生成:
1) 读取图片
2) 将图片转成灰度图片
3) 调用图像显示函数imshow,显示原图的灰度图像:
4)
调用灰度直方图生成函数imhist,生成指定图片对应的灰度直方图:
具体实验代码如下:
i= imread ('110408414.JPG'); %读入像 img=rgb2gray(i);%将图片转成灰度图片
subplot(1,2,1),imshow(img);title(' 图一 原图像对应的灰度图像') subplot(1,2,2),imhist(img);title(' 图二 原图像的灰度直方图')
2、直方图均衡化
调用函数 histeq 即可完成直方图均衡化; 具体代码:
j=histeq(img);
图一 原图像对应的灰度图

100
200
0 图二 原图像的灰度直方图
subplot(2,2,1),imshow(img);title(' 图一 原图像对应的灰度图像') subplot(2,2,2),imhist(img);title(' 图二 均衡化以后的图像') subplot(2,2,3),imshow(j);title(' 图三 原图像对应的直方图') subplot(2,2,4),imhist(j);title(' 图四 均衡化以后的直方图')
四、实验分析

图一 原图像对应的灰度图

100200
图二 均衡化以后的图像
图三 原图像对应的直方图
100200
0 图四 均衡化以后的直方图
实验二、边缘检测
一、实验目的
图像最重要的特征之一就是边缘,它图像分割的主要依据。

本次试验学习和了解边缘的基本特征、经典边缘检测算子(包括Prewitt算子,Roberts算子, LoG算子, Canny算子)
二、实验原理
1、Prewitt算子是一种一阶微分算子的边缘检测,利用像素点
上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。

其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

2、Roberts算子是一种最简单的算子,是一种利用局部差分算
子寻找边缘的算子,他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。

检测垂直边缘的效果好于斜向边缘,定位精度高。

3、LoG算子一种利用图像强度二阶导数的零交叉点来求边缘
点的算法
4、Canny 算法使用4 个mask 检测水平、垂直以及对角线方
向的边缘。

原始图像与每个mask 所作的卷积都存储起来。

对于每个点都标识在这个点上的最大值以及生成的边缘的方向。

这样就从可以原始图像生成了图像中每个点亮度梯度图以及亮度梯度的方向。

较高的亮度梯度比较有可能是边缘,但是没有一个确切的值来
限定多大的亮度梯度是边缘多大又不是,所以Canny 使用了滞后阈值。

三、实验步骤及实验结果
1、试验程序:
I=imread('110408414.JPG');
f=rgb2gray(I); %将彩色图像转为灰度图像
f=im2double(f); %转换为双精度,以便后面的计算
figure,imshow(I),title('O rigimal Image');
PF=edge(f,'prewitt'); %边缘检测,Prewitt算子
figure,imshow(PF),title('PF');
RF=edge(f,'roberts');%边缘检测,Roberts算子
figure,imshow(RF),title('R F');
LF=edge(f,'log');%边缘检测,算子
figure,imshow(LF),title('L F');
CF=edge(f,'canny');%边缘检测,Canny算子
figure,imshow(CF),title('C F');
2、试验结果:
Prewitt算子Roberts算子
四、 实验分析

LoG 算

Canny 算子
实验三、K-means聚类
一、实验目的
了解和学习K-means算法及其应用--K-means聚类
二、实验原理
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。

K-means 算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。

算法采用误差平方和准则函数作为聚类准则函数。

三、实验步骤及实验结果
1、实验程序:
RGB= imread ('1.JPG'); %读入像
img=rgb2gray(RGB);
[m,n]=size(img);
subplot(2,2,1),imshow(img);title(' 图一原图像')
subplot(2,2,2),imhist(img);title(' 图二原图像的灰度直方图')
hold off;
img=double(img);
for i=1:200
c1(1)=25;
c2(1)=125;
c3(1)=200; %选择三个初始聚类中心
r=abs(img-c1(i));
g=abs(img-c2(i));
b=abs(img-c3(i)); %计算各像素灰度与聚类中心的距离
r_g=r-g;
g_b=g-b;
r_b=r-b;
n_r=find(r_g<=0&r_b<=0);%寻找最小的聚类中心
n_g=find(r_g>0&g_b<=0);%寻找中间的一个聚类中心
n_b=find(g_b>0&r_b>0);%寻找最大的聚类中心
i=i+1;
c1(i)=sum(img(n_r))/length(n_r);%将所有低灰度求和取平均,作为下一个低灰度中心c2(i)=sum(img(n_g))/length(n_g);%将所有低灰度求和取平均,作为下一个中间灰度中心c3(i)=sum(img(n_b))/length(n_b);%将所有低灰度求和取平均,作为下一个高灰度中心d1(i)=abs(c1(i)-c1(i-1));
d2(i)=abs(c2(i)-c2(i-1));
d3(i)=abs(c3(i)-c3(i-1));
if d1(i)<=0.001&&d2(i)<=0.001&&d3(i)<=0.001
R=c1(i);
G=c2(i);
B=c3(i);
k=i;
break;
end
end
R
G
B
img=uint8(img);
img(find(img<R))=0;
img(find(img>R&img<G))=128;
img(find(img>G))=255;
%toc
subplot(2,2,3),imshow(img);title(' 图三聚类后的图像')
subplot(2,2,4),imhist(img);title(' 图四聚类后的图像直方图')
2、实验结果
图一 原图

100
200
050010001500
2000 图二 原图像的灰度直方

图三 聚类后的图

100
200
图四 聚类后的图像直方图
图一 原图像
100200
2000
40006000
8000 图二 原图像的灰度直方图
图三 聚类后的图像
图四 聚类后的图像直方图
四、实验分析
实验四、综合实验—虹膜检测
一、实验目的
了解虹膜识别的基本思想与方法
二、实验原理
虹膜是一种在眼睛中瞳孔内的织物状的各色环状物,每一个虹膜都包含一个独一无二的基于像冠、水晶体、细丝、斑点、结构、凹点、射线、皱纹和条纹等特征的结构。

虹膜不同于视网膜,视网膜位于眼底,难以取像,虹膜可以直接看到,可以用摄像设备获取精细的图像虹膜的生物特征识别技术基于以下依据:虹膜的纤维组织细节复杂而丰富,并且虹膜组织细节的形成与胚胎发生阶段的环境有关,具有极大的随机性。

虹膜组织具有因人而异的固有特征,即使是同卵双胞胎,也不存在特征相同的实际可能性。

当虹膜发育完全后,他在人的一生中的变化及其微小。

在虹膜的外部,有一层透明的角膜将它与外界隔开。

因此成熟的虹膜不易受到外界的伤害而发生变化。

虹膜所具有的这些特点和优点,使虹膜图像获取时,人眼不与CCD,CMOS等光线传感器直接接触,采用的是一种非侵犯的采集技术。

基于虹膜特征识别的系统过程
三、实验步骤及实验结果
1、实验主程序:
b=imread('iris.bmp'); %读取相片
x=rgb2gray(b); %转为灰度图像
imshow(x);
a=pupil_detect(x,2); %调用虹膜检测子函数
figure(1);imshow(x,[]);hold on;
drawellipse(a,'y.'); %圈出虹膜的边缘
% unwrap the iris image
pr=(a(3)+a(4))/2;pc=[a(2) a(1)];
R=pr*3;
y=iris_unwrapping(x, pr, pc, R);
figure(2);subplot(1,2,1);imshow(x,[]);
subplot(1,2,2);imshow(y,[]);
2、实验结果
图一、示例样张图二、验证1
图三、验证2 图四、验证3
四、实验分析

实验五图像处理的基本算法
一、实验目的
1.学习位图文件的基本结构;
2.学习图像可视化编程。

3.理解图像傅立叶变换的原理,掌握图像处理的基本操作,及其在频域的处理过程和技巧。

在此基础上,自行完成基础部分的课后作业。

二、实验环境
计算机及部分应用程序框架和代码。

三、实验要求
1.在demo程序下,实现laplace算子、Roberts算子、Sobel算子、Kirch 算子等边界检测算子中的任何两个;
2.在已有快速傅立叶变换代码基础上,通过观察,了解图像傅立叶变换的旋转、平移等特性;
3.对给定图像实现频域的平滑去噪。

四、实验步骤
1. 在已有函数中加入边缘检测算子,观察图像处理前后的变化;
2.自己尝试加入新的菜单并映射函数,实现新的边缘检测算子;
3. 在已有快速傅立叶变换函数基础上,修改变换后的频谱数据,实现图像的频域平滑去噪;
4.对频谱数据进行处理,尝试实现理想低通、正弦波载入等操作。

五、思考题
1.观察laplace、Roberts、Sobel、Kirch等算子对边界检测的特点;
2.如何实现彩色图像的边缘检测?
3.傅里叶变换有哪些重要的性质,讨论图像的边缘与频率的关系?
4.当图像不满足N*N时,如何对图像补0,实现其快速傅立叶变换?六、提交作业的形式
程序演示,现场接受助教或教师的提问
实验六细胞图像的分割与测量
一、实验目的
1.学习图像中心“图像处理典型算法演示系统”应用程序框架,掌握基于类的图像编程技术;
2.分析细胞图像特点,在典型算法应用程序框架上完成细胞图像的分割和测量,并分析测量结果。

3.将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。

二、实验环境
计算机、“图像处理典型算法演示系统”应用程序框架及部分集成代码。

三、实验要求
1.对比中值、均值和形态学开闭运算对细胞图像的滤波效果,选择适用于细胞图像的滤波方法;
2.运用大津阈值对细胞图像分割,观察分割后噪声情况,观察目标边缘处的分割效果;
3.在给定应用程序框架下通过区域生长法实现对连通区域的编号;
4.能够对掩模部分限定的图像数据进行处理;
四、实验步骤
五、思考题
1.若将预处理去噪的步骤省掉,则如何在目标编号的过程中加入滤波处理;
2.将去噪过程与阈值分割前后调换,选择哪种滤波方法可以滤除二值图像上的噪声;
3.如果正常细胞的核仁与细胞核面积比范围在0.1-0.3之间,则如何滤掉不正常的细胞;
4.总结大津阈值在细胞图像分割中存在的问题,想一想你所学的算法中哪种算法更适合于细胞图像的分割。

六、提交作业的形式
程序演示,现场接受助教或教师的提问。

实验课表。

相关文档
最新文档