前言
项目有一个模块需要将不同类别的图片进行分类,共有三个类别,使用SVM实现分类。
实现步骤:
1.创建训练样本库;
2.训练、测试SVM模型;
3.SVM的数据要求;
实现系统:
windows_x64、opencv2.4.10、 VS2013
实现过程:
1.创建训练样本库;
1)将图片以包含类别的名称进行命名,比如0(1).jpg等等;
2)将所有已命名正确的训练样本保存在同一个文件夹中;
3)在训练样本库的文件夹目录下创建python源文件;
python代码:
import sys import os import string import re if __name__=='__main__': print('Begin generate path and label.') path_file=open('train_path.txt','w') path='E:/carriage_recognition/redplate_detection/svm_train_test/data/train/model' pic_type='.png' pat=re.compile(r'^(\d+)') files=os.listdir(path) files_tmp=[] for i in files: if pic_type in i and not os.path.isdir(path+'/'+i): files_tmp.append(i) files=files_tmp for file in range(len(files)): ret=pat.match(files[file]) path_file.write(path+'/'+files[file]+'\n') if file<len(files)-1: path_file.write(ret.group(1)+'\n') else: path_file.write(ret.group(1)) path_file.close() print('finish......')