HOME/Articles/

pil example Text Detection (snippet)

Article Outline

Python pil example 'Text Detection'

Modules used in program:

  • import pytesseract
  • import tesserocr as tr
  • import numpy as np
  • import cv2

python Text Detection

Python pil example: Text Detection

'''
ตัวโปรเจคนี้จะผสมตัวโมดูล ระหว่าง tesserocr และ pytesseract 

'''
import cv2
import numpy as np
import tesserocr as tr
from PIL import Image
import pytesseract 

img = Image.open('5.png','r')
cv_img = cv2.imread('5.png')

pil_img = Image.fromarray(cv2.cvtColor(cv_img,cv2.COLOR_BGR2RGB))

# print(pil_img)
  #initialize app
api = tr.PyTessBaseAPI()
try:
    api.SetImage(pil_img)
    boxes = api.GetComponentImages(tr.RIL.WORD,True) #point each word(แบ่งเป็นคำๆ)
    # get text
    img_2_text = pytesseract.image_to_string(img)#change img to string (เปลี่ยนจากรูปเป็นตัวหนังสือ)
    ass = img_2_text.split()
    for line in ass: #cut '‘'(ตัดตัวหนังสือจาก array ข้อมูลที่ได้มา)
        if(line == '‘'):
            ass.remove('‘')

    font= cv2.FONT_HERSHEY_SIMPLEX #font charecter (เป็นตัวบอกว่าจะใช้ ฟอนต์ อะไร)
    for i,(im,box,_,_) in enumerate (boxes): #loop
      x,y,w,h = box['x'],box['y'],box['w'],box['h']
      cv2.putText(cv_img,ass[i], (x-3,y-3), font,0.5,(0,0,255),1, cv2.LINE_AA) #echo position font of img (บอกว่าตัวอักษรจะมีสีอะไรและอยู่ที่ตำแหน่งไหนของรูป)
      cv2.rectangle(cv_img, (x,y), (x+w,y+h), color=(0,255,0))#Create rectangle of img (สร้างสี่เหลี่ยมให้กับรูปที่ตรวจจับได้)
finally:
    api.End()

print(ass)
cv2.imshow('output', cv_img) #show img
cv2.imwrite('/Users/lelalomos/Desktop/train/AI/translate/test.jpg',cv_img,) #Save image
print('Save Suscess')
cv2.waitKey(0)
cv2.destroyAllWindows()