日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法

發布時間:2025/4/16 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

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

安裝

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

1. 依賴安裝

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

2. 安裝leptonica

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

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

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下載相應的語言包,然后將之移動到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,否則這個參數將會作為保存結果的文件的前綴

-l指定語言文件,默認使用英文

tesseract --print-parameters:查看更多參數信息

使用-c指定單項參數的值或者將配置寫入配置文件放在命令最后(支持多個配置文件)

psm 識別圖像的方式

0:定向腳本監測(OSD)

1: 使用OSD自動分頁

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

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

4 :假設可變大小的一個文本列。

5 :假設垂直對齊文本的單個統一塊。

6 :假設一個統一的文本塊。

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

8 :將圖像視為單個詞。

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

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

python中使用

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

python中轉換

image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)

image Object,由Tesseract處理的圖像的PIL Image/NumPy數組

lang String,Tesseract語言代碼字符串

config String,任何其他配置字符串,例如:config='--psm 6'

語言文件可以疊加,用“+”隔開

我們也可以在這里進行tessdata路徑的設置,跟在config里面即可

更多配置包括config和psm都和tesseract類似

實例:

流程: 打開圖片,配置,轉換,可以通過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))

總結

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的python爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。