una tutorial pixeles objetos momentos medir los imagen filtros español deteccion contornos con acceder python opencv image-processing blob keypoint

python - tutorial - momentos en opencv



OpenCV devuelve coordenadas de puntos clave y área desde la detección de blobs, Python (2)

La propiedad pt :

keypoints = detector.detect(frame) #list of blobs keypoints x = keypoints[i].pt[0] #i is the index of the blob you want to get the position y = keypoints[i].pt[1]

Alguna documentación

Seguí un ejemplo de detección de blobs (usando cv2.SimpleBlobDetector ) y detecté con éxito los blobs en mi imagen binaria. Pero entonces no sé cómo extraer las coordenadas y el área de los puntos clave. Aquí está el código para las detecciones de blobs:

# I skipped the parameter setting part. blobParams = cv2.SimpleBlobDetector_Params() blobVer = (cv2.__version__).split(''.'') if int(blobVer[0]) < 3: detector = cv2.SimpleBlobDetector(blobParams) else: detector = cv2.SimpleBlobDetector_create(blobParams) # Detect Blobs keypoints_black = detector.detect(255-black_blob) trans_blobs = cv2.drawKeypoints(gray_video_crop, / keypoints_white, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

Entonces, la variable keypoints_black contiene la información de la (s) burbuja (s). Cuando imprimí la variable se veía algo como esto (se encontraron 2 blobs):

KeyPoint 0x10b10b870, KeyPoint 0x10b1301b0

Entonces, ¿cómo obtener las coordenadas del centro de masa de los puntos clave y su área para que pueda enviarlos como mensajes osc para la interacción.


Si tiene una lista de puntos clave. Luego puede imprimir como se muestra a continuación

for keyPoint in keyPoints: x = keyPoint.pt[0] y = keyPoint.pt[1] s = keyPoint.size

Editar: El tamaño determina el diámetro del vecindario con punto clave significativo. Puede usar ese tamaño y calcular aproximadamente el área del blob.