SVM识别验证码
来源:互联网 发布:天通金交易软件下载 编辑:程序博客网 时间:2024/05/19 23:14
先上代码,原理稍候再补
# -*- coding: utf-8 -*__author__ = 'eple'from svmutil import *from PIL import Imagefrom numpy import *import osimport stringdef getFeatures(path): features = [] im = array(Image.open(path).convert('L')) h,w = shape(im) for i in xrange(0,h): for j in xrange(0,w): im[i][j] = 0 if im[i][j] < 128 else 1 for i in xrange(1,h-1): for j in xrange(1,w-1): if im[i][j] != 0 and im[i-1][j]==0 and im[i][j-1]==0 and im[i][j+1]==0 and im[i+1][j]==0: im[i][j] = 0 for rang in [xrange(2,8), xrange(12,18), xrange(22,28), xrange(32,38)]: temp = [] for i in rang: for j in xrange(0,10): temp.append(im[j][i]) features.append(temp) return featuresdef SVMTrain(): train_path = "/home/eple/Desktop/code/checkcode_training/" path = os.listdir(train_path) labels = [] features = [] for name in path: labels.extend(list(name)) features.extend(getFeatures(train_path + name)) labels = [string.atof(i) for i in labels] prob = svm_problem(labels, features) param = svm_parameter('-t 2') m = svm_train(prob, param) svm_save_model('1.model',m) #保存模型def SVMPredict(path): m = svm_load_model('1.model') label = [1,1,1,1] features = getFeatures(path) p_label, p_acc, p_val = svm_predict(label,features,m) res = [str(int(i)) for i in p_label] print '该图片的结果为:',''.join(res)if __name__ == '__main__': SVMTrain() #训练 path = '/home/eple/DIP/0017' SVMPredict(path) #预测
0 0
- SVM识别验证码
- 验证码识别svm
- SVM对简单验证码的识别
- 初识SVM(验证码识别)
- SVM验证码识别,提供源程序下载。
- CSDN验证码识别
- 验证码识别技术
- c# 识别验证码
- vb-验证码识别
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 如何识别验证码
- 验证码识别技术
- 验证码识别浅谈
- 简单验证码识别
- 第11周项目1.2(补)输出点阵+多文件组织
- [个人心得]渗透测试的一些总结
- windows编译openssl
- Web控件和HTML控件的不同之处
- 【UML】2.部分与整体的媒介:关系
- SVM识别验证码
- u-boot-2014.10移植第19天----添加nand flash命令支持(一)
- CFile 打开文件 相对路径和绝对路径
- JAVA内存泄漏调试
- LA-2523 & POJ-1325 & HDOJ-1150 Machine Schedule 解题报告
- Java编程思想学习笔记
- 并查集模板
- Android——按钮的事件监听
- 第11周项目1.3输出字模点阵(补)