资源描述:
《基于libsvm的图像分割》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、测试数据来源:《MATLAB高效编程技巧与应用:25个案例分析》吴鹏(著)
2、北京航空航天大学出版社《MATLAB统计分析与应用:40个案例分析》谢中华(著)
3、北京航空航天大学出版社该帖子中测试程序需要使用如下工具箱libsvm-mat-2.89-3[FarutoUltimate3.0]http://www.matlabsky.com/thread-9327-1-1.html更多关于SVM的事情请看关于SVM的那点破事[长期更新整理byfaruto] http://www.matlabsky.com/thread-10966-1-1.html测试图片: 现用libsvm
4、来实现图像分割,测试图片用的亦是25cases和40cases中的那个littleduck测试图片。主体程序思想为25cases中的代码过程,改进之处为可以让用户利用ginput来提取背景的样本点和前景(待分割出来的目标)的样本点作为训练样本,而不需实现指定背景和前景的样本点,也不用额外的小软件来查看某点的RGB值,ginput即可。O(∩_∩)O~ 测试代码:本帖隐藏的内容1.%%ImSegmentLibsvm2.%alittertestofimagesegmentbasedonlibsvm3.%byfaruto4.%Email:patrick.lee@fo
5、xmail.com 5.%QQ:516667408 6.%http://blog.sina.com.cn/faruto 7.%lastmodified2010.11.058.%www.matlabsky.com9.%www.mfun.la10.%% 11.tic;12.closeall;13.clear;14.clc;15.formatcompact;16.%%17.pic=imread('littleduck.jpg');18.figure;19.imshow(pic);20.%%确定训练集21.22.TrainData_background=zeros(20,3,'
6、double');23.TrainData_foreground=zeros(20,3,'double');24.25.%背景采样26.msgbox('Pleaseget20backgroundsamples','BackgroundSamples','help');27.pause;28.forrun=1:2029. [x,y]=ginput(1);30. holdon;31. plot(x,y,'r*');1. x=uint8(x);2. y=uint8(y);3. TrainData_background(run,1)=pic(x,y,1);4. T
7、rainData_background(run,2)=pic(x,y,2);5. TrainData_background(run,3)=pic(x,y,3);6.end 7.%待分割出来的前景采样8.msgbox('Pleaseget20foregroundsampleswhichistheparttobesegmented','ForegroundSamples','help');9.pause;10.forrun=1:2011. [x,y]=ginput(1);12. holdon;13. plot(x,y,'ro');14. x=uint8(x);15
8、. y=uint8(y);16. TrainData_foreground(run,1)=pic(x,y,1);17. TrainData_foreground(run,2)=pic(x,y,2);18. TrainData_foreground(run,3)=pic(x,y,3);19.end 20.%%背景训练样本10*321.%TrainData_background=...22.% [527487;23.% 76117150;24.% 194862;25.% 356482;26.% 465836;27.% 505723
9、;28.% 110127135;29.% 156173189;30.% 246242232;31.% 166174151];1.%%前景训练样本8*32.%TrainData_foreground=...3.% [211192107;4.% 202193164;5.% 32250;6.% 213201151;7.% 1157516;8.% 101700;9.% 16913122;10.% 15013387];11.12.%letbackgroundbe0&foregr