субота, 17 квітня 2021 р.

Виділення зв'язних компонент

На бінарному зображенні функцією 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
 

Немає коментарів:

Дописати коментар