На бінарному зображенні функцією cv2.connectedComponents виділяються всі 8-зв'язні компоненти і потім розмальовуються у випадковий колір
import random
ret, labels = cv2.connectedComponents(img)
mask = np.array(labels, dtype=np.uint8)
mask=cv2.cvtColor(mask,cv2.COLOR_GRAY2RGB)
for label in range(1,ret):
mask1=mask
mask1[labels == label] = [ random.randint(0,255),random.randint(0,255),random.randint(0,255)]
mask=mask+mask1
Максимальна зв'язна компонента
def max_connected_component(img):
mask=np.full(img.shape[0:2], 0, np.uint8)
_, labels,stats, _ = cv2.connectedComponentsWithStats(opening,connectivity=8)
mask[labels == np.argmax(stats[1:, -1])+1]=255
return mask
Немає коментарів:
Дописати коментар