最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python識別圖像并提取文字的實現(xiàn)方法

 更新時間:2019年06月28日 10:54:04   作者:MA木易YA  
這篇文章主要介紹了python識別圖像并提取文字的實現(xiàn)方法,

前言

python圖像識別一般基礎(chǔ)到的就是tesseract了,在爬蟲中處理驗證碼廣泛使用。

安裝

安裝教程網(wǎng)上大都差不多,Windows下確實比較麻煩,涉及到各種路徑、環(huán)境變量甚至與linux不同的路徑分隔符,所以這里的安裝是基于Centos7。

1. 依賴安裝

yum install -y automake autoconf libtool gcc gcc-c++

2. 安裝leptonica

Leptonica主要用于圖像處理和圖像分析

原則上所有的庫文件都是可以直接用yum安裝的,如果想要具體的某個版本,可以前往官方源下載對應(yīng)版本然后按照對應(yīng)方式編譯

wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz
tar -zxvf leptonica-1.74.4.tar.gz
cd leptonica-1.74.4/
./configure
make && make install

3. 安裝tesseract

其他各版本可以在這里下載并自行編譯,也提供直接使用的文件。

yum install tesseract

4. 驗證安裝

tesseract --version

5. 語言包下載

前往tesseract-ocr/tessdata下載相應(yīng)的語言包,然后將之移動到tessdata目錄下,可以用whereis tesseract查看一下具體的目錄,我的是/usr/share/tesseract/tessdata/mv *.traineddata /usr/local/share/tessdata/

6. 查看目前已下載的語言

tesseract --list-langs

使用

# tesseract
Usage:
 tesseract --help | --help-psm | --help-oem | --version
 tesseract --list-langs [--tessdata-dir PATH]
 tesseract --print-parameters [options...] [configfile...]
 tesseract imagename|stdin outputbase|stdout [options...] [configfile...]

OCR options:
 --tessdata-dir PATH  Specify the location of tessdata path.
 --user-words PATH   Specify the location of user words file.
 --user-patterns PATH Specify the location of user patterns file.
 -l LANG[+LANG]    Specify language(s) used for OCR.
 -c VAR=VALUE     Set value for config variables.
            Multiple -c arguments are allowed.
 --psm NUM       Specify page segmentation mode.
 --oem NUM       Specify OCR Engine mode.
NOTE: These options must occur before any configfile.

語法

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
  • imagename:圖片名字
  • outputbase:指定輸出,如果希望直接輸出而不是保存到文件,那么就使用 stdout,否則這個參數(shù)將會作為保存結(jié)果的文件的前綴
  • -l指定語言文件,默認(rèn)使用英文
  • tesseract --print-parameters:查看更多參數(shù)信息
  • 使用-c指定單項參數(shù)的值或者將配置寫入配置文件放在命令最后(支持多個配置文件)
  • psm 識別圖像的方式

0:定向腳本監(jiān)測(OSD)

1: 使用OSD自動分頁

2 :自動分頁,但是不使用OSD或OCR(Optical Character Recognition,光學(xué)字符識別)

3 :全自動分頁,但是沒有使用OSD(默認(rèn))

4 :假設(shè)可變大小的一個文本列。

5 :假設(shè)垂直對齊文本的單個統(tǒng)一塊。

6 :假設(shè)一個統(tǒng)一的文本塊。

7 :將圖像視為單個文本行。

8 :將圖像視為單個詞。

9 :將圖像視為圓中的單個詞。

10 :將圖像視為單個字符。

python中使用

Tesseract安裝完成后可以很方便的被Python調(diào)用,但是需要pillow和pytesseract的支持。

python中轉(zhuǎn)換

image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)
  • image Object,由Tesseract處理的圖像的PIL Image/NumPy數(shù)組
  • lang String,Tesseract語言代碼字符串
  • config String,任何其他配置字符串,例如:config='--psm 6'
  • 語言文件可以疊加,用“+”隔開
  • 我們也可以在這里進行tessdata路徑的設(shè)置,跟在config里面即可
  • 更多配置包括config和psm都和tesseract類似

實例:

