Как считать, если центроид (cv2.circle) пересекает линию (cv2.line) - PullRequest
0 голосов
/ 26 апреля 2020

Это код ниже.

while True:
ret, frame = cap.read()
frame = cv2.resize(frame,None,fx=scaling_factorx,fy=scaling_factory,interpolation=cv2.INTER_AREA)
imgray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
fgmask1 = cv2.GaussianBlur(imgray, (7,7), 0)

fgmask = fgbg.apply(fgmask1)

contours, hierarchy = cv2.findContours(fgmask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

try:
    hierarchy = hierarchy[0]
except:
    hierarchy = []

for contour, hier in zip(contours, hierarchy):
    (x, y, w, h) = cv2.boundingRect(contour)
    if w > 80 and h > 80:
        cv2.rectangle(frame, (x,y), (x+w,y+h), (0, 255, 0), 2)

        #to find centroid
        x1=w/2
        y1=h/2
        cx=x+x1
        cy=y+y1
        centroid = (cx,cy)

        cv2.circle(frame,(int(cx),int(cy)),1,(0,0,255),2)
if point1 and point2:
        cv2.line(frame, point1, point2, (0, 255, 0), 3)

Я могу создать прямоугольники, центроид (круг) и линию после этого, я хочу считать, что если центроид пересекает линию. Не могли бы вы дать мне знать, как это сделать.

...