数字图像处理课程设计Word文档格式.docx
- 文档编号:17309005
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:335.70KB
数字图像处理课程设计Word文档格式.docx
《数字图像处理课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
支持向量机是一种有监督的分类方法,因此实现基于支持向量机图像分割就是要完成训练样本的选择、特征提取、核函数及其参数确定。
首先分别选择代表两类的像素作为训练样本,提取两类的特征,作为支持向量机的输入:
然后选取合适的核函数及其参数,训练分类器。
获得支持向量模型:
最后提取测试样本特征,产生待分类样本集,用支持向量机进行分类,将像素点归入所属类,从而完成图像分割。
2基于支持向量机在图像分割算法设计
传统图像的分割方法,大多是基于图像的部分特征来进行分割的。
因此,目前尚未有对所有的图像都有合适的方法。
而分类的算法是一种重要的图像分割方法。
本章主要介绍如何使用支持向量机,来对图像进行分割。
基于支持向量机的图像分割,主要有三个问题:
样本的选择、特征的提取、核函数及其参数确定。
本文采用SVM-1.5工具箱,针对这三个问题进行讨论。
2.1算法设计及流程
此处进入SVM的训练阶段,一般来说,SVM的训练分为5个阶段,分别为:
输入训练样本。
训练样本选择、提取训练样本、确定核函数及其参数和训练样本。
根据结果是否理想,来决定是否调整参数,重新进行训练。
整个过程如图3-2-1:
图3-2-1基于支持向量机分割流程图
首先对训练样本进行选择,选定对训练样本采用3×
3区域的灰度值、均值和方差作为基本特征,然后确定利用高斯核函数为本次设计的函数,最后训练样本,对图像进行分割,最终得到分割图像。
2.2样本选择
根据对支持向量机图像分割研究,选取尺度为256×
256的大米粒图像作为分割样本,图4-2为分割样本图。
之所以选择此图,在于大多基于支持向量机的图像分割都在此样本图像上进行,便于进行分割方法的比较[13]。
支持向量机是一种有监督的分类方法,需要预先确定训练样本分类,训练样本的正确与否决定了支持向量机分类的效果。
本文通过两种方式训练样本,手动选择训练样本和自动选择训练样本。
(1)手动选择训练样本:
对于未知样本分类的情况下,样本选择最直接的方法就是手动选择训练样本,通过人为的判断目标和背景区域,随即选择目标和背景的样本点。
本文尝试采用随机选点和随机选择区域两种方式。
随机选点方式点与点之间没有固定的位置关系,利用手动选点方式来选择训练样本,需浪费大量的时间和精力,因此尝试采用手动选择区域和方式来选择训练样本,可以减少重复选点的麻烦,可以减少重复选点的麻烦。
随即选择样本区域,点与点之间在空间上是连通的。
(2)自动选择训练样本:
为了克服手动选择样本的盲目性,本文引入模糊C均值聚类的方法来选择训练样本。
常用的均值聚类方法有硬C均值聚类的算法和模糊C均值聚类的方式来选择训练样本[14],对于图像分类来说,两者的不同在于像素对聚类子集的隶属关系即隶属度函数不同。
在硬C均值聚类中,样本像素和聚类子集的隶属度函数为:
(3-2-1)
即样本是绝对的非此即彼的属于某一类。
对于模糊C均值来说,样本对子集的隶属度函数不是定值,而是[0,1]之间的一个数。
它表明样本对某一类的相似程度,隶属度越大,表明跟某一类越相似。
相比硬C均值聚类来说,模糊C均值聚类更符合图像分割的特点。
模糊C均值聚类算法是通过最小化以下的目标函数:
(3-2-2)
来实现同性质像素聚类的。
目标函数越小,表明同类间像素的相似性越大。
C为聚类数目,n为样本数,m∈[1,+∞]为加权指数,是为了加强图像之间的对比度。
μij表示第j像素点对第i类的隶属度,d(xj,vi)表示第j个像素点距离第i个聚类的距离。
根据拉格朗日乘数法优化目标函数得:
(3)
模糊C均值聚类后,每个像素产生了对背景和目标的隶属度,隶属度的大小代表了像素与类的相似程度,因此设计了一种选择训练样本的方法。
首先将各个像素对目标类的隶属度按照从大到小的顺序排列,选择前隶属度对应的像素作为训练样本的+1类;
然后将各个像素对背景类按照从小到大排列。
这样做的目的是保证了样本的正确性,可以减少模糊像素对支持向量机的影响。
通过此处选择的聚类样本为:
图2聚类样本
由以上前提条件便对其进行训练样本,对其用仿真实现运行结果如下:
图3训练样本
2.3特征提取
样本的特征是支持向量机分类的依据,分类效果的好坏在很大程度上取决于从图像中提取的特征。
可以说,所提取的特征越完备,则分割效果越有保障。
而特征的提取,并不以单一类别的特征为主,在选取特征的时候,需要考虑所移动窗口中所有像素的各种性质,才能获取较完备的图像特征,为图像分割做好准备。
此处主要提取灰度特征。
其中灰度特征采用3×
3邻域的灰度值、均值和方差作为特征。
由于所选择的大米粒图像,其背景和目标在灰度上差别较大,且灰度分布较为均匀,仅以待分割图像的一个小邻域里中低层次的灰度,作为输入矢量X.具体做法为:
在待分割的样本图像上移动一个s×
s(其中s为奇数)的窗口,每个当前像素,及窗口中心的像素为(i,j)令I(i,j)为该像素的灰度值,且0≤i<256,0≤j<256,将其窗口中所有的灰度值按照从左到右、从上到下的顺序,组成一个包含s×
s个元素的矢量作为特征矢量。
根据向量机的特点以及反复试验的结果,选取s=3的领域窗口作为其分割窗口。
即形成一个由当前像素灰度值与其8个领域像素的灰度值所组成的包含了9个元素的特征矢量。
I(i-1,j-1)
I(i-1,j)
I(i-1,j+1)
2I(i,j-1)
I(i,j)
I(i,j+1)
I(i+1,j-1)
I(i+1,j)
I(i+1,j+1)
图像的均值和方差的大小表示灰度区域是否均匀,因此本次设计方案采用像素灰度值及其领域的灰度均值和方差作为特征向量。
灰度均值为:
(4)
方差为:
(5)
将3×
3窗口内对应像素的灰度值构成的九维向量作为特征向量。
P(i,j)为窗口内的灰度统计值。
为了避免各个分量在量值上的差异对分类的影响和特征向量可能出现的溢出,故将特征进行归一化处理,将特征归一化到[0,1]。
2.4核函数选择
本文中鉴于高斯核函数和线性核函数的参数比较少,因此选用高斯核函数其形式为:
(6)
此处的
=100即为其高斯核函数的参数。
高斯核函数(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯核函数的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。
2.5分割结果及其分析
用训练好的支持向量机对原图进行分割,分割结果如下:
图4原始图像
图5用支持向量机对图像的分割结果
本文所采取的细菌图像像素大小为256×
256,在图像上移动一个3×
3大小的窗口,共获取51302个样本数据。
采取随机抽取的方式,从中获取多个样本作为训练样本,所抽取的样本数量较大。
可以做到较为准确的分割,并且此方法是在大量的样本抽取下进行的,可以大大提高分割的精度和准确度,较其他传统分割方法相比较而言,其对边缘分割精度和对于背景和灰度值相比较而言都有了非常明显的进步,并且利用自动选择法对其进行分割也可较少工作量与降低计算难度,节省了我们分割过程中较为宝贵的时间。
3MATLAB程序设计
3.1Matlab图像编程概要
读入图像:
RGB=imread(‘1.jpg’);
该函数的返回值RGB是一个三维的数组,分别代表像素点所在的行号、列号和像素点的R、G、B三个通道的值。
例:
RGB(1,1,1);
%图像第一行第一列的R值;
RGB(1,3,2);
%图像第一行第三列的G值;
RGB(2,4,3);
%图像第二行第四列的B值;
RR=RGB(:
:
1);
%彩色图像的红色像素通道
GG=RGB(:
2);
%彩色图像的绿色像素通道
BB=RGB(:
3);
%彩色图像的蓝色像素通道
鼠标输入:
[xx,yy,button]=ginput;
接受鼠标输入直到敲回车键结束。
其中:
xx、yy:
记录鼠标按下时横坐标和纵坐标值;
button:
记录鼠标按下时的状态。
1表示左键,2表示中间键,3表示右键。
绘制图形:
plot(x,y,‘b*’);
plot(x,y,‘b*’):
在坐标(x,y)处绘制一个蓝色的”*”
3.2SVM的Matlab工具箱使用指南
1训练SVM:
[nsv,alpha,b0]=svc(X,Y,ker,C)
X:
训练样本的输入特征,X的行数为训练样本的个数,X的列数代表训练样本的特征维数;
Y:
训练样本对应的标号,为一个列矩阵。
矩阵的行数为样本的个数。
Y的值只能是1或者-1;
Ker:
核函数类型,常用的包括:
’linear’,’poly’,’rbf’
C:
经验风险与结构风险的权衡参数,详见SVM的数学优化模型。
nsv:
支持向量的个数;
alpha:
对偶问题的解;
b0:
svm表达式中的偏移量。
2.测试SVM:
preY=svcoutput(trnX,trnY,tstX,ker,alpha,bias)
trnX-训练样本的输入特征;
trnY-训练样本的标号;
tstX-测试样本的输入特征;
ker-核函数
alpha-SVM的求解结果
bias-SVM的偏移量
3.核函数参数的设置:
svkernel.m
switchlower(ker)
case'
linear'
k=u*v'
;
poly'
p1=2;
k=(u*v'
+1)^p1;
rbf‘
p1=1;
k=exp(-(u-v)*(u-v)'
/(2*p1^2));
sigmoid‘
p2=1;
k=tanh(p1*u*v'
/length(u)+p2);
otherwise
end
4.在二维坐标中绘制SVM的训练和测试结果:
svcplot(X,Y,ker,alpha,bias)
X-训练样本的输入特征
Y-训练样本的标号
参考文献
[1]里朝锋,曾生根,许磊.遥感图像智能处理[M].北京:
电子工业出版社.2007
[2]罗述谦,周果宏.医学图像处理及分析[M],北京:
科技出版社,2003
[3]SuRuan,StephaneLebonvallet,ect.TumorSegmentationFormaMultisectralByUsingSupportVectorMachineClassification[J].BiomedicalImaging:
FromNanotoMacro:
2007
[4]邢伟,基于支持向量机的图像分割[J],微计算机信息,2008:
24(I)
[5]CR.Brice,C.L.Fenema,SceneAnalysisUsingRegions[J].ArtificialIntelligence1970,205—226
[6]郭磊,武优西,刘雪娜等.基于主成分分析和支持向量机的MRJ图像多目标分割[J],中国生物医学工程学报.2007:
26(4):
498—502
[7]赵衍运,蔡安妮.使用支持向量机分割指纹图像的方法[J],北京邮电大学学报,2006:
29(02)
[8]Cheng,HD.Jiang,XH,Sun,J.Colorimagesegmentation:
[J].NewYork;
SpringesVerlag,1995
[9]徐海洋.基于支持向量机方法的图像分割与目标分类[D].武汉:
华中科技大学,2005
[10]杨丽,杨新.基于区域划分的曲线演变多目标分割[J].计算机学报,2004,27(3):
420—425
[11]王萍,苏秀琴,刘雅轩.基于区域合并的动态阈值分割算法.光子学报,20043(3):
378-381
[12]赵凤,范九伦.二维熵取小法和模糊熵相结合的图像分割的坑识别方法.计算机工程与应用,006,1:
25—228
[13]PunTnewMethdforGray-LevelPictureThresholdingUsingtheentropyoftheHistogram.SignalProcessing,1980,2(3):
233-237
[14]贺玲,玲达,益朝.数据挖掘中的聚类算法综述[J].计算机应用研究,007:
0-13
附录
附录A程序源代码
利用Matlab在图像上采集训练样本的示例程序
Figure,subplot(1,2,1);
imshow('
S3a.bmp'
);
Title(‘鼠标左键点印章,鼠标右键点纸面,回车结束’)
RGB=imread('
[count,asd]=size(xx);
subplot(1,2,2);
holdon;
fori=1:
count
trnx(i,:
)=[RR(yy(i),xx(i)),GG(yy(i),xx(i))];
switchbutton(i)
case1
trny(i,:
)=-1;
plot(trnx(i,1),trnx(i,2),‘r*'
case2
plot(trnx(i,1),trnx(i,2),‘b+'
end
xlabel('
R'
)
ylabel('
G'
)
holdoff
利用SVM的Matlab工具箱进行印签提取的示例程序
ker=‘linear’;
%选择线性核函数
[nsvalphabias]=svc(trnx,trny,ker,10);
%训练SVM
svcplot(trnx,trny,ker,alpha,bias);
%显示分类器效果
tstnum=1;
size(RGB,1)
forj=1:
size(RGB,2)
testx=double(RGB(i,j,1:
2));
preY=svcoutput(trnx,trny,testx,ker,alpha,bias);
tstnum=tstnum+1;
if(preY==1)
resIm(i,j)=255;
else
resIm(i,j)=0;
imshow(resIm);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)