预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

测试数据来源:《MATLAB高效编程技巧与应用:25个案例分析》吴鹏(著)|北京航空航天大学出版社《MATLAB统计分析与应用:40个案例分析》谢中华(著)|北京航空航天大学出版社该帖子中测试程序需要使用如下工具箱libsvm-mat-2.89-3[FarutoUltimate3.0]HYPERLINK"http://www.matlabsky.com/thread-9327-1-1.html"\t"_blank"http://www.matlabsky.com/thread-9327-1-1.html更多关于SVM的事情请看关于SVM的那点破事[长期更新整理byfaruto]HYPERLINK"http://www.matlabsky.com/thread-10966-1-1.html"\t"_blank"http://www.matlabsky.com/thread-10966-1-1.html 测试图片:现用libsvm来实现图像分割,测试图片用的亦是25cases和40cases中的那个littleduck测试图片。主体程序思想为25cases中的代码过程,改进之处为可以让用户利用ginput来提取背景的样本点和前景(待分割出来的目标)的样本点作为训练样本,而不需实现指定背景和前景的样本点,也不用额外的小软件来查看某点的RGB值,ginput即可。O(∩_∩)O~测试代码: 本帖隐藏的内容 %%ImSegmentLibsvm %alittertestofimagesegmentbasedonlibsvm %byfaruto %Email:patrick.lee@foxmail.com %QQ:516667408 %http://blog.sina.com.cn/faruto %lastmodified2010.11.05 %www.matlabsky.com %www.mfun.la %% tic; closeall; clear; clc; formatcompact; %% pic=imread('littleduck.jpg'); figure; imshow(pic); %%确定训练集 TrainData_background=zeros(20,3,'double'); TrainData_foreground=zeros(20,3,'double'); %背景采样 msgbox('Pleaseget20backgroundsamples','BackgroundSamples','help'); pause; forrun=1:20 [x,y]=ginput(1); holdon; plot(x,y,'r*'); x=uint8(x); y=uint8(y); TrainData_background(run,1)=pic(x,y,1); TrainData_background(run,2)=pic(x,y,2); TrainData_background(run,3)=pic(x,y,3); end %待分割出来的前景采样 msgbox('Pleaseget20foregroundsampleswhichistheparttobesegmented','ForegroundSamples','help'); pause; forrun=1:20 [x,y]=ginput(1); holdon; plot(x,y,'ro'); x=uint8(x); y=uint8(y); TrainData_foreground(run,1)=pic(x,y,1); TrainData_foreground(run,2)=pic(x,y,2); TrainData_foreground(run,3)=pic(x,y,3); end %%背景训练样本10*3 %TrainData_background=... %[527487; %76117150; %194862; %356482; %465836; %505723; %110127135; %156173189; %246242232; %166174151]; %%前景训练样本8*3 %TrainData_foreground=... %[211192107; %202193164; %32250; %213201151; %1157516; %101700; %16913122; %15013387]; %letbackgroundbe0&foreground1 TrainLabel=[zeros(length(TrainData_background),1);... ones(length(TrainData_foreground),1)];