亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python進(jìn)行圖片信息提取并重命名

 更新時(shí)間:2024年10月29日 11:21:32   作者:PythonFun  
Tesseract-OCR是一款優(yōu)秀的開(kāi)源OCR軟件,本文主要介紹了如何使用Tesseract-OCR工具識(shí)別圖片并提取信息,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、問(wèn)題

有人在微信群?jiǎn)柸绾慰焖侔岩恍﹫D片中的第一行或第二行的文字提取出來(lái),并將其重命名。人工操作費(fèi)時(shí)費(fèi)力,如果用Python就可以實(shí)現(xiàn)批量操作,而不必一張一張識(shí)別、校對(duì)再重命名了。

二、主要思路

Tesseract-OCR是一款優(yōu)秀的開(kāi)源OCR軟件,目前由Google維護(hù)改進(jìn),已發(fā)展到5.0版本,從4.0版本起增加了基于LSTM神經(jīng)網(wǎng)絡(luò)的識(shí)別引擎。

本項(xiàng)目的主要思路是用Tesseract-OCR工具來(lái)識(shí)別圖片,雖然這個(gè)工具的識(shí)別率并不高,但是免費(fèi)可以使用,親測(cè)效果不錯(cuò)。然后,提取圖片中的第一行和第二行的內(nèi)容為字符串,并將其中不能用于文件名的符號(hào)清除掉,再采用os.rename()來(lái)重命名。

1. 安裝相應(yīng)的包

要想識(shí)別圖片,就要安裝了 pytesseract 庫(kù)和PIL庫(kù)

pip install pytesseract,PIL

2. 下載Tessaract-OCR工具

如果光安裝pytesseract庫(kù),不安裝這個(gè)軟件也不行,大家可以去下面的地址下載。

https://github.com/UB-Mannheim/tesseract/wiki?github.com/UB-Mannheim/tesseract/wiki

下載和你系統(tǒng)警醒的軟件

3. 安裝Tesseract

下載到本地后,大約有49M,然后進(jìn)行安裝,注意下載過(guò)程中要識(shí)別不同的語(yǔ)言,就要勾選相應(yīng)的語(yǔ)種,如我要識(shí)別的是中文,語(yǔ)言那里勾選的是Chinese-Simplified。

安裝Tesseract

4. 配置環(huán)境

安裝完之后,我們還需要找到安裝目錄下這個(gè)Tesseract.exe的路徑,把它的路徑放到Python里。

pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'

5. 編寫(xiě)代碼

萬(wàn)事俱備,就可以編寫(xiě)代碼。編寫(xiě)時(shí),需要用到文件管理模塊os,正則表達(dá)式模塊re,圖像編輯模塊PIL等。

import os
import re
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
 
def sanitize_filename(name):
    """去除文件名中不允許的字符"""
    return re.sub(r'[<>:"/\\|?*]', '', name)
 
def rename_images_with_first_line_text(folder_path):
    # 獲取文件夾中所有的jpg圖片
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(".jpg"):
            image_path = os.path.join(folder_path, filename)
            try:
                # 打開(kāi)圖片并使用 pytesseract 識(shí)別第一行文字
                image = Image.open(image_path)
                text = pytesseract.image_to_string(image, lang="chi_sim")  # 識(shí)別簡(jiǎn)體中文
                first_line = "".join(text.splitlines()[0:2]).strip()  # 僅取第一行和第二行文字并去除空格
 
                if first_line:
                    # 將文件名設(shè)為識(shí)別到的第一行文字
                    new_filename = f"{sanitize_filename(first_line)}.jpg"
                    new_path = os.path.join(folder_path, new_filename)
                    os.rename(image_path, new_path)
                    print(f"文件已重命名為: {new_filename}")
                else:
                    print(f"未檢測(cè)到文字,跳過(guò)文件: {filename}")
 
            except Exception as e:
                print(f"處理文件 {filename} 時(shí)出錯(cuò): {e}")
 
# 使用文件夾路徑調(diào)用函數(shù)
folder_path = "."  # 替換為存放JPG圖片的文件夾路徑
rename_images_with_first_line_text(folder_path)

三、學(xué)后總結(jié)

1. 采用tesseract來(lái)進(jìn)行圖片識(shí)別效率還挺高,一秒基本上一張,就是準(zhǔn)備率還需要進(jìn)一步提升。據(jù)說(shuō)還可以進(jìn)行模型訓(xùn)練,進(jìn)一步提高其準(zhǔn)確率。

2. 后期可以采用百度等大廠的圖片識(shí)別api進(jìn)行語(yǔ)片識(shí)別,進(jìn)一步提高準(zhǔn)確率。

3. 采用指定模塊進(jìn)行圖片識(shí)別提供了一個(gè)不錯(cuò)的思路,畢竟現(xiàn)在api的調(diào)用費(fèi)也十分高昂。

到此這篇關(guān)于Python進(jìn)行圖片信息提取并重命名的文章就介紹到這了,更多相關(guān)Python提取圖片信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論