国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 python圖像識(shí)別算法

2020-02-22 23:01:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

寫(xiě)在前面

這一段的內(nèi)容可以說(shuō)是最難的一部分之一了,因?yàn)槭亲R(shí)別圖像,所以涉及到的算法會(huì)相比之前的來(lái)說(shuō)比較困難,所以我盡量會(huì)講得清楚一點(diǎn)。

而且因?yàn)樵诰帉?xiě)的過(guò)程中,把前面的一些邏輯也修改了一些,將其變得更完善了,所以一切以本篇的為準(zhǔn)。當(dāng)然,如果想要直接看代碼,代碼全部放在我的GitHub中,所以這篇文章主要負(fù)責(zé)講解,如需代碼請(qǐng)自行前往GitHub。

本次大綱

上一次寫(xiě)到了數(shù)據(jù)庫(kù)的建立,我們能夠?qū)崟r(shí)的將更新的訓(xùn)練圖片存入CSV文件中。所以這次繼續(xù)往下走,該輪到識(shí)別圖片的內(nèi)容了。

首先我們需要從文件夾中提取出需要被識(shí)別的圖片test.png,并且把它經(jīng)過(guò)與訓(xùn)練圖片相同的處理得到1x10000大小的向量。因?yàn)閮烧咧g存在微小的差異,我也不是很想再往源代碼之中增加邏輯了,所以我就直接把增加待識(shí)別圖片的函數(shù)重新寫(xiě)一個(gè)命名為GetTestPicture,內(nèi)容與GetTrainPicture類似,只不過(guò)少了“增加圖片名稱”這一個(gè)部分。

之后我們就可以開(kāi)始進(jìn)行正式圖片識(shí)別內(nèi)容了。

主要是計(jì)算待識(shí)別圖片與所有訓(xùn)練圖片的距離。當(dāng)兩個(gè)圖片距離越近的時(shí)候,說(shuō)明他們?cè)较嗨疲敲此麄兒苡锌赡軐?xiě)的就是同一個(gè)數(shù)。所以利用這個(gè)原理,我們可以找出距離待識(shí)別圖像最近的幾個(gè)訓(xùn)練圖片,并輸出他們的數(shù)字分別是幾。比如說(shuō)我想輸出前三個(gè),前三個(gè)分別是3,3,9,那就說(shuō)明這個(gè)待識(shí)別圖片很有可能是3.

之后還可以對(duì)每一個(gè)位置加個(gè)權(quán)重,具體的就放在下一次再講,本節(jié)內(nèi)容已經(jīng)夠多了。

(第一篇文章之中我說(shuō)過(guò)利用圖片洞數(shù)檢測(cè)。我嘗試了一下,認(rèn)為有些不妥,具體原因放在本文末。)

MAIN代碼

所以直接把主要代碼放上來(lái),邏輯相對(duì)來(lái)說(shuō)還是比較清晰的

import osimport OperatePicture as OPimport OperateDatabase as ODimport PictureAlgorithm as PAimport csv##Essential vavriable 基礎(chǔ)變量#Standard size 標(biāo)準(zhǔn)大小N = 100#Gray threshold 灰度閾值color = 200/255n = 10#讀取原CSV文件reader = list(csv.reader(open('Database.csv', encoding = 'utf-8')))#清除讀取后的第一個(gè)空行del reader[0]#讀取num目錄下的所有文件名fileNames = os.listdir(r"./num/")#對(duì)比f(wàn)ileNames與reader,得到新增的圖片newFileNamesnewFileNames = OD.NewFiles(fileNames, reader)print('New pictures are: ', newFileNames)#得到newFilesNames對(duì)應(yīng)的矩陣pic = OP.GetTrainPicture(newFileNames)#將新增圖片矩陣存入CSV中OD.SaveToCSV(pic, newFileNames)#將原數(shù)據(jù)庫(kù)矩陣與新數(shù)據(jù)庫(kù)矩陣合并pic = OD.Combination(reader, pic)#得到待識(shí)別圖片testFiles = os.listdir(r"./test/")testPic = OP.GetTestPicture(testFiles)#計(jì)算每一個(gè)待識(shí)別圖片的可能分類result = PA.CalculateResult(testPic, pic)for item in result:  for i in range(n):    print('第'+str(i+1)+'個(gè)向量為'+str(item[i+n])+',距離為'+str(item[i]))            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 明星| 克拉玛依市| 朝阳县| 简阳市| 海兴县| 桂林市| 沾化县| 稻城县| 东台市| 宁阳县| 左权县| 临澧县| 定西市| 富川| 宝山区| 阿拉善右旗| 防城港市| 江永县| 响水县| 丹巴县| 高邑县| 清水县| 商城县| 宾阳县| 盐源县| 苏尼特左旗| 灵武市| 大丰市| 康平县| 清原| 榆社县| 天津市| 贵南县| 阳城县| 五台县| 宜宾市| 赤水市| 孝义市| 镇沅| 虎林市| 光山县|