python ओपनसीवी रिटर्न कीपॉइंट ब्लॉब डिटेक्शन, पायथन से निर्देशांक और क्षेत्र



opencv image-processing (2)

मैंने एक ब्लॉब डिटेक्शन उदाहरण ( cv2.SimpleBlobDetector ) का उपयोग किया और मेरी बाइनरी छवि में सफलतापूर्वक cv2.SimpleBlobDetector का पता लगाया। लेकिन फिर मुझे नहीं पता कि कैसे कुंजीपटल के निर्देशांक और क्षेत्र को निकालना है। ब्लॉब detections के लिए यहाँ कोड हैं:

# 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)

तो चर keypoints_black में ब्लॉब (एस) की जानकारी है जब मैं चर को मुद्रित करता था तो यह इस तरह कुछ देखा (2 blobs पाए गए):

KeyPoint 0x10b10b870, KeyPoint 0x10b1301b0

तो मैं कैसे मुख्य बिंदुओं और उनके क्षेत्र के केंद्र के निर्देशांक प्राप्त कर सकता हूं ताकि मैं उन्हें इंटरैक्शन के लिए ओएससी संदेश भेजूं।


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]

कुछ दस्तावेज़


यदि आपके पास मुख्य बिंदुओं की सूची है फिर आप नीचे दिखाए अनुसार प्रिंट कर सकते हैं

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

संपादित करें: आकार सार्थक कुंजीपेज पड़ोस का व्यास निर्धारित करता है। आप उस आकार का उपयोग कर सकते हैं और मोटे तौर पर ब्लॉब के क्षेत्र की गणना कर सकते हैं।





keypoint