, поэтому я использую opencv для сопоставления с шаблоном, как показано ниже. Мне постоянно нужно возиться с визуальным сходством #THRESHOLD
, потому что оно иногда не может обнаружить совпадения или возвращает слишком много совпадений. Это метод проб и ошибок, пока он не совпадает ровно с 1 элементом в позиции в документе. Интересно, есть ли способ каким-либо образом автоматизировать это?
Файл image.png представляет собой изображение документа в формате PDF. Файл template.png представляет собой изображение абзаца. Моя цель - найти все параграфы в документе pdf, и я хочу узнать, какая нейронная сеть здесь полезна.
import cv2
import numpy as np
img = cv2.imread("image.png");
gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
template = cv2.imread("template.png", cv2.IMREAD_GRAYSCALE);
w, h = template.shape[::-1]
result = cv2.matchTemplate(gimg, template, cv2.TM_CCOEFF_NORMED)
loc = np.where(result >= 0.36) #THRESHOLD
print(loc)
for pt in zip(*loc[::-1]):
cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0,255,0), 3)
cv2.imwrite("output.png", img)
, поэтому, например, она будет искать каждое значение #THRESHOLD
из 0
на 1.0
и вернуть пороговое значение, которое возвращает совпадение с одним прямоугольником (dr aws зеленое поле выше) на изображении.
Однако я не могу не чувствовать, что это очень исчерпывающе, или Есть ли более разумный способ узнать, что такое пороговое значение?