Как сохранить только аннотированные части PDF-текста или его изображения? - PullRequest
0 голосов
/ 04 ноября 2018

Я уже создал программу, которая превращает текст PDF в изображение, и я хотел бы сохранить только те части текста, которые заключены в квадратные скобки:

enter image description here

Например, первая часть текста, которую я хочу сохранить, будет:

enter image description here

Я знаю, что могу использовать Image из PIL, а затем функцию .crop(left, upper, right, lower), но я не знаю, как дать ему знать, я хочу часть, в которой есть [ в тексте.

Я знаю эта ссылка может быть полезна, даже если мы извлекаем изображение по цвету. Действительно, они стремятся найти контуры и перебрать. Если они находят 4 угла, они делают еще одну вещь, которая приводит к извлечению текста. Здесь у нас есть 2 угла

Вот часть кода, который я сделал, чтобы получить текст с изображения в формате PDF:

for file_name in file_names:
    # load the image and convert it to grayscale
    image = cv2.imread(file_name)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # check to see if we should apply thresholding to preprocess the
    # image
    if args["preprocess"] == "thresh":
        gray = cv2.threshold(gray, 0, 255,
            cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

    # make a check to see if median blurring should be done to remove
    # noise
    elif args["preprocess"] == "blur":
        gray = cv2.medianBlur(gray, 3)

    # write the grayscale image to disk as a temporary file so we can
    # apply OCR to it
    filename = "{}.png".format(os.getpid())
    cv2.imwrite(filename, gray)

    # load the image as a PIL/Pillow image, apply OCR, and then delete
    # the temporary file
    text = pytesseract.image_to_string(Image.open(filename))
    os.remove(filename)
    #print(text)

    with open('resume.txt', 'a+') as f:
        print('***:', text, file=f)  

1 Ответ

0 голосов
/ 04 декабря 2018

используйте cv2 (pip install opencv-python) для сопоставления с шаблоном или обнаружения блока

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...