资源简介
利用svm完成图像的目标分割,里面包含测试图片,效果还不错,值得用户去学习
代码片段和文件信息
%%
tic;
close all;
% clear;
clc;
format compact;
%%
%pic = imread(‘f3.jpg‘);
[filenamepathnameflag]=uigetfile(‘*.jpg‘‘请导入图像文件‘);
pic=imread([pathnamefilename]);
figure;
imshow(pic);
%% 确定训练集
TrainData_background = zeros(203‘double‘);
TrainData_foreground = zeros(203‘double‘);
% 背景采样
msgbox(‘Please get 20 background samples‘‘Background Samples‘‘help‘);
pause;
for run = 1:20
[xy] = ginput(1);
hold on;
plot(xy‘r*‘);
x = uint8(x);
y = uint8(y);
TrainData_background(run1) = pic(xy1);
TrainData_background(run2) = pic(xy2);
TrainData_background(run3) = pic(xy3);
end
% 待分割出来的前景采样
msgbox(‘Please get 20 foreground samples which is the part to be segmented‘‘Foreground Samples‘‘help‘);
pause;
for run = 1:20
[xy] = ginput(1);
hold on;
plot(xy‘ro‘);
x = uint8(x);
y = uint8(y);
TrainData_foreground(run1) = pic(xy1);
TrainData_foreground(run2) = pic(xy2);
TrainData_foreground(run3) = pic(xy3);
end
% let background be 0 & foreground 1
TrainLabel = [zeros(length(TrainData_background)1); ...
ones(length(TrainData_foreground)1)];
%% 建立支持向量机 基于libsvm
TrainData = [TrainData_background;TrainData_foreground];
model = svmtrain(TrainLabel TrainData ‘-t 1 -d 1‘);
%% 进行预测 i.e.进行图像分割 基于libsvm
preTrainLabel = svmpredict(TrainLabel TrainData model);
[mnk] = size(pic);
TestData = double(reshape(picm*nk));
TestLabal = svmpredict(zeros(length(TestData)1) TestData model);
%%
ind = reshape([TestLabalTestLabalTestLabal]mnk);
ind = logical(ind);
pic_seg = pic;
pic_seg(~ind) = 0;
figure;
imshow(pic_seg);
figure;
subplot(121);
imshow(pic);
subplot(122);
imshow(pic_seg);
%%
toc;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2539047 2017-02-04 15:59 RedMaple_3.jpg
文件 6386 2015-11-25 18:26 112502\f1.jpg
文件 11618 2015-11-25 18:26 112502\f2.jpg
文件 9972 2015-11-25 18:24 112502\f3.jpg
文件 12822 2015-11-25 18:27 112502\f4.jpg
文件 11100 2015-11-25 18:25 112502\f5.jpg
文件 17122 2015-11-25 18:27 112502\f6.jpg
文件 1747 2017-02-04 16:29 112502\seg2.asv
文件 1747 2015-11-26 00:38 112502\seg2.m
文件 483264 2015-11-25 21:21 112502\SVM演示效果.docx
文件 385 2009-04-21 16:05 kmeans后的图像分割\classtrain.mat
文件 384 2009-04-21 16:21 kmeans后的图像分割\classtrain_car_4.mat
文件 339 2009-04-21 16:23 kmeans后的图像分割\classtrain_figure_1.mat
文件 338 2009-04-21 16:25 kmeans后的图像分割\classtrain_ob
文件 5272 2008-09-19 16:22 kmeans后的图像分割\determine_alpha1amended.m
文件 3493 2008-08-26 16:40 kmeans后的图像分割\determine_alpha2.m
文件 7330 2009-04-21 11:58 kmeans后的图像分割\free sample.fig
文件 808 2009-04-21 14:33 kmeans后的图像分割\free_sample_090421.asv
文件 955 2009-04-21 15:48 kmeans后的图像分割\free_sample_090421.m
文件 1073 2005-07-26 16:24 kmeans后的图像分割\Kernel.m
文件 1500 2009-02-17 17:32 kmeans后的图像分割\kmeans.m
文件 347 2017-02-04 16:12 kmeans后的图像分割\readme.txt
文件 3245 2009-04-21 10:48 kmeans后的图像分割\seglab_SMO_algorithm_090421.m
文件 1917 2009-04-21 13:23 kmeans后的图像分割\seg_lab_090421.asv
文件 1990 2009-04-22 10:03 kmeans后的图像分割\seg_lab_090421.m
文件 2333199 2017-02-04 15:59 RedMaple_1.jpg
文件 1691757 2017-02-04 15:59 RedMaple_2.JPG
目录 0 2017-02-04 16:37 112502
目录 0 2017-02-04 16:37 kmeans后的图像分割
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:车牌识别毕业设计,不错的参考
- 下一篇:算法与数据结构 经典与优秀解答源码
评论
共有 条评论