Перед запуском оптического распознавания символов я хочу автоматически проверять, обрабатывается ли PDF-файл (преобразованный в изображения) на основе показателей качества изображения.
В частности, я хочу рассчитать и применить пороговые значения для:
Размытие – как измерить резкость изображения (например, с использованием дисперсии Лапласа) и какой диапазон значений приемлем для хорошей работы pytesseract?
Шум — как обнаружить и количественно оценить процент шума в изображении?
Контраст — как измерить уровень контраста между текстом и фоном и каков хороший порог для читаемого текста?
Поворот (перекос) — как обнаружить и исправить угол текста, и в какой степени мне следует рассматривать изображение невозможно обработать?
Мне также хотелось бы знать рекомендуемые пороговые значения (приблизительные значения), которые считаются «достаточно хорошими» для того, чтобы pytesseract мог точно извлекать текст.
Вот чем я сейчас занимаюсь:
Код: Выделить всё
from pdf2image import convert_from_path
import cv2
import numpy as np
pages = convert_from_path("sample.pdf", dpi=300)
for page in pages:
img = np.array(page)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Example blur detection
blur_value = cv2.Laplacian(gray, cv2.CV_64F).var()
print("Blur Value:", blur_value)
Практические пороговые значения для этих показателей.
Надежные методы (на основе OpenCV или NumPy) для расчета каждого из них.
Информация от всех, кто внедрил предварительную проверку качества оптического распознавания символов перед pytesseract.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... fore-passi