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获取文件ssdeep值的方法
Oct 05 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
Python字符串拼接的几种方法整理
Aug 02 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
Python AES加密实例解析
Jan 18 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
python生成ppt的方法
Jun 07 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
将python文件打包成EXE应用程序的方法
May 22 Python
python日志logging模块使用方法分析
May 23 Python
Python必备技巧之函数的使用详解
Apr 04 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 5.0对象模型深度探索之对象复制
2008/03/27 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python如何绘制疫情图
2020/09/16 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
保护环境的标语
2014/06/09 职场文书
山楂树之恋观后感
2015/06/11 职场文书
超级礼物观后感
2015/06/15 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL
JS中如何优雅的使用async await详解
2021/10/05 Javascript
Python基本的内置数据类型及使用方法
2022/04/13 Python