[Python] Detecting colored circle and it's center using OpenCV

Discussão em 'Python' iniciado por Stack, Setembro 6, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to detect BLUE colored CIRCLE and it's CENTER. Then draw a circle on the detected circle and a very small circle on it's center. But I get a few errors. (I am using OpenCV 3.1.0, Python 2.7 Anaconda 64 bits, PyCharm as an IDE) (Please help me using python codes) I run the following code:

    import cv2
    import numpy as np

    cap = cv2.VideoCapture(0)
    if cap.isOpened():
    while(True):
    frame, _ = cap.read()
    # blurring the frame that's captured
    frame_gau_blur = cv2.GaussianBlur(frame, (3, 3), 0)
    # converting BGR to HSV
    hsv = cv2.cvtColor(frame_gau_blur, cv2.COLOR_BGR2HSV)
    # the range of blue color in HSV
    lower_blue = np.array([110, 50, 50])
    higher_blue = np.array([130, 255, 255])
    # getting the range of blue color in frame
    blue_range = cv2.inRange(hsv, lower_blue, higher_blue)
    # getting the V channel which is the gray channel
    blue_s_gray = blue_range[::2]
    # applying HoughCircles
    circles = cv2.HoughCircles(blue_s_gray, cv2.HOUGH_GRADIENT, 1, 10, 100, 30, 5, 50)
    circles = np.uint16(np.around(circles))
    for i in circles[0,:]:
    # drawing on detected circle and its center
    cv2.circle(frame,(i[0],i[1]),i[2],(0,255,0),2)
    cv2.circle(frame,(i[0],i[1]),2,(0,0,255),3)
    cv2.imshow('circles', frame)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
    break
    cv2.destroyAllWindows()
    else:
    print "Can't find camera"


    The error I get when I run the code is:


    OpenCV Error: Assertion failed (depth == CV_8U || depth == CV_16U || depth == CV_32F) in cv::cvtColor, file C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\imgproc\src\color.cpp, line 7935 Traceback (most recent call last): File "C:/Users/Meliodas/PycharmProjects/OpenCV_By_Examples/code_tester.py", line 11, in hsv = cv2.cvtColor(frame_gau_blur, cv2.COLOR_BGR2HSV) cv2.error: C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\imgproc\src\color.cpp:7935: error: (-215) depth == CV_8U || depth == CV_16U || depth == CV_32F in function cv::cvtColor Thanks a lot in advance for your help!
    ​

    Continue reading...

Compartilhe esta Página