Как определить координаты каждой из ячеек, используя двоичное изображение границ ячеек, используя OpenCV? - PullRequest
0 голосов
/ 15 июня 2019

У меня есть это изображение с несколькими таблицами в нем. Границы таблиц белые, а остальное изображение черное. Я хочу найти координаты (внизу справа и вверху слева) каждой ячейки на этом изображении. Изображение это https://imgur.com/IxNXuVv. Я попытался использовать функцию OpenCV для FindContour, но она не сработала, и я получил следующие результаты, когда замаскировал ее с исходным изображением. https://imgur.com/LiANMS2 и https://imgur.com/nGwF56C

import numpy as np
import cv2
from PIL import Image
im = cv2.imread('binary_image.png', 0)
original = cv2.imread('original.jpg')
cnts, hierarcy = 
cv2.findContours(im,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
i = 0
for cnt in cnts:
    test = np.zeros(im.shape)
    cv2.drawContours(test, cnts, i, (255,255,255), 3)
    x, y, w, h = cv2.boundingRect(cnt)
    img_close_var = max(w,h) + 10 
    se = np.ones((img_close_var,img_close_var), dtype='uint8')
    mask = cv2.morphologyEx(test, cv2.MORPH_CLOSE, se)
    mask = mask.astype(np.uint8)
    output = cv2.bitwise_and(original, original, mask = mask)
    cv2.imwrite(str(i) + '.png',output)
    i = i + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...