【发布时间】:2017-08-25 16:06:44
【问题描述】:
我已经捕获了视频的每一帧。然后我使用背景减法来消除背景。现在我有了带有边界框的人。我必须将这个人的颜色特征与他的特征进行比较另一个视频中的同一个人。该人将在每个视频中穿着相同的衣服。 我正在 opencv 2.4 和 python 2.7
中开发这个这里是我使用的背景减法代码:
import numpy as np
import cv2
cap = cv2.VideoCapture('test.mp4')
fgbg = cv2.BackgroundSubtractorMOG()
j=0
count = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))
while j<count:
ret, frame = cap.read()
cmask = fgbg.apply(frame)
fgmask = cmask.copy()
floodfill =cmask.copy()
(cnts, _) = cv2.findContours(cmask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnts = sorted(cnts, key = cv2.contourArea, reverse = True)
if(len(cnts)!=0):
h, w = floodfill.shape[:2]
mask = np.zeros((h+2, w+2), np.uint8)
cv2.floodFill(floodfill, mask, (0,0), 255)
floodfill_inv = cv2.bitwise_not(floodfill)
fgmask=fgmask|floodfill_inv
# screenCnt = None
print "K="+str(j)
j+=1
for cnt in cnts:
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(fgmask,(x,y),(x+w,y+h),255,4)
if(len(cnts)!=0):
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
有什么方法可以根据颜色比较对象吗?
我没有使用人脸识别,因为我没有视频中的人的照片
任何帮助将不胜感激
【问题讨论】:
-
你见过this吗?
-
另外,如果你有一个帧的颜色,并且你想在另一个帧中匹配相同的颜色,不是很简单吗?
标签: python python-2.7 opencv image-processing