Найти контуры таблицы - PullRequest
       1

Найти контуры таблицы

0 голосов
/ 19 ноября 2018

Я пытался обрезать таблицу по изображению, поэтому я использовал контуры, чтобы найти границу таблицы, а затем обрезать ее.

Код, который я использую:

    import cv2
    import matplotlib.pyplot as plt

    def contours(img):
        """
        Returns a list of contours.
        """
        img2 = img.copy()
        binary = cv2.Canny(img, 10, 10)
        im2, contours, hierarchy = 
        cv2.findContours(binary,cv2.cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
        return contours,hierarchy


    def plot(img):
        plt.figure(figsize=(25,25))
        plt.imshow(img)
        plt.show()


    img = cv2.imread('door1.jpg')
    img = cv2.resize(img,(1780, 1240))
    conts,hie=contours(img)

    bbox = []
    img_area = img.shape[0] * img.shape[1]
    for i, cnt in enumerate(conts):
        bb = cv2.boundingRect(cnt)
        area = bb[2]*bb[3]

        if (area > img_area / 50):
            bbox.append(bb)
            print(bb[1],bb[1]+bb[3],bb[0],bb[2]+bb[0])
            plot(img[bb[1]:bb[1]+bb[3],bb[0]:bb[2]+bb[0]])

ИзображениеЯ работаю над (размер изображения превышает 2 МБ, поэтому я предоставил ссылку на диск Google): https://drive.google.com/open?id=1StRrYsBSZrTQo1jQJzs6D9tK771R5le_

Обрезанные изображения, которые я могу получить: (1) (2) (3) (4)

2-е обрезанное изображение содержит таблицу, но оно также дает дополнительную область, и я хочу обрезать толькостол.Количество обрезанных изображений на выходе не является проблемой, просто одно из них должно быть таблицей.Я новичок в обработке изображений и не знаю, как решить эту проблему.

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