#python #image-processing #ocr #python-tesseract
#python #обработка изображений #ocr #python-тессеракт
Вопрос:
Я использую pytesseract для определения отдельных символов на изображении. Я использую image_to_boxes
функцию, которая предоставляет мне символ и координаты. Однако мне нужно обрезать отдельные символы в отдельные файлы изображений. В настоящее время приведенный ниже код создаст ограничительную рамку, однако мне нужно, чтобы она обрезала символы и сохранила их в отдельные файлы изображений для каждого символа.
filename = 'image.png'
# read the image and get the dimensions
img = cv2.imread(filename)
h, w, _ = img.shape # assumes color image
# run tesseract, returning the bounding boxes
boxes = pytesseract.image_to_boxes(img)
# draw the bounding boxes on the image
for b in boxes.splitlines():
b = b.split(' ')
img = cv2.rectangle(img, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 2)
Ответ №1:
Вы можете использовать pillow's crop
функцию:
from PIL import Image
img = Image.open("samp.png")
text = pytesseract.image_to_boxes(img).split("n")
for i in text:
if i:
(left, upper, right, lower) = list(map(int, i.split(" ")[1:-1]))
im_crop = img.crop((left, upper, right, lower))
plt.imshow(im_crop)
plt.show()
или
roi = img[lower:upper, left:right]