как извлекать метки последовательно с помощью ConnectedComponents? - PullRequest
1 голос
/ 06 мая 2020

Это мое входное изображение:

enter image description here

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

Итак, когда я извлекаю каждую метку, я получаю такую ​​последовательность:

enter image description here

Есть ли другие способы извлечения меток последовательно с помощью ConnectedComponents?

Это мой код:

image = cv2.imread("/Users/server/Documents/Data Teks/Ayah/T11_F1_D5.jpg")

plt.subplot(241)
plt.imshow(image, cmap="gray", vmin=0, vmax=255)
plt.xticks([]), plt.yticks([])
plt.title('Image')

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
t, thresh = cv2.threshold(gray, 105, 255, cv2.THRESH_BINARY_INV, cv2.THRESH_OTSU)

connectivity = 8 
num_labels, label= cv2.connectedComponents(thresh, connectivity)
label = label + 1

thresh = cv2.cvtColor(thresh,cv2.COLOR_GRAY2RGB)

h, w = thresh.shape[:2]
for index in range(1, num_labels):
    mask = np.zeros((h, w), np.uint8)
    mask[label == index + 1] = 1
    obj = thresh * mask[:, :, np.newaxis]
    obj = obj[..., : : -1]

    plt.subplot(1, 7, index)
    plt.imshow(obj)
    plt.xticks([]), plt.yticks([])
    plt.title(index)

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