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选择排序算法的实现代码
Nov 21 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
python中__call__方法示例分析
Oct 11 Python
简单谈谈python中的多进程
Nov 06 Python
python机器学习实战之K均值聚类
Dec 20 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
python通过实例讲解反射机制
Oct 17 Python
python的time模块和datetime模块实例解析
Nov 29 Python
PyTorch中topk函数的用法详解
Jan 02 Python
python求前n个阶乘的和实例
Apr 02 Python
Prometheus开发中间件Exporter过程详解
Nov 30 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
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php中的静态变量的基本用法
2014/03/20 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
javascript一点特殊用法
2008/05/28 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
python的re正则表达式实例代码
2018/01/24 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python中请不要再用re.compile了
2019/06/30 Python
python设置环境变量的作用整理
2020/02/17 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
医学检验专业大学生求职信
2013/11/18 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
保密承诺书范文
2014/03/27 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
销售活动策划方案
2014/08/26 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS