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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
零基础写python爬虫之打包生成exe文件
Nov 06 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
PyMongo 查询数据的实现
Jun 28 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 Python
实操Python爬取觅知网素材图片示例
Nov 27 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下MYSQL limit的优化
2008/01/10 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
php实现多城市切换特效
2015/08/09 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python入门_条件控制(详解)
2017/05/16 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
产品销售员岗位职责
2013/12/18 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
小学生期末评语
2014/04/21 职场文书
初中学校对照检查材料
2014/08/19 职场文书
运动员入场词
2015/07/18 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript