Как отобразить несколько контуров, используя python и opencv? - PullRequest
1 голос
/ 18 февраля 2020

Я хочу показать разницу в изображении в виде контура. И я хочу сохранить контур от предыдущего кадра, чтобы он не go отсутствовал, поэтому он обновляется каждый кадр. Например, контур, представляющий разницу между frame1 и frame2, красный, контур различие между frame2 и frame3 показано на видеоизображении синим цветом.

enter image description here

frame2-frame1 = red contour
frame3-frame2 = blue contour

=========================

frame3-frame2= red contour
frame4-frame3 = blue contour

Как изменить код? Спасибо за любой комментарий.

        diff = cv2.absdiff(frame1, frame2)
        img_gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
        ret, img_binary = cv2.threshold(img_gray, 15, 255, 0)
        roi = img_binary[y:y+h+3, x:x+w+10]
        contours, hierarchy = cv2.findContours(roi, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
        cv2.drawContours(frame2, contours, -1, (0, 0, 255), 2, offset=(x,y))  # blue 
        frame1=frame2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...