У меня разные типы файлов накладных, я хочу найти таблицу в каждом файле накладной. В этой таблице положение не является постоянным. Итак, я иду на обработку изображений. Сначала я попытался преобразовать свой счет в изображение, затем я нашел контур, основанный на границах таблицы. Наконец, я могу определить положение таблицы. Для задачи я использовал приведенный ниже код.
with Image(page) as page_image:
page_image.alpha_channel = False #eliminates transperancy
img_buffer=np.asarray(bytearray(page_image.make_blob()), dtype=np.uint8)
img = cv2.imdecode(img_buffer, cv2.IMREAD_UNCHANGED)
ret, thresh = cv2.threshold(img, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
margin=[]
for contour in contours:
# get rectangle bounding contour
[x, y, w, h] = cv2.boundingRect(contour)
# Don't plot small false positives that aren't text
if (w >thresh1 and h> thresh2):
margin.append([x, y, x + w, y + h])
#data cleanup on margin to extract required position values.
В этом коде thresh1
, thresh2
я буду обновляться на основе файла.
Таким образом, используя этот код, я могу успешно читать позиции таблиц на изображениях, используя эту позицию, я буду работать с моим PDF файлом счета. Например,
Образец 1:
Образец 2:
Выход:
Образец 1:
Образец 2:
Образец 3:
Но теперь у меня есть новый формат, у которого нет границ, кроме таблицы. Как это решить? Потому что вся моя работа зависит только от границ таблиц. Но сейчас у меня нет границ таблицы. Как мне этого добиться? Я понятия не имею, чтобы выйти из этой проблемы. У меня вопрос, есть ли способ найти позицию, основанную на структуре таблицы?
Например, моя проблема ввода выглядит следующим образом:
Я хотел бы найти свою позицию, как показано ниже:
Как я могу решить это? Это действительно заметно, чтобы дать мне идею решить проблему.
Заранее спасибо.