обнаружение контурных линий в размытом изображении - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть двоичное изображение с контурными линиями, и мне нужно их обнаружить, для этого я попытался очистить каждую контурную линию от всех ненужных пикселей, оставив после себя минимально связанную линию. на этой фотографии: введите описание изображения здесь

мне удалось получить это: введите описание изображения здесь я хочу, чтобы линии счетчика были связаны, но не объединялись с другие контурные линии.

Я использовал этот код:

    import cv2
import numpy as np

img = cv2.imread('map4.jpg')
cv2.imshow('before', img)
cv2.waitKey()
white = 255
black = 0
img = cv2.bitwise_not(img)
ret, img = cv2.threshold(img, 127, 255, 0)
for row_index in range(len(img)):
    for column_index in range(len(img[row_index])):
        if white in img[row_index][column_index]:
            try:
                if ((white in img[row_index][column_index + 1]) and (black in img[row_index][column_index + 4])) or (
                        (white in img[row_index + 1][column_index]) and (black in img[row_index + 4][column_index])):
                    img[row_index][column_index] = np.array([black, black, black])
            except:
                pass

kernel = np.ones((3, 3), np.uint8)
img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
cv2.imshow('after', img)
cv2.waitKey()

Может кто-нибудь помочь мне соединить эти линии? Пожалуйста, Маор

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