🎇 지난 시간에 이어서, find_ball node를 분석해 보겠습니다. 🎇

    params = cv2.SimpleBlobDetector_Params()

    # Change thresholds
    params.minThreshold = 0
    params.maxThreshold = 200

    # Filter by Area.
    params.filterByArea = True
    params.minArea = 2000
    params.maxArea = 70000  # 640 * 480 = 307,200

    # Filter by Circularity
    params.filterByCircularity = True
    params.minCircularity = 0.1

    # Filter by Convexity
    params.filterByConvexity = True
    params.minConvexity = 0.2

    # Filter by Inertia
    params.filterByInertia = True
    params.minInertiaRatio = 0.7

    rospy.init_node("blob_detector", anonymous=True)
    ic = BlobDetector(green_min, green_max, blur, params, detection_window)

Blob Detection Using OpenCV ( Python, C++ )

이 매개변수들을, cv2.SimpleBlobDetector_create에게 넘겨주면, 픽셀 연산을 거쳐 keypoints(특징점)를 반환합니다. 이 특징점이 바로 우리가 추적하고자 하는 물체의 이미지상에서 위치가 되지요.

		#- Apply blob detection
    detector = cv2.SimpleBlobDetector_create(params)

    # Reverse the mask: blobs are black on white
    reversemask = 255-mask
    
    if imshow:
        cv2.imshow("Reverse Mask", reversemask)
        cv2.waitKey(0)
        
    keypoints = detector.detect(reversemask)

    return keypoints, reversemask

image_blob 토픽입니다.