Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Python untuk mengenal pasti fon dalam gambar

Cara menggunakan Python untuk mengenal pasti fon dalam gambar

王林
王林asal
2023-08-26 09:39:314125semak imbas

Cara menggunakan Python untuk mengenal pasti fon dalam gambar

Cara menggunakan Python untuk melaksanakan pengecaman fon pada gambar

Pengecaman fon ialah teknologi yang menukar teks dalam gambar kepada teks yang boleh diedit. Ia mempunyai kepraktisan yang hebat dalam banyak senario aplikasi, seperti pemprosesan dokumen automatik, pengekstrakan teks, OCR, dsb. Artikel ini akan memperkenalkan cara menggunakan Python untuk mengenal pasti fon pada imej dan memberikan contoh kod yang sepadan.

  1. Persediaan
    Pertama, kita perlu memasang beberapa perpustakaan Python yang diperlukan. Masukkan arahan berikut pada baris arahan untuk memasang:

    pip install pytesseract
    pip install pillow

    Antaranya, pytesseract ialah perpustakaan Python berdasarkan enjin Tesseract-OCR, digunakan untuk mengenal pasti teks dalam imej Bantal adalah perpustakaan pemprosesan imej yang biasa digunakan dalam Python, digunakan untuk memproses imej.

  2. Prapemprosesan imej
    Sebelum pengecaman fon, kita perlu melakukan beberapa prapemprosesan pada imej untuk meningkatkan ketepatan pengecaman fon.

Pertama, baca imej dan lakukan pemprosesan skala kelabu:

from PIL import Image

image = Image.open('image.jpg')
gray_image = image.convert('L')

Tukar imej kepada skala kelabu kerana dalam imej skala kelabu, kontras antara teks dan latar belakang lebih jelas, yang membantu meningkatkan ketepatan pengecaman.

Kemudian, kita boleh binarize imej, iaitu memproses teks dalam imej menjadi hitam dan latar belakang menjadi putih.

threshold = 150
binary_image = gray_image.point(lambda p: p > threshold and 255)

Ambang di sini ialah ambang, yang dilaraskan mengikut kecerahan gambar.

Seterusnya, kita boleh melakukan beberapa pemprosesan pengurangan hingar pada imej untuk mengeluarkan bunyi yang mengganggu.

from PIL import ImageFilter

denoised_image = binary_image.filter(ImageFilter.MinFilter)

MinFilter adalah penapis nilai minima yang boleh melicinkan bunyi dalam gambar.

Akhir sekali, kami boleh menyimpan imej yang telah diproses dan memaparkannya:

denoised_image.save('processed_image.jpg')
denoised_image.show()

Di atas adalah langkah-langkah prapemprosesan imej Kami boleh menghantar imej yang telah diproses ke enjin pengecaman fon untuk pengekstrakan teks.

  1. Pengecaman Fon
    Pengecaman fon sangat mudah menggunakan perpustakaan pytesseract. Kami hanya perlu menggunakan imej yang diproses sebagai input dan memanggil fungsi yang sepadan.

    import pytesseract
    
    text = pytesseract.image_to_string(denoised_image, lang='eng')
    print(text)

    Antaranya, denoised_image ialah imej yang diproses dalam langkah sebelumnya, dan parameter lang mewakili bahasa teks yang diiktiraf, yang lalai kepada bahasa Inggeris.

  2. Contoh kod penuh
    Berikut ialah contoh kod Python lengkap untuk pengecaman fon pada gambar:

    from PIL import Image, ImageFilter
    import pytesseract
    
    # 图片预处理
    image = Image.open('image.jpg')
    gray_image = image.convert('L')
    threshold = 150
    binary_image = gray_image.point(lambda p: p > threshold and 255)
    denoised_image = binary_image.filter(ImageFilter.MinFilter)
    denoised_image.save('processed_image.jpg')
    denoised_image.show()
    
    # 字体识别
    text = pytesseract.image_to_string(denoised_image, lang='eng')
    print(text)

Ringkasan
Artikel ini memperkenalkan cara menggunakan Python untuk pengecaman fon pada gambar dan menyediakan contoh kod yang sepadan. Dengan prapemprosesan dan memanggil perpustakaan pytesseract, kami boleh mengekstrak teks dengan mudah dan cepat daripada imej dan melaksanakan pemprosesan teks seterusnya. Pengecaman fon mempunyai prospek aplikasi yang luas dalam aplikasi praktikal Saya harap pengenalan dalam artikel ini akan membantu pembaca.

Atas ialah kandungan terperinci Cara menggunakan Python untuk mengenal pasti fon dalam gambar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn