Image processing - fill in hollow circles

前端 未结 3 1079
你的背包
你的背包 2021-01-22 04:03

I have a binary black and white images that looks like this

I want to fill in those white circles to be solid white disks. How can I do this in Python

3条回答
  •  自闭症患者
    2021-01-22 04:43

    I don't know skimage but if you'd use OpenCv, I would do a Hough transform for circles, and then just draw them over.

    Hough Transform is robust, if there are some small holes in the circles that is no problem.

    Something like:

    circles = cv2.HoughCircles(gray, cv2.cv.CV_HOUGH_GRADIENT, 1.2, 100)
    
    # 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
        # you can check size etc here.
        for (x, y, r) in circles:
            # draw the circle in the output image
            # you can fill here.
            cv2.circle(output, (x, y), r, (0, 255, 0), 4)
    
        # show the output image
        cv2.imshow("output", np.hstack([image, output]))
        cv2.waitKey(0)
    

    See more info here: https://www.pyimagesearch.com/2014/07/21/detecting-circles-images-using-opencv-hough-circles/

提交回复
热议问题