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实现partial改变方法默认参数
Aug 18 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
Python中zfill()方法的使用教程
May 20 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
python源码剖析之PyObject详解
May 18 Python
如何正确理解python装饰器
Jun 15 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来检测proxy
2006/10/09 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP的加密方式及原理
2012/06/14 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
js实现文字截断功能
2016/09/14 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
Python continue继续循环用法总结
2018/06/10 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
小学教师节活动方案
2014/01/31 职场文书
五一手机促销方案
2014/03/08 职场文书
学习三严三实心得体会
2014/10/13 职场文书
2014年团总支工作总结
2014/11/21 职场文书
新员工考核评语
2014/12/31 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
MSSQL基本语法操作
2022/04/11 SQL Server