1.手写数字识别是python图像处理的基础,首先须要安装pillow,咱们须要以管理员身份打开Windows命令行并输入pip install pillow
,若是提示pip须要更新,咱们输入python -m pip install --upgrade pip
先更新pip,这时再安装pillow就没问题了。python
2.首先咱们须要引入和图片识别有关的库,输入from PIL import Image
进行引入,引入后咱们就能够打开要进行操做的图片了,这里须要用到Image中的open()函数和save()函数,open()函数用来打开文件,save()函数用来将图片保存为咱们须要的格式。函数
3.而后咱们须要肯定图片的长和宽,调用size()函数能够返回一个以图片的宽和高为元素的元组,这时获取图片的宽和高就能够用元素下标的方式。编码
4.咱们在识别时要获得一个用1标识出数字的文本文档,第一个图为我用电脑的画图随便写的数字6,第二个图是通过识别得出的文本文档,咱们能够看出,第二个图中用1标出了手写体的数字6的形状。所以咱们在数字识别的过程当中须要知道每个位置的rgb编码,这个调用getpixel()便可实现,咱们知道,黑色的rgb编码的三个数的和为0,咱们要获得一个用0和1标识出来的图像,只需在rgb编码数之和为0的位置写入1,其他不为0的位置写入0。spa
5.编码实现:命令行
from PIL import Image im = Image.open("C:/Users/21974/Desktop/handwrite.PNG") im.save("C:/Users/21974/Desktop/handwrite.bmp") df = open("C:/Users/21974/Desktop/practicePil.txt", "a") #打开一个文本用于接下来的写入操做 width = im.size[0] height = im.size[1] for i in range(0, width): for j in range(0, height): k = im.getpixel((i, j)) #注意此处为两个括号,第二个括号内表明坐标为(i,j)处的色彩元素 sum = k[0]+k[1]+k[2] #rgb编码的三个数字相加 if sum == 0: df.write("1") else: df.write("0") df.write("\n") df.close()
运行便可获得以0和1绘制的文本图像。code