неділя, 11 квітня 2021 р.

Знаходження центрів мас контурів

 
def centers_contours(img):
    if len(img.shape)==3:
        img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
        copy=img.copy()
    else:
        img_gray=img
        copy=cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
    threshold1=300
    threshold12=500
    edges=cv2.Canny(img_gray,threshold1,threshold12,apertureSize=5)
    contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    for cont in contours:
        M = cv2.moments(cont)
        if M['m00']>20:# обмеження на площу контура
            cx = int(M['m10']/M['m00'])
            cy = int(M['m01']/M['m00'])
            cv2.circle(copy, (cx,cy), 3, (0,0,255), 3)
    return copy   
Використовуються геометричні моменти,для ігнорування випадкових малих контурів площа контурів обмежується знизу.

Немає коментарів:

Дописати коментар