Ushbu qo'llanmada biz Python yordamida rasmdan matnni qanday chiqarishni o'rganamiz.
Kirish
Tasvirlardan matnni chiqarish katta kichik biznes (hisob-faktura va kvitansiyalardan ma'lumot olish) va boshqa sohalarda juda keng tarqalgan muaommalardan hisoblanadi.
OCR (Optik belgilarni aniqlash) bu matnlik tasvirlar ichidan matnni ajratib olish usuli hisoblanadi. Bunda dastur tasvirdagi matnlik bloklarni aniqlaydi va ularni huddi kompyuterda terilgan holatda oddiy matn ko'rinishiga keltiradi, keyinchalik uni istalgan maqsad uchun ishlatsangiz bo'ladi.
Ushbu qo'llanmani davom ettirish uchun bizga kerak bo'ladi:
Tesserakt
Ikki Python kutubxonasi:
pytesseract
pillow
Tesseract ochiq manbali OCR (optik belgilarni aniqlash) mexanizmi bo'lib, u tasvirlardan matn ajratib olish imkonini beradi.
Uni Python-da ishlatish uchun bizga Tesseract uchun mo'ljallangan pytesseract kutubxonasi ham kerak bo'ladi.
Tasvirlar bilan ishlayotganimiz uchun bizga Python-ga tasvirni qayta ishlash imkoniyatlarini qo'shadigan pillow kutubxonasi kompyuterimizda o'rnatilgan bo'lishi shart.
Tesseract installer ni o'rnatib oling. Windows uchun Tesseract o'rnatuvchisining so'nggi versiyasini githubda Tesseract ning rasmiy sahifasida topishingiz mumkin. Shunchaki .exe faylini yuklab oling va kompyuteringizga o'rnating.
Agar sizda Python 3 va undan yuqori versiyalari o'rnatilgan bo'lsa u holda PIP paketlar menejeri mavjud bo'ladi va siz ushbu
buyruqlarni Windows CMD ("buyruqlar qatori") da ishga tushirib bu ikkalasini o'rnatib olishingiz mumkin.
pip install pytesseract pip install pillow
Linux yoki MacOS foydalanuvchilari esa :
pip3 install pytesseract pip3 install pillow
Namuna rasmlar
Muammo yechimida davom etish uchun biz ba'zi namuna rasmlarni beramiz.
Ushbu qo'llanmada biz qo'shimcha tasvirni qayta ishlashni talab qilmaydigan gorizontal tekislangan matnli oddiy bir xil fonlik rasmlardan foydalanamiz:
Python yordamida bitta rasmdan matn chiqarishdan boshlaylik.
Ushbu misol uchun biz oldingi bo'limda keltirilgan birinchi rasm bilan ishlaymiz: sampletext1-ocr.png
Mening VS Code da fayllarimning tuzilishi quyidagicha ko'rinadi:
Barcha tasvirlar 'images' papkasida joylashgan va kod main.py da yoziladi.
Bizga kerak bo'lgan rasmga yo'l: images/sampletext1-ocr.png
Bizga kerak bo'lgan yana bir fayl yo'li - o'rnatishdan keyin yaratilgan tessaract.exe yo'lidir. Windowsda u quyidagi manzilda bo'lishi kerak: C:\Program Files\Tesseract-OCR\tesseract.exe
Endi bizda hamma narsa bor va Python yordamida tasvirdan matnni osongina ajratib olishimiz mumkin.
Va natija quyidagidek bo'lishi kerak:
Sample Text 1
Python yordamida bir nechta rasmlardan matnni ajratib oling
Ushbu bo'limda biz Python yordamida bir nechta rasmlardan matnni qanday chiqarishni o'rganamiz.
Biz bilamiz, barcha tasvirlar images papkasida joylashgan va kod main.py da joylashgan
Har bir rasmdan matnni chiqarishning bir usuli har bir rasmning fayl nomlaridan foydalanish va ushbu rasmlardan matnni birma-bir ajratib olishdir.
Ammo papkada 100 ta rasm bo'lsa nima bo'ladi? OS kutubxonasidan foydalanib, biz berilgan katalogdagi barcha fayl nomlariga kirishimiz mumkin.
Rasmlar jildidagi barcha fayl nomlariga kirish huquqiga ega bo'lganimizdan so'ng, biz ularni for tsikli orqali takrorlanishga olamiz va Python yordamida har bir rasmdan matnni chiqaramiz:
Xulosa
Ushbu maqolada biz Python va Tesseract yordamida bitta rasm va bir nechta rasmdan matnni qanday chiqarishni o'rganib chiqdik.
Agar sizda biron bir savol bo'lsa yoki o'zgartirishlar bo'yicha takliflaringiz bo'lsa, pastda fikrlaringizni qoldiring va Python dasturlash bo'yicha ko'proq amaliyot qiling.
+22
+22
+15
+34
+7
+10
+5