python easyocr отрисовка рамки вокруг распознанного текста при помощи opencv
Код получает на вход изображение с текстом и с помощью easyocr распознаёт текст распознанный текст должен на изображении выделяться рамкой и отображаться через opencv.
import easyocr
import cv2
reader = easyocr.Reader(['ru','en'])
result = reader.readtext('image.png')
#print(result)
img = cv2.imread("image.png")
for word in result:
word_box = word[1]
cv2.rectangle(img, (word_box[0], word_box[1]), (word_box[2], word_box[3]), (255, 0, 0), 2)
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyWindow()
Выделение текста в рамку выдаёт такую ошибку:
Traceback (most recent call last):
File "/home/alex/Документы/ocr.py", line 20, in <module>
cv2.rectangle(img, (word_box[0], word_box[1]), (word_box[2], word_box[3]), (255, 0, 0), 2)
cv2.error: OpenCV(4.7.0) :-1: error: (-5:Bad argument) in function 'rectangle'
Буду очень благодарен если кто-нибудь поможет исправить.
Ответы (1 шт):
Автор решения: rossicusa
→ Ссылка
Можно использовать следующий код:
import easyocr
import cv2
reader = easyocr.Reader(['ru','en'])
result = reader.readtext('image.png')
#print(result)
img = cv2.imread("image.png")
for (coord, text, prob) in result:
(topleft, topright, bottomright, bottomleft) = coord
tx, ty = (int(topleft[0]), int(topleft[1]))
bx, by = (int(bottomright[0]), int(bottomright[1]))
cv2.rectangle(img, (tx, ty), (bx, by), (255, 0, 0), 2)
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyWindow()