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