python实现基于SVM手写数字识别功能


Posted in Python onMay 27, 2020

本文实例为大家分享了SVM手写数字识别功能的具体代码,供大家参考,具体内容如下

1、SVM手写数字识别

识别步骤:

(1)样本图像的准备。
(2)图像尺寸标准化:将图像大小都标准化为8*8大小。
(3)读取未知样本图像,提取图像特征,生成图像特征组。
(4)将未知测试样本图像特征组送入SVM进行测试,将测试的结果输出。

识别代码:

#!/usr/bin/env python
import numpy as np
import mlpy
import cv2
print 'loading ...'

def getnumc(fn):
 '''返回数字特征'''
 fnimg = cv2.imread(fn) #读取图像
 img=cv2.resize(fnimg,(8,8)) #将图像大小调整为8*8
 alltz=[]
 for now_h in xrange(0,8):
 xtz=[] 
 for now_w in xrange(0,8):
  b = img[now_h,now_w,0]
  g = img[now_h,now_w,1]
  r = img[now_h,now_w,2]
  btz=255-b
  gtz=255-g
  rtz=255-r
  if btz>0 or gtz>0 or rtz>0:
  nowtz=1
  else:
  nowtz=0
  xtz.append(nowtz) 
 alltz+=xtz
 return alltz
 
#读取样本数字
x=[]
y=[]
for numi in xrange(1,10):
 for numij in xrange(1,5):
 fn='nums/'+str(numi)+'-'+str(numij)+'.png'
 x.append(getnumc(fn))
 y.append(numi)
 
x=np.array(x)
y=np.array(y)
svm = mlpy.LibSvm(svm_type='c_svc', kernel_type='poly',gamma=10)
svm.learn(x, y)
print u"训练样本测试:"
print svm.pred(x)
print u"未知图像测试:"
for iii in xrange (1,10):
 testfn= 'nums/test/'+str(iii)+'-test.png'
 testx=[]
 testx.append(getnumc(testfn))
 print 
 print testfn+":",
 print svm.pred(testx)

样本:

python实现基于SVM手写数字识别功能

python实现基于SVM手写数字识别功能

结果:

python实现基于SVM手写数字识别功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
python实现把两个二维array叠加成三维array示例
Nov 29 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
python中pymysql包操作数据库方法
Apr 19 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 #Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 #Python
Python实现进程同步和通信的方法
Jan 02 #Python
mac系统安装Python3初体验
Jan 02 #Python
Python中static相关知识小结
Jan 02 #Python
python tensorflow基于cnn实现手写数字识别
Jan 01 #Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 #Python
You might like
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
小程序实现多列选择器
2019/02/15 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python3字符串学习教程
2015/08/20 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
python对XML文件的操作实现代码
2020/03/27 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
shell程序中如何注释
2012/02/17 面试题
专业销售业务员求职信
2013/11/18 职场文书
班主任对学生的评语
2014/04/26 职场文书
人力资源部岗位职责
2015/02/11 职场文书
故意伤害辩护词
2015/05/21 职场文书
四大名著读书笔记
2015/06/25 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript