ホームページ  >  記事  >  バックエンド開発  >  Pythonで画像をテキストに変換する方法

Pythonで画像をテキストに変換する方法

WBOY
WBOY転載
2023-04-20 11:07:062032ブラウズ

    Python 画像からテキストへの

    私は Python Tesseract-OCR を使用して画像からテキストへの変換のための小さなツールを作成しました。GUI デザインでは、次のコントロールを使用します。 tkinter ライブラリ

    インターフェイスと効果については、以下の図を参照してください:

    Pythonで画像をテキストに変換する方法

    Pythonで画像をテキストに変換する方法##

    #进一步优化  1. 底部添加label   2.对识别后的文本处理,去空格
    
    
    from PIL import Image as PImage
    from PIL import ImageTk
    import pytesseract
    from tkinter import *
    from tkinter import filedialog
    from tkinter.scrolledtext import ScrolledText
    import re
    
    # 将图片内容翻译为文字,显示在文本框内
    def trans():
        contents.delete('1.0', END)
        transTxt = pytesseract.image_to_string(PImage.open(filePath.get()),lang='chi_sim')
        #对transTxt进行处理  去空格,换行符去重
        transTxt = transTxt.strip('\n\r')   #无参数可以删除开头结尾的空格\n\t\r
        print(transTxt)
        contents.insert( INSERT, transTxt.replace(' ','').replace('\n\n','\n').replace('\r',''))
    
    #打开图片文件,显示路径,并将图片展现
    def openfile():
        filename.delete('1.0', END)
        filePath.set(filedialog.askopenfilename())
        filename.insert(1.0,filePath.get())
        org_img = PImage.open(filePath.get())
        #调整图片显示大小 600*800
        w,h = org_img.size
        if w>600:
            h=int(h*600/w)
            w=600
        if h>800:
            w=int(w*800/h)
            h=800
        img = ImageTk.PhotoImage(org_img.resize((w,h)))
        showPic.config(image=img)
        showPic.image = img       #保持一个引用才能显示图片,tkinter的BUG
        
    
    #设置主窗口
    top = Tk()
    top.title("OCR图片转文字  引擎:Tesseract-OCR  Made by: kaivis")
    #top.iconbitmap("./pic/y1.ico")
    top.geometry("1200x800")
    
    filePath=StringVar()
    
    bt_img1 = ImageTk.PhotoImage( file= "./pic/Outbox1.png")
    bt_img2 = ImageTk.PhotoImage( file= "./pic/bt_img2.png")
    
    #第一个窗体
    frame1 = Frame (top, relief=RAISED, borderwidth=2)
    frame1.pack(side=TOP, fill=BOTH,  ipady=5, expand=0)
    Label(frame1,height=1,text="图片路径:").pack(side=LEFT)
    filename = Text(frame1,height=2)
    filename.pack(side=LEFT,padx=1, pady=0,expand=True, fill=X)
    Button(frame1,text="打开文件", image=bt_img1, command=openfile).pack(side=LEFT,padx=5, pady=0)
    Button(frame1,text="中文识别", image=bt_img2, command=trans).pack(side=LEFT,padx=5, pady=0)
    
    #第二个窗体
    frame2 = Frame (top, relief=RAISED, borderwidth=2)
    frame2.pack (side=LEFT, fill=BOTH,  expand=1)
    Label(frame2,text='图片显示:',borderwidth=5).pack(side=TOP,padx=20,pady=5)
    showPic = Label(frame2,text='图片显示区')
    showPic.pack(side=BOTTOM,expand=1,fill=BOTH)
    
    #第三个窗体
    frame3 = Frame (top)
    frame3.pack (side=RIGHT, fill=BOTH,  expand=1)
    #contents = ScrolledText(frame3)
    Label(frame3,text='识别结果:',borderwidth=5).pack(side=TOP,padx=20,pady=10)
    contents = Text(frame3,font=('Arial',15))
    contents.pack(side=TOP,expand=1,fill=BOTH)
    Label(frame3,text='Copyright 2021 baidu.com ALL Rights Reserved',borderwidth=5).pack(side=BOTTOM,padx=20,pady=10)
    
    top.mainloop()

    問題:

    • 認識率は高くなく、コンパクトな漢字の場合は高い精度を達成するのがさらに困難です。より優れた OCR エンジンはありますか?

    • 認識されたテキストは処理されました スペース処理、テキストはさらに最適化できます、特に冗長な改行は処理する必要があります

    python スクリーンショットをテキスト関数に変換

    情報を探しているときからインターネット上でよく記事を見かけます。 コピーできない場合に、必要なテキストを素早くコピーするために、スクリーンショットをテキストに変換する機能を実現する Python プログラムを書きたいと考えています。

    Pythonで画像をテキストに変換する方法

    1. アイデア

    まず、キーボードを記録する機能が必要です (スクリーンショットを撮っていることをプログラムに知らせます) -キーボード ライブラリはスクリーンショットを撮った後に画像を受け取る必要があります - ImageGrab ライブラリ 画像を取得した後、テキスト認識が必要です - Baidu AI Text Recognition API

    2.実装

    2.1 インポート関連ライブラリ

    Pythonで画像をテキストに変換する方法

    2.2 クラスを作成し、スクリーンショットを保存する関数を記述する

    スクリーンショット ソフトウェアを使用しているため、 win10 に付属しているスクリーンショット ホットキーは「win shift s」ですが、さまざまなスクリーンショット ソフトウェアに応じて自由に変更できます。

    Pythonで画像をテキストに変換する方法

    2.3 画像をテキストに変換する関数を作成する

    まず、Baidu Intelligent Cloud 公式 Web サイトにアクセスして画像認識を申請します。 API。

    Pythonで画像をテキストに変換する方法

    パラメータをプログラムに書き込みます:

    Pythonで画像をテキストに変換する方法

    テキスト変換関数を書き込みます:

    Pythonで画像をテキストに変換する方法

    2.5 実行

    使用時にクラスを作成し、2 つの関数を呼び出すだけです:

    Pythonで画像をテキストに変換する方法

    2.6 効果

    プログラムを実行し、Baidu ライブラリの記事からスクリーンショットを取得します:

    Pythonで画像をテキストに変換する方法

    結果は次のとおりです:

    Pythonで画像をテキストに変換する方法

    ##注:

    2.6 の実行結果から、効果が依然として良好であることがわかります。私の現在のニーズを完全に解決しました。

    以上がPythonで画像をテキストに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。