У меня есть двоичное изображение с контурными линиями, и мне нужно их обнаружить, для этого я попытался очистить каждую контурную линию от всех ненужных пикселей, оставив после себя минимально связанную линию. на этой фотографии: введите описание изображения здесь
мне удалось получить это: введите описание изображения здесь я хочу, чтобы линии счетчика были связаны, но не объединялись с другие контурные линии.
Я использовал этот код:
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()
Может кто-нибудь помочь мне соединить эти линии? Пожалуйста, Маор