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开发的小球完全弹性碰撞游戏代码
Oct 15 Python
python线程锁(thread)学习示例
Dec 04 Python
Python实现一个简单的MySQL类
Jan 07 Python
Python合并多个装饰器小技巧
Apr 28 Python
Python使用爬虫猜密码
Feb 19 Python
Python 绘图和可视化详细介绍
Feb 11 Python
python随机取list中的元素方法
Apr 08 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
python装饰器代码深入讲解
Mar 01 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
第十四节--命名空间
2006/11/16 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
内勤主管岗位职责
2014/04/03 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
2014年小学工作总结
2014/11/26 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