Python 使用opencv的背景减法视频中未显示边界框
这是我的代码,我试图在视频中的轮廓周围画一个方框,在这个例子中是多个行人行走。根本没有显示任何框,我是不是在某个地方犯了一个简单的错误?缩进错误。检测到的轮廓的边界框图形以及显示结果不在Python 使用opencv的背景减法视频中未显示边界框,python,opencv,image-processing,video-processing,Python,Opencv,Image Processing,Video Processing,这是我的代码,我试图在视频中的轮廓周围画一个方框,在这个例子中是多个行人行走。根本没有显示任何框,我是不是在某个地方犯了一个简单的错误?缩进错误。检测到的轮廓的边界框图形以及显示结果不在while循环中。因此,您只是在帧中读取,查找这些帧的轮廓,而不是在显示窗口中显示它们。 你需要这样做的帧更新,因为你正在阅读视频 将while循环和后面的前5行移到缩进级别0: import numpy as np import cv2 as cv cap = cv.VideoCapture("walking"
while
循环中。因此,您只是在帧中读取,查找这些帧的轮廓,而不是在显示窗口中显示它们。
你需要这样做的帧更新,因为你正在阅读视频
将while
循环和后面的前5行移到缩进级别0:
import numpy as np
import cv2 as cv
cap = cv.VideoCapture("walking")
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE,(3,3))
fgbg = cv.bgsegm.createBackgroundSubtractorGMG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
fgmask = cv.morphologyEx(fgmask, cv.MORPH_OPEN, kernel)
im2, contours, hierarchy = cv.findContours(fgmask, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(fgmask, contours, -1, (0,255,0), 3)
if len(contours) > 0:
for count in contours:
x,y,w,h = cv.boundingRect(count)
cv.rectangle(fgmask,(x,y),(x+w,y+h),(0,255,0),2)
cv.imshow('frame',fgmask)
cv.imshow("stan",frame)
k = cv.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv.destroyAllWindows()
import numpy as np
import cv2 as cv
cap = cv.VideoCapture("walking")
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE,(3,3))
fgbg = cv.bgsegm.createBackgroundSubtractorGMG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
fgmask = cv.morphologyEx(fgmask, cv.MORPH_OPEN, kernel)
im2, contours, hierarchy = cv.findContours(fgmask, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(fgmask, contours, -1, (0,255,0),
if len(contours) > 0:
for count in contours:
x,y,w,h = cv.boundingRect(count)
cv.rectangle(fgmask,(x,y),(x+w,y+h),(0,255,0),2)
cv.imshow('frame',fgmask)
cv.imshow("stan",frame)
k = cv.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv.destroyAllWindows()