首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在学习一个Opencv教程,但是我不确定cv2.absdiff(frame1,frame2)的用途,这是什么目的?

我正在学习一个Opencv教程,但是我不确定cv2.absdiff(frame1,frame2)的用途,这是什么目的?
EN

Stack Overflow用户
提问于 2020-06-21 06:03:54
回答 1查看 139关注 0票数 0

(初学者)代码如下:

代码语言:javascript
运行
复制
    import cv2
import numpy as np

cap = cv2.VideoCapture('vtest.avi')

ret, frame1 = cap.read()
ret, frame2 = cap.read()


while cap.isOpened():
    diff = cv2.absdiff(frame1, frame2)
    gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
    blur = cv2.GaussianBlur(gray, (5,5), 0)
    _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
    dilate = cv2.dilate(thresh, None, iterations=3)
    contour, _ = cv2.findContours(dilate, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    cv2.drawContours(frame1, contour, -1, (0, 255, 0), 2)


    cv2.imshow('feed', frame1)

    frame1 = frame2
    ret, frame2 = cap.read()


    if cv2.waitKey(40) == 27:
        break

cv2.destroyAllWindows()
cap.release()

cv2.absdiff(frame1,frame2)有什么意义?frame1和frame2不是一样的吗?另外,frame1 = frame2的用途是什么?

可以在此video的5:35:01看到结果

EN

回答 1

Stack Overflow用户

发布于 2020-06-21 06:30:41

cv2.absdiff(frame1, frame2)用于比较两个帧,当前帧和前一帧。你可以从这里获得参考:http://www.robindavid.fr/opencv-tutorial/chapter10-movement-detection-with-background.html

在这个阶段,frame1 = frame2是不一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62492235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档