Home › Fóruns › Fórum Detecção de Objetos com YOLO, Darknet, OpenCV e Python › Resultados da segmentação › Responder a: Resultados da segmentação
Boa noite,
Estou fazendo o curso e me deparei com este mesmo problema, mas antes de vir ao fórum, submeti o código ao ChatGPT e ele deu a seguinte solução em um novo código desenhando a máscara manualmente. Testei com a foto do gato no jardim e funcionou, porém não fez a segmentação de parte do guarda chuva que tem na imagem.
Por enquanto não vou seguir na melhora do código sugerido pelo chat, se alguém quiser continuar o desenvolvimento, segue abaixo:
import numpy as np
import cv2
# Processa os resultados da predição
resultados = model_seg.predict(source=img, conf=0.6)
result = resultados[0]
# Obtém máscaras e caixas delimitadoras
masks = result.masks.data.cpu().numpy() # Máscaras
boxes = result.boxes.data.cpu().numpy() # Caixas delimitadoras
# Aplica máscaras na imagem
for mask in masks:
# Redimensiona a máscara para as dimensões da imagem original
mask_resized = cv2.resize(mask, (img.shape[1], img.shape[0]), interpolation=cv2.INTER_NEAREST)
mask_binary = (mask_resized > 0.5).astype(np.uint8) * 255 # Binariza a máscara
color = (0, 255, 0) # Cor da máscara (verde, no exemplo)
# Cria um overlay colorido
mask_overlay = np.zeros_like(img, dtype=np.uint8)
mask_overlay[mask_binary == 255] = color
# Combina a máscara com a imagem original (transparência)
alpha = 0.5 # Transparência
img = cv2.addWeighted(img, 1 – alpha, mask_overlay, alpha, 0)
# Desenha as caixas delimitadoras na imagem
resultado_img = funcoes_desenho.desenha_caixas(img, boxes)
mostrar(resultado_img)