这是我在PS新建的32x32像素的数字9:
首先将32x32像素的图片转变成一行1024(=32x32)空间坐标,其实就相当于一个1024维的空间。TainData 里面有两千条数据就相当于有两千个点。
我们新建一个方法叫classify,就是把我们要测试的点放到训练数据空间里,看离他最近的k个点是什么值,这里我们K设置为5
我之前写的3的数字也变成1024维空间的点,选择最近的五个点进行判断。
原来图片
https://github.com/MichaelYipInGitHub/PythonTest/blob/master/com/test/knn/IdentifImg.py
1.Python没用封装KNN 算法, 因为太简单,可以直接手写。
2.从图片上看, 我用粗笔写的数字能识别到,细笔写的就识别不到,这可能与我的训练数据多为粗笔字体。
3.数字识别可以引申到动物识别,人物识别,不过他们用的像素不只是0和1,数据会更加庞大, 算法更加复杂。
<HTML><HEAD><TITLE>动物数</TITLE>
<script language="vbscript">
sub animal
dim x,y,z
for x=0 to 18
for y=0 to 18
for z=0 to 18
if (x+y+z=18)and(8*x+6*y+6*z=118)and(2*y+z=20) then
MsgBox "蜘蛛有" &x &"只,蜻蜓有" &y &" 只,蝉卖者有" &z &"只。 "
end if
next
next
next
End Sub
</SCRIPT>
</HEAD>
<body>
<script language="vbscript"扮配岁>
Call animal
</SCRIPT>
</BODY>厅睁
</HTML>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)