Извлечение нескольких табличных данных из изображения в python - PullRequest
0 голосов
/ 26 марта 2020

Я хочу извлечь несколько табличных данных из изображения .tif и сохранить их в формате Excel CSV. Я просто хочу несколько данных таблицы и пропустить оставшиеся данные из изображения. Ниже приведен код, который я пробовал, но он не может этого сделать.

В настоящее время я использую Python 3.7 версию, IDE - Pycharm

#import libraries
import cv2
import numpy as np
import pytesseract


#ENTER THE TESSERACT FILE PATH
pytesseract.pytesseract.tesseract_cmd = r"C:\Users\VS\AppData\Local\Tesseract-OCR\tesseract.exe"

#ENTER THE FILE PATH OF IMAGE
file = r"C:\Users\VS\Desktop\testImg.tif"

#load image
im1 = cv2.imread(file, 0)
im = cv2.imread(file)

#Set the threshold for separating object from background
ret, thresh_value = cv2.threshold(im1, 180, 255, cv2.THRESH_BINARY_INV)

kernel = np.ones((5, 5), np.uint8)
#dilation is used for increasing object area and joining broken parts of object
dilated_value = cv2.dilate(thresh_value, kernel, iterations=1)

contours, hierarchy = cv2.findContours(dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cordinates = []
for cnt in contours:
    x, y, w, h = cv2.boundingRect(cnt)
    cordinates.append((x, y, w, h))
    # bounding the images
    if y < 50:
        cv2.rectangle(im, (x, y), (x + w, y + h), (0, 0, 255), 1)

cv2.namedWindow('detecttable', cv2.WINDOW_NORMAL)

#save the processed image with new name
cv2.imwrite('tableData.png', im)

#read the new image file
img = cv2.imread('tableData.png')

#convert image to text
text = pytesseract.image_to_string(img, lang='eng')

#open the csv file and write the text in it
file = open("ImageText.csv", "a")
file.write(text)
file.write("\n")
file.close()

Ниже приведены изображения.

Образец 1: enter image description here

Образец 2: enter image description here

Ниже ссылка на чертежный файл:

https://ecat.aptiv.com/docs/default-source/ecatalog-documents/13968848_cus01_s01-tif.tif?Status=Master&sfvrsn=efc3eb21_0

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