python實(shí)現(xiàn)基于SVM手寫(xiě)數(shù)字識(shí)別功能
本文實(shí)例為大家分享了SVM手寫(xiě)數(shù)字識(shí)別功能的具體代碼,供大家參考,具體內(nèi)容如下
1、SVM手寫(xiě)數(shù)字識(shí)別
識(shí)別步驟:
(1)樣本圖像的準(zhǔn)備。
(2)圖像尺寸標(biāo)準(zhǔn)化:將圖像大小都標(biāo)準(zhǔn)化為8*8大小。
(3)讀取未知樣本圖像,提取圖像特征,生成圖像特征組。
(4)將未知測(cè)試樣本圖像特征組送入SVM進(jìn)行測(cè)試,將測(cè)試的結(jié)果輸出。
識(shí)別代碼:
#!/usr/bin/env python import numpy as np import mlpy import cv2 print 'loading ...' def getnumc(fn): '''返回?cái)?shù)字特征''' fnimg = cv2.imread(fn) #讀取圖像 img=cv2.resize(fnimg,(8,8)) #將圖像大小調(diào)整為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 #讀取樣本數(shù)字 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"訓(xùn)練樣本測(cè)試:" print svm.pred(x) print u"未知圖像測(cè)試:" 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)
樣本:


結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python給Excel工作表設(shè)置背景色或背景圖
Excel是工作中數(shù)據(jù)處理和分析數(shù)據(jù)的重要工具,面對(duì)海量的數(shù)據(jù)和復(fù)雜的表格,如何提高工作效率、減少視覺(jué)疲勞并提升數(shù)據(jù)的可讀性是不容忽視的問(wèn)題,而給工作表設(shè)置合適的背景是表格優(yōu)化的一個(gè)有效方式,本文將介紹如何用Python給Excel工作表設(shè)置背景色或背景圖2024-07-07
詳解MySQL數(shù)據(jù)類(lèi)型int(M)中M的含義
int(M)拆分來(lái)說(shuō),int是代表整型數(shù)據(jù)那,么中間的M應(yīng)該是代表多少位了,后來(lái)查mysql手冊(cè)也得知了我的理解是正確的,下面這篇文章小編就來(lái)舉例詳細(xì)說(shuō)明。 文中介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面就來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
Python開(kāi)發(fā)時(shí)報(bào)TypeError:?‘int‘?object?is?not?iterable錯(cuò)誤的解決方
Python寫(xiě)循環(huán)程序的時(shí)候遇到TypeError:'int'object is not iterable,所以下面這篇文章主要給大家介紹了關(guān)于Python開(kāi)發(fā)時(shí)報(bào)TypeError:'int'?object?is?not?iterable錯(cuò)誤的解決方式,需要的朋友可以參考下2022-06-06
Python 實(shí)現(xiàn)「食行生鮮」簽到領(lǐng)積分功能
今天我們就用 Python 來(lái)實(shí)現(xiàn)自動(dòng)簽到,省得我每天打開(kāi) APP 來(lái)操作了。感興趣的朋友跟隨小編一起看看吧2018-09-09
詳解pyenv下使用python matplotlib模塊的問(wèn)題解決
這篇文章主要介紹了詳解pyenv下使用python matplotlib模塊的問(wèn)題解決,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11
關(guān)于np.meshgrid函數(shù)中的indexing參數(shù)問(wèn)題
Meshgrid函數(shù)在二維與三維空間中用于生成坐標(biāo)網(wǎng)格,便于進(jìn)行圖像處理和空間數(shù)據(jù)分析,二維情況下,默認(rèn)使用笛卡爾坐標(biāo)系,而三維meshgrid則涉及不同的坐標(biāo)軸取法,在三維情況下,可能會(huì)出現(xiàn)坐標(biāo)軸排列序混亂2024-09-09
django在開(kāi)發(fā)中取消外鍵約束的實(shí)現(xiàn)
這篇文章主要介紹了django在開(kāi)發(fā)中取消外鍵約束的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
使用Python實(shí)現(xiàn)BT種子和磁力鏈接的相互轉(zhuǎn)換
這篇文章主要介紹了使用Python實(shí)現(xiàn)BT種子和磁力鏈接的相互轉(zhuǎn)換的方法,有時(shí)比如迅雷無(wú)法加載磁力鏈接或者無(wú)法上傳附件分享時(shí)可以用到,需要的朋友可以參考下2015-11-11

