摘 要
本文以篮球图像为例,重点研究了篮球图像与其他种类球的图像背景的分割,从图像中检索出篮球。由于篮球的颜色,大小,形状与其他球类相比,均有差异,且篮球上的黑色花纹对边缘检测、色彩检测均造成干扰。并非一种或者几种方法便可以解决从图像中检索出篮球的问题。
本次课程设计主要围绕目标与背景的分割与提取等两个方面对图像分割与提取算法进行展开,根据原理分析入手,通过MATLAB程序实现,深层次理解目标与背景分割算法的本质。课程设计主要研究了通过对图片进行开闭运算、以及通过两次不同方法生成的二值图像进行空洞填充后的图进行图像融合,得到较为接近球形的白色区域,进而对该区域进行边界分割,而后通过各个图像圆度的对比,锁定目标检索出篮球,通过实验验证了算法的性能。
关键字:目标与背景的分割与提取,MATLAB,开闭运算,边界分割,篮球
1引言
数字图像处理技术,用计算机对图像进行分析,以达到所需结果的技术,最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息,作为一门学科大约形成于20世纪60年代初期。经过数十年的发展,随着计算机科学技术的不断发展,数字图像处理已是一个跨学科的领域,图像处理和分析逐渐形成了自己的科学体系,新的处理方法层出不穷,图像分割是数字图像处理中的关键技术之一。
图像分割目的是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,是图像处理到图像分析的关键步骤。目前图像分割方法一般有基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。其中阈值分割是一种最常见的分割方法,计算简单、效率高、速度快,通过设置不同的特征阈值将像素点分为若干类,其关键点在于阈值的选择。
尽管对图像分割算法的研究已有几十年的历史,借助各种理论至今已提出了上千种各种类型的分割算法。人们在图像分割方面做了许多研究工作。但由于尚无通用分割理论,因此现已提出的分割算法大都是针对具体问题的,并没有一种适合于所有图像的通用的分割算法。但是随着计算机技术的发展以及生产力发展的需要,图像分割方法正朝着更快速、更精确的方向发展,通过各种新理论和新技术结合将不断取得突破和进展。
2设计原理
图像的分割与提取可以分为两大类:一个是图像的分割,一个是图像的提取。下面具体介绍这两类算法。
2.1基于图像的分割
图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。
2.1.1 图像的二值化
二值化是图像处理中的一个重要的问题,广泛应用于图像分割,图像增强,图像识别等领域。根据其运算的范围不同,图像的二值化方法可分为全局阈值方法和局部阈值方法。它利用了图像中要提取的目标物与其背景在灰度特性上的差异,把原图像变为仅用两个灰度值表示的图像目标和背景的二值图像。其处理思想是,假设一副灰度图像中的灰度级范围是(0,255),则图像中每一点像素的灰度值为f(x,y),f(x,y)∈{0,1,…255),设阈值为T(0≤T≤255)则:
其中:g(x,y)表示二值化后图像中各个像素点的值,若g(x,y)=1表示改点为目标;若g(x,y)=0,表示改点为背景。
2.1.2 直方图分割
灰度图像中画面比较简单且对象物的灰度分布比较有规律时,背景和对象物在图像的灰度直方图上各形成一个波峰,由于每两个波峰间形成一个低谷,因而选择双峰间低谷处所对应的灰度值为阈值,可将两个区域分离。
该方法称为直方图阈值双峰。
具体实现的方法是先做出图像f(i,j)的灰度直方图,若只出现背景和目标物两区域部分所对应的直方图呈双峰且有明显的谷底,则可以将谷底点所对对应的灰度作为阈值t,然后根据该阈值进行分割即可将目标从图像中分割出来。这种方法适用于目标和背景的灰度差较大,直方图有明显低谷的情况。
2.1.3 bwboundaries 函数
搜索二值图像 BW 的外边界和内边界。
[B,L,N,A] = bwboundaries(BW,CONN,OPTIONS) :函数视 BW 中为 0 的元素为背景像素
点,为 1 的元素为待提取边界目标。 B 中的每个元素均为 Q×2 矩阵,矩阵中每一行包含边界
像素点的行坐标和列坐标, Q 为边界所含像素点的个数。 L ,标识矩阵,标识二值图像中被边
界所划分的区域; N ,区域的数目 N ; A ,被划分的区域的邻接关系。 CONN 取 4 ,搜索中采
用 4 连通方法,默认取 8 ,即 8 连通方法。 OPTIONS 指定算法的搜索方式,默认为 ‘holes’ ,
搜索目标的内外边界, ‘noholes’ 只搜索目标的外边界。
2.1.4 imbinarize 函数BW = imbinarize(I) :采用基于 OTSU 方法的全局阈值实现灰度图像 I 的二值化。
BW = imbinarize(I, METHOD) :采用 METHOD 指定的方法获取阈值实现灰度图像 I 的二值化。METHOD 可选 ‘global’ 和 ‘adaptive’ ,前者指定 OTSU 方法,后者采用局部自适应阈值
方法。
2.1.5 graythresh 函数
level = graythresh(I) ,使用 Otsu 方法获取阈值, level 被归一化到 [0,1] 区间。
2.1.6 开运算与闭运算
开运算
(1)定义
先腐蚀后膨胀的过程称为开运算。
(2)作用
消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
闭运算
(1)定义
先膨胀后腐蚀的过程称为闭运算。
(2)作用
填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
2.1.7区域填充
定义:设所有非边界(背景)点标记为0,则将1赋给p点开始,
实现目的:从边界内的一个点开始,用1填充整个区域。
X0=p,如果Xk=Xk-1,则算法在迭代的第k步结束。Xk和A的并集包含被填充的集合和它的边界
条件膨胀:如果对上述公式的左部不加限制,则上述公式的膨胀将填充整个区域。利用Ac的交集将结果限制在感兴趣区域内,实现条件膨胀。
填充孔洞时,A就是那个与图像四边框连通的背景区域。
2.2基于图像的提取
边缘提取是图像边缘检测和计算机视觉等领域最基本的技术,如何准确、快速的提取图像中的边缘信息一直是这些领域的研究热点,随着此项技术研究的深入和整个领域的不断发展,边缘提取技术已经成为图像分割、目标识别、图像压缩等技术的基础。其理论意义深远,应用背景广泛,有相当的使用价值和理论难度。边缘提取算法的提出通常是面向具体问题的,普遍实用性较差。
2.2.1 GUI设计
图形用于界面(GUI)是提供人机交互的工具和方法。MATLAB的GuI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。
图2.1初始界面
2.1打开图像
3软件编程的实现
3.1从图像中检索出篮球编程实现
Image1=im2double(imread('pic.jpg'));
gray=rgb2gray(Image1);
T=graythresh(gray);
BW=im2bw(gray,T);
%figure,imshow(BW),title('二值化图像');
SE=strel('disk',3);
Morph=imopen(BW,SE);%形态学开运算
Morph=imclose(Morph,SE);%形态学闭运算
reMorph=1-Morph
figure,imshow(reMorph),title('形态学滤波1');
HSV = rgb2hsv(Image1);