流程: 打開圖片,配置,轉(zhuǎn)換,可以通過Image的open或者cv2的imread打開圖片,之后對圖片進行對比度增強,降噪等處理,效果會好一些。

from PIL import Image
import pytesseract
class Languages:
  CHS = 'chi_sim'
  ENG = 'eng'
def img_to_str(image_path, lang=Languages.ENG):
  return pytesseract.image_to_string(Image.open(image_path), lang)
print(img_to_str('pic/numu.png', lang=Languages.ENG))
print(img_to_str('pic/pro.png', lang=Languages.ENG))

總結(jié)

簡單的文本識別效果還是不錯的,但是設(shè)計到多空行、符號等,識別效果就不是太好了,準(zhǔn)確度方面可以通過對字庫的訓(xùn)練達到想要的效果,之后對獲取到的文本利用諸如re等各種庫進行操作,其實應(yīng)用還蠻廣泛的。2. 但是它在驗證碼方面的話效果還是不錯的,驗證碼的話tesserocr也是比較方面的.

識別中文可能會出現(xiàn)編碼錯誤,這也是識別上的漏洞之一了,網(wǎng)上大佬們所說的改變文本的編碼似乎并不能解決問題,所以對長文本圖片處理還是不太建議直接轉(zhuǎn)換。

圖文處理也可以借鑒一些各平臺的API,百度、騰訊、美團都有支持.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Python實現(xiàn)實時監(jiān)控CPU使用率

    基于Python實現(xiàn)實時監(jiān)控CPU使用率

    這篇文章主要為大家介紹了一款手寫編程代碼的小腳本,能夠輕松在界面上展示:利用Python實時監(jiān)控CPU使用率,隨時展現(xiàn)。也無需下載管理軟件,感興趣的可以了解一下
    2022-04-04
  • Python Json與pickle模塊序列化使用介紹

    Python Json與pickle模塊序列化使用介紹

    這篇文章主要為大家介紹了Python中常用的兩個序列化模塊:pickle序列化和json序列化。文中的示例代碼講解詳細,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-10-10
  • Python進行圖像變換和插值操作詳解

    Python進行圖像變換和插值操作詳解

    這篇文章主要為大家詳細介紹了Python進行圖像變換和插值操作的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

    django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

    這篇文章主要介紹了django 解決自定義序列化返回處理數(shù)據(jù)為null的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • springboot整合單機緩存ehcache的實現(xiàn)

    springboot整合單機緩存ehcache的實現(xiàn)

    本文主要介紹了springboot整合單機緩存ehcache的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 快速下載VScode并配置Python運行環(huán)境(圖文教程)

    快速下載VScode并配置Python運行環(huán)境(圖文教程)

    本文主要介紹了快速下載VScode并配置Python運行環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • python中time包實例詳解

    python中time包實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中time包實例詳解內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • 對python中的裝包與解包實例詳解

    對python中的裝包與解包實例詳解

    今天小編就為大家分享一篇對python中的裝包與解包實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python如何優(yōu)雅獲取本機IP方法

    Python如何優(yōu)雅獲取本機IP方法

    這篇文章主要介紹了Python如何優(yōu)雅獲取本機IP方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python爬蟲豆瓣網(wǎng)的模擬登錄實現(xiàn)

    python爬蟲豆瓣網(wǎng)的模擬登錄實現(xiàn)

    這篇文章主要介紹了python爬蟲豆瓣網(wǎng)的模擬登錄實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

平远县| 莱州市| 红原县| 武鸣县| 阿坝县| 信宜市| 碌曲县| 五常市| 昌江| 庐江县| 阳山县| 宽甸| 如皋市| 德昌县| 安仁县| 恩平市| 平远县| 介休市| 获嘉县| 湘潭市| 东兰县| 莲花县| 宜昌市| 瑞安市| 乌拉特中旗| 长春市| 磴口县| 乌什县| 湘乡市| 西昌市| 玉环县| 阿拉尔市| 沅江市| 蓬溪县| 齐齐哈尔市| 奉新县| 仙居县| 普陀区| 栾城县| 武定县| 肇源县|