Skip to content

Instantly share code, notes, and snippets.

@mldeveloper01
Forked from Lukse/detect.py
Created November 1, 2017 08:28
Show Gist options
  • Select an option

  • Save mldeveloper01/3fd9bb63c1d1d4e042c5a97b5388a79b to your computer and use it in GitHub Desktop.

Select an option

Save mldeveloper01/3fd9bb63c1d1d4e042c5a97b5388a79b to your computer and use it in GitHub Desktop.

Revisions

  1. @Lukse Lukse revised this gist Jul 24, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion detect.py
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,7 @@
    params.filterByInertia = True
    params.minInertiaRatio = 0.8

    # distance
    # Distance Between Blobs
    params.minDistBetweenBlobs = 200

    # Create a detector with the parameters
  2. @Lukse Lukse revised this gist Jul 24, 2016. 1 changed file with 0 additions and 3 deletions.
    3 changes: 0 additions & 3 deletions detect.py
    Original file line number Diff line number Diff line change
    @@ -29,11 +29,8 @@
    params.minDistBetweenBlobs = 200

    # Create a detector with the parameters
    #detector = cv2.SimpleBlobDetector(params)
    detector = cv2.SimpleBlobDetector_create(params)
    # ----------------------------------------------

    retval, im = camera.read()
    while camera.isOpened():

    retval, im = camera.read()
  3. @Lukse Lukse created this gist Jul 24, 2016.
    60 changes: 60 additions & 0 deletions detect.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@
    import cv2
    import sys
    import numpy as np

    camera = cv2.VideoCapture("video.avi")

    # Setup BlobDetector
    detector = cv2.SimpleBlobDetector_create()
    params = cv2.SimpleBlobDetector_Params()

    # Filter by Area.
    params.filterByArea = True
    params.minArea = 20000
    params.maxArea = 40000

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

    # Filter by Convexity
    params.filterByConvexity = False
    #params.minConvexity = 0.87

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

    # distance
    params.minDistBetweenBlobs = 200

    # Create a detector with the parameters
    #detector = cv2.SimpleBlobDetector(params)
    detector = cv2.SimpleBlobDetector_create(params)
    # ----------------------------------------------

    retval, im = camera.read()
    while camera.isOpened():

    retval, im = camera.read()
    overlay = im.copy()

    keypoints = detector.detect(im)
    for k in keypoints:
    cv2.circle(overlay, (int(k.pt[0]), int(k.pt[1])), int(k.size/2), (0, 0, 255), -1)
    cv2.line(overlay, (int(k.pt[0])-20, int(k.pt[1])), (int(k.pt[0])+20, int(k.pt[1])), (0,0,0), 3)
    cv2.line(overlay, (int(k.pt[0]), int(k.pt[1])-20), (int(k.pt[0]), int(k.pt[1])+20), (0,0,0), 3)

    opacity = 0.5
    cv2.addWeighted(overlay, opacity, im, 1 - opacity, 0, im)

    # Uncomment to resize to fit output window if needed
    #im = cv2.resize(im, None,fx=0.5, fy=0.5, interpolation = cv2.INTER_CUBIC)
    cv2.imshow("Output", im)

    k = cv2.waitKey(1) & 0xff
    if k == 27:
    break

    camera.release()
    cv2.destroyAllWindows()