Python數據分析:手寫數字識別初步

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

相關文章
相關標籤/搜索