Python(Handwriting)

來源:互聯網
上載者:User

標籤:函數   pen   檔案   測試   image   opera   def   his   weixin   

from numpy import *
import operator
from os import listdir
#從列方向擴充
#tile(a,(size,1))
def knn(k,testdata,traindata,labels):
traindatasize=traindata.shape[0]
dif=tile(testdata,(traindatasize,1))-traindata
sqdif=dif**2
sumsqdif=sqdif.sum(axis=1)
distance=sumsqdif**0.5
sortdistance=distance.argsort()
count={}
for i in range(0,k):
vote=labels[sortdistance[i]]
count[vote]=count.get(vote,0)+1
sortcount=sorted(count.items(),key=operator.itemgetter(1),reverse=True)
return sortcount[0][0]


#圖片處理
#先將所有圖片轉為固定寬高,比如32*32,然後再轉為文本
#pillow
from PIL import Image
im=Image.open("C:/Users/Administrator/Desktop/33.png")
fh=open("C:/Users/Administrator/Desktop/33.txt","a")
#im.save("C:/Users/me/Pictures/weixin.bmp")
width=im.size[0]
height=im.size[1]
#k=im.getpixel((1,9))
#print(k)
for i in range(0,width):
for j in range(0,height):
cl=im.getpixel((i,j))
clall=cl[0]+cl[1]+cl[2]
if(clall==0):
#黑色
fh.write("1")
else:
fh.write("0")
fh.write("\n")
fh.close()

#載入資料
def datatoarray(fname):
arr=[]
fh=open(fname)
for i in range(0,32):
thisline=fh.readline()
for j in range(0,32):
arr.append(int(thisline[j]))
return arr
arr1=datatoarray("E:/m/others/traindata/0_4.txt")
#建立一個函數取檔案名稱首碼
def seplabel(fname):
filestr=fname.split(".")[0]
label=int(filestr.split("_")[0])
return label
#建立訓練資料
def traindata():
labels=[]
trainfile=listdir("E:/m/others/traindata")
num=len(trainfile)
#長度1024(列),每一行儲存一個檔案
#用一個數組儲存所有訓練資料,行:檔案總數,列:1024
trainarr=zeros((num,1024))
for i in range(0,num):
thisfname=trainfile[i]
thislabel=seplabel(thisfname)
labels.append(thislabel)
trainarr[i,:]=datatoarray("traindata/"+thisfname)
return trainarr,labels
#用測試資料調用KNN演算法去測試,看是否能夠準確識別
def datatest():
trainarr,labels=traindata()
testlist=listdir("testdata")
tnum=len(testlist)
for i in range(0,tnum):
thistestfile=testlist[i]
testarr=datatoarray("testdata/"+thistestfile)
rknn=knn(3,testarr,trainarr,labels)
print(rknn)
#datatest()
#抽某一個測試檔案出來進行實驗
trainarr,labels=traindata()
thistestfile="33.txt"
testarr=datatoarray("C:/Users/Administrator/Desktop/"+thistestfile)
rknn=knn(3,testarr,trainarr,labels)
print(rknn)
******************************************************************************************
from PIL import Image
im=Image.open("C:/Users/Administrator/Desktop/33.png")
#im.save("C:/Users/Administrator/Desktop/33.bmp")
fh=open("C:/Users/Administrator/Desktop/33.txt","a")
pic_size=im.size
width=im.size[0]
height=im.size[1]
print(pic_size)
print(" width:"+str(width))
print (" height:"+str(height))
px_color=im.getpixel((0,9))
print(px_color)
from os import listdir
listdir_name=listdir("E:/m/others/traindata")#得到檔案夾下的所有檔案名稱
print(listdir_name)
from numpy import *
zero=zeros((2,5))
print (zero)

Python(Handwriting)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.