motion_detector.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:Home-Security 作者: gaborvecsei 项目源码 文件源码
def detect(self, image):
        gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        gray_image = cv2.equalizeHist(gray_image)
        blurred = cv2.GaussianBlur(gray_image, self.kernel, self.sigma)

        if self.prevImage is None:
            self.prevImage = blurred
        diff = cv2.absdiff(self.prevImage, blurred)
        _, binary = cv2.threshold(diff, 21, 255, cv2.THRESH_BINARY)

        if eval(cv2.__version__.split('.')[0]) == 3:
            _, cnts, hier = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        else:
            cnts, hier = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

        cnts = sorted(cnts, key=cv2.contourArea, reverse=True)

        if len(cnts) < 1:
            is_detected = False
            contour = None
        else:
            largest_contour = cnts[0]
            if cv2.contourArea(largest_contour) < self.min_detection_area:
                is_detected = False
                contour = None
            else:
                is_detected = True
                contour = largest_contour
                self.prevImage = blurred
        return is_detected, contour
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号