Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import argparse
- import cv2
- # construct the argument parser and parse the arguments
- ap = argparse.ArgumentParser()
- ap.add_argument("-i", "--image", required = True, help = "Path to the image")
- args = vars(ap.parse_args())
- image = cv2.imread(args["image"])
- output = image.copy()
- image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
- clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
- cl1 = clahe.apply(image)
- cl1 = cv2.medianBlur(cl1,5)
- # detect circles in the image
- circles = cv2.HoughCircles(cl1, cv2.cv.CV_HOUGH_GRADIENT, 1.8, 75)
- # ensure at least some circles were found
- if circles is not None:
- # convert the (x, y) coordinates and radius of the circles to integers
- circles = np.round(circles[0, :]).astype("int")
- # loop over the (x, y) coordinates and radius of the circles
- for (x, y, r) in circles:
- # draw the circle in the output image, then draw a rectangle
- # corresponding to the center of the circle
- cv2.circle(output, (x, y), r, (0, 255, 0), 4)
- cv2.rectangle(output, (x - 5, y - 5), (x + 5, y + 5), (0, 128, 255), -1)
- # show the output image
- cv2.imshow("output", output)
- cv2.imshow("cl1",cl1)
- cv2.waitKey(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement