@maryaTurova

Как Вырезать светлую область?

Уважаемые! Появился вопрос о решении распознавания выделенного текста с картинки.
60c025f2a1c04670334736.png
60c02605efdf8293056453.png
60c0261ad6485397325112.png
Для выделения объекта Попробовал так:
from PIL import Image
image = Image.open('1.png')
mask=image.convert("L")
th=100 # the value has to be adjusted for an image of interest 
mask = mask.point(lambda i: i < th and 250)
mask.save('test.png')

Но результата это не дало, т.к. контрастность бывает разная.
Подскажите каким образом можно вырезать светлую прямоугольную область?И есть ли простой способ для дальнейшего распознавания на ней текста?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
ramzis
@ramzis
FullStackOverflow
Подскажите каким образом можно вырезать светлую прямоугольную область?

Погуглил и сразу нашел)
import cv2
import numpy as np

img = cv2.imread("C:\\Users\\ramas\\Documents\\321.png")

def process(img):
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    _, thresh = cv2.threshold(img_gray, 128, 255, cv2.THRESH_BINARY)
    img_blur = cv2.GaussianBlur(thresh, (5, 5), 2)
    img_canny = cv2.Canny(img_blur, 0, 0)
    return img_canny

def get_contours(img):
    contours, _ = cv2.findContours(process(img), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
    r1, r2 = sorted(contours, key=cv2.contourArea)[-3:-1]
    x, y, w, h = cv2.boundingRect(np.r_[r1, r2])
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
    crop = img[y:y+h, x:x+w]
    cv2.imwrite('result.png', crop)

get_contours(img)
cv2.imshow("img_processed", img)
cv2.waitKey(0)

60c0a9620aae9598186695.png
60c0a97b66628590471684.png

есть ли простой способ для дальнейшего распознавания на ней текста?

Читаем эту простую инструкцию
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
print(pytesseract.image_to_string('result.png'))

и радуемся)
60c0adb9e1be6188985022.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы