def detectTemplateMatching(self, img):
self.templateMatchingCurrentTime = cv2.getTickCount()
duration = (self.templateMatchingCurrentTime - self.templateMatchingStartTime)/cv2.getTickFrequency()
if duration > settings.templateMatchingDuration or self.trackedFaceTemplate[2] == 0 or self.trackedFaceTemplate[3] == 0:
self.foundFace = False
self.isTemplateMatchingRunning = False
return
faceTemplate = self.getSubRect(img, self.trackedFaceTemplate)
roi = self.getSubRect(img, self.trackedFaceROI)
match = cv2.matchTemplate(roi, faceTemplate, cv2.TM_SQDIFF_NORMED)
cv2.normalize(match, match, 0, 1, cv2.NORM_MINMAX, -1)
minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(match)
foundTemplate = (
minLoc[0] + self.trackedFaceROI[0],
minLoc[1] + self.trackedFaceROI[1],
self.trackedFaceTemplate[2],
self.trackedFaceTemplate[3])
self.trackedFaceTemplate = foundTemplate
self.trackedFace = self.scaleRect(self.trackedFaceTemplate, img, 2)
self.trackedFaceROI = self.scaleRect(self.trackedFace, img, 2)
评论列表
文章目录