Как разделить по цветам или слоям после сегментации с помощью k-средних? - PullRequest
0 голосов
/ 30 мая 2020

Я новичок в Python, и в настоящее время я запускаю проект автоматической c сегментации для ствола дерева в неконтролируемой среде. Мой вопрос: после того, как я сегментировал изображение, мне просто нужно отсоединить ствол, но как мне это сделать? Я пробовал поискать способы сделать это в Google, но пока не могу это исправить. Буду очень признателен за ваш ответ.

import cv2
import numpy as np
import matplotlib.pyplot as plt

image = cv2.imread("C:/Database/tallo_palto/tallo_palto_14.jpeg")
res = cv2.resize(image, dsize=(449, 800), interpolation=cv2.INTER_CUBIC)
gau = cv2.GaussianBlur(res, (5, 5), 0)
img = cv2.cvtColor(gau, cv2.COLOR_BGR2RGB)
lab = cv2.cvtColor(img, cv2.COLOR_RGB2LAB)

pixel_values = lab.reshape((-1, 3))
pixel_values = np.float32(pixel_values)

criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
k = 10
_, labels, (centers) = cv2.kmeans(pixel_values, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
centers = np.uint8(centers)
labels = labels.flatten()
segmented_image = centers[labels.flatten()]
segmented_image = segmented_image.reshape(lab.shape)


cv2.imshow('original image',img)
cv2.imshow('segmented',segmented_image)
cv2.waitKey(0)

введите описание изображения здесь введите описание изображения здесь

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