一篇文章教會你使用Python圖片格式轉(zhuǎn)換器并識別圖片中的文字
回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書
在日常生活中,我們經(jīng)常需要用到圖片,我們都知道,圖片的種類挺多的,在這里不一一列舉。
我們今天要完成就是一個(gè)圖片轉(zhuǎn)換器外加圖片識別程序,廢話不多說,直接就是淦!
1.文字識別技術(shù)
2.圖片轉(zhuǎn)換器
一、文字識別技術(shù)
首先介紹文字識別技術(shù),就是讀取圖片之后然后把圖片中的文字提取出來。
1.打開百度開放平臺

進(jìn)去之后咱們選擇文字識別,可以看出,語音合成和圖片識別的參數(shù)不一樣,所以不要搞混了,不過他們用的Python模塊是一樣的,這個(gè)可以放心使用。

談到文字識別,大致可分為本地文件文字識別和網(wǎng)絡(luò)文件文字識別,識別率還算挺高的,他的用法與語音合成有很多相似之處,當(dāng)然也有很多不同,例如:
from aip import AipOcr""" 你的 APPID AK SK """APP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
首先是使用的模塊不同,其次參數(shù)也不同,可以看出來第一步配置就是這么簡單。
然后我們需要對本地文件進(jìn)行一個(gè)識別,例如:

可以看出來,這些就是識別后圖片上的內(nèi)容,識別效果很好,非常完美。
文字識別——請求參數(shù)詳情
| 參數(shù)名稱 | 是否必選 | 類型 | 可選值范圍 | 默認(rèn)值 | 說明 |
|---|---|---|---|---|---|
| image | 是 | string | 圖像數(shù)據(jù),base64編碼,要求base64編碼后大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式 | ||
| url | 是 | string | 圖片完整URL,URL長度不超過1024字節(jié),URL對應(yīng)的圖片base64編碼后大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式,當(dāng)image字段存在時(shí)url字段失效 | ||
| language_type | 否 | string | CHN_ENG ENG POR FRE GER ITA SPA RUS JAP KOR | CHN_ENG | 識別語言類型,默認(rèn)為CHN_ENG??蛇x值包括:- CHN_ENG:中英文混合;- ENG:英文;- POR:葡萄牙語;- FRE:法語;- GER:德語;- ITA:意大利語;- SPA:西班牙語;- RUS:俄語;- JAP:日語;- KOR:韓語; |
| detect_direction | 否 | string | true false | false | 是否檢測圖像朝向,默認(rèn)不檢測,即:false。朝向是指輸入圖像是正常方向、逆時(shí)針旋轉(zhuǎn)90/180/270度??蛇x值包括: - true:檢測朝向;- false:不檢測朝向。 |
| detect_language | 否 | string | true false | false | 是否檢測語言,默認(rèn)不檢測。當(dāng)前支持(中文、英語、日語、韓語) |
| probability | 否 | string | true false | 是否返回識別結(jié)果中每一行的置信度 |
文字識別——返回?cái)?shù)據(jù)參數(shù)詳情
| 字段 | 必選 | 類型 | 說明 |
|---|---|---|---|
| direction | 否 | number | 圖像方向,當(dāng)detect_direction=true時(shí)存在。- -1:未定義, - 0:正向, - 1: 逆時(shí)針90度, - 2:逆時(shí)針180度, - 3:逆時(shí)針270度 |
| log_id | 是 | number | 唯一的log id,用于問題定位 |
| words_result_num | 是 | number | 識別結(jié)果數(shù),表示words_result的元素個(gè)數(shù) |
| words_result | 是 | array | 定位和識別結(jié)果數(shù)組 |
| +words | 否 | string | 識別結(jié)果字符串 |
| probability | 否 | object | 行置信度信息;如果輸入?yún)?shù) probability = true 則輸出 |
| +average | 否 | number | 行置信度平均值 |
| +variance | 否 | number | 行置信度方差 |
| +min | 否 | number | 行置信度最小值 |
可以看出這個(gè)API還是相當(dāng)不錯(cuò)了,下面我們聊一下圖片格式轉(zhuǎn)換器,
二、圖片格式轉(zhuǎn)換器
圖片格式轉(zhuǎn)換器,顧名思義就是將圖片格式互相轉(zhuǎn)換,很多人為了方便都是直接改后綴名,殊不知那樣圖盤的原始樣式會受到影響,也許圖片會打開后從產(chǎn)生錯(cuò)誤的畫面。下面我們就來做一個(gè)類似的案例。
1.先安裝圖片處理模塊 pillow ,安裝方法 :
pip install pillow
2.導(dǎo)入pillow
from PIL import Image
3.判斷文件是否可以打開
from PIL import Imagedef isbad(path):bad = Truetry:Image.open(path).verify() #判斷圖片是否損壞except:bad= Falsereturn bad
4.轉(zhuǎn)換文件格式
def translate(path):if isbad(path):try:str = path.rsplit(".", 1)output_path = str[0] + ".png" #輸出文件名稱im = Image.open(path)im.save(output_path) #保存目標(biāo)文件return Trueexcept:return Falseelse:return False
這樣我們就得到了一張完整的可用的png圖片了,代碼如圖:

本項(xiàng)目用于平時(shí)上傳文件識別圖片所用,效果還是蠻不錯(cuò)的,希望大家喜歡。
最后想學(xué)習(xí)更多關(guān)于Python的知識,可以參考學(xué)習(xí)網(wǎng)址:http://pdcfighting.com/,點(diǎn)擊閱讀原文,可以直達(dá)噢~
------------------- End -------------------
往期精彩文章推薦:
歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
