好文档 - 专业文书写作范文服务资料分享网站

数字图像处理实验 图像分割

天下 分享 时间: 加入收藏 我要投稿 点赞

.

实 验 报 告

实验名称 课程名称

实验四 图像分割

数字图像处理A

姓名

成绩

班级

学号

日期

地点

备注:

1.实验目的

(1)了解并掌握图像分割的基本原理;

(2)编写程序使用Hough变换处理图像,进行线检测;

'.

.

(3)编写程序使用阈值处理方法进行图像分割,根据实验结果分析效果;

(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。

2.实验环境(软件条件)

Windws2000/XP

MATLAB 7.0

3.实验方法

对256级灰度的数字图像camera.bmp(如图4.1所示)和car.bmp(如图4.2所示)进行如下处理:

图4.1 实验图像camera.bmp

图4.2 实验图像car.bmp

(1)对图像camera.bmp进行Hough变换进行线检测,显示处理前、后图像: 思考如何利用Hough变换进行圆检测;

(2)对图像car.bmp分别利用不同的阈值处理方法进行图像中汽车及车牌的分割,显示处理前、后图像;思考不同的阈值处理算法对分割效果的影响?

4.实验分析

实验原理

Hough变换是最常用的直线提取方法,它的基本思想是:将直线上每一个数据点变换为参数平面中的一条直线或曲线,利用共线的数据点对应的参数曲线相交于参数空间中一点的关系,使直线的提取问题转化为计数问题。Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。 思考:

Hough变换对圆的检测: Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。

圆的方程为:(x?a)?(y?b)?r,通过Hough变换,将图像空间(x,y)对应到参数空间(a,b,r)。 第一题结果图

222'.

.

-300-200-100\\R0100200300-500\\T50

第二题

实验原理:基于灰度的分割最简单的处理思想是,高于某一灰度的像素划分到一个区域中,低于某灰度的像素划分到另一区域中,这种基于灰度阈值的分割方法称为灰度门限法。最简单的灰度分割方法—灰度门限法,他是基于灰度阈值的分割方法,也是基于区域的分割方法。主要将高于某一灰度的像素划分到一个区域中,低于某灰度的像素划分到另一区域中。 结果图 思考:

直方图阈值法:理论分析和实验结果表明,该方法分割效果好,运算速度快,具有较高的实用价值。

Otsu法:该方法选取出来的阈值非常理想,对各种情况的表现都较为良好。虽然它在很多情况下都不是最佳的分割,但分割质量通常都有一定的保障,可以说是最稳定的分割。

直方图阈值法

'.

.

原图像1500100050000分割后的图像直方图100200

Otsu法

原图像分割后的图像

5.实验结论

Matlab提供了三个与Hough变换有关的函数:Hough函数,Houghpeaks函数和Houghlines

函数。在算法实现中,考虑到噪声的影响和参数空间离散化得需要,求交点的问题成为一个累加器问题。

直方图阈值法:利用灰度直方图求双峰或多峰,选择两峰之间的谷底作为阈值。

自动阈值法:Otsu法。Otsu法是使类间方差最大而推导出的一种能自动确定阈值的方法,具有简单,处理速度快的特点。在Matlab工具箱中,Graythresh函数基于Otsu算法求取灰度阈值。Graythresh函数的语法格式为:level=fraythresh(I).

附件

第一题源程序

clear all;

RGB = imread('C:\\Documents and Settings\\Administrator\\桌面\\camera.bmp'); I=RGB;

'.

.

%I = rgb2gray(RGB);

BW = edge(I,'canny'); % 利用Canny算子提取图像边缘

[H,T,R] = hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5); subplot(121)

imshow(T,R,H,[],'notruesize'), axis on, axis normal xlabel('\\T'), ylabel('\\R')

p = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); %找到5个较明显的Hough变换峰值 hold on

plot(T(p(:,2)),R(p(:,1)),'s','color','white');

lines = houghlines(BW,T,R,p,'FillGap',10,'MinLength',10); %查找并链接线段

figure, imshow(BW), hold on %在二值图中叠加显示这些线段 for k = 1:length(lines)

xy = [lines(k).point1; lines(k).point2];

plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); end

第二题源程序

%用直方图阈值法

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\car.bmp'); subplot(2,2,1); imshow(I); title('原图像'); I1=rgb2gray(I); subplot(2,2,2); imhist(I1); title('直方图'); subplot(2,2,3); I2=im2bw(I1,165/415); imshow(I2);

title('分割后的图像');

%用Otsu算法

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\car.bmp'); subplot(2,1,1); imshow(I); title('原图像'); subplot(2,1,2); level=graythresh(I); BW=im2bw(I,level); imshow(BW);

title('分割后的图像');

'.

数字图像处理实验 图像分割

.实验报告实验名称课程名称实验四图像分割数字图像处理A姓名成绩班级学号日期
推荐度:
点击下载文档文档为doc格式
1saij5046t41z4g1sgcd5uqa87r003016pp
领取福利

微信扫码领取福利

微信扫码分享