zoukankan      html  css  js  c++  java
  • [Python Study Notes]行人检测

    # --------------------------------------------------------------
    # @文件: 行人识别.py
    # @工程: blog
    # @时间: 2018/3/16 21:12
    # @作者: liu yang
    # @博客: liuyang1.club
    # @邮箱: liuyang0001@outlook.com
    # -------------------------------------------------------------
    # 编码格式
    # -*- coding: utf-8 -*-
    # Python版本
    # #!/usr/bin/python3
    
    import cv2
    
    
    def draw_detection(img, rects):
        for x, y, w, h in rects:
            pad_w, pad_h = int(0.05 * w), int(0.05 * h)
            cv2.rectangle(img, (x + pad_w, y + pad_h), (x + w - pad_w, y + h - pad_h), (0, 255, 0), 2)
    
    
    def draw_alart(img, rects):
        area = [0, 2]
        size = img.shape
        area_img = size[0] * size[1]
        for x, y, w, h in rects:
            area.append(w * h)
        thresh = 0.25
        if max(area) / area_img > thresh:
            font = cv2.FONT_HERSHEY_SIMPLEX
            cv2.putText(img, "Incoming Peaple", (round(size[0] / 2) - 80, round(size[1] / 2) - 50),
                        font, 6, (0, 0, 255), 25)
    
    
    # 传入opencv里默认的参数
    hog = cv2.HOGDescriptor()
    # 得到行人的特征值
    hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
    # 调用摄像头,也可以传入一个路径视频文件
    cap = cv2.VideoCapture(0)
    while True:
        # ret是一个表
        # 循环读取每一帧的数据
        ret, frame = cap.read()
        # 扫描图像,如果检测不到进行缩小检测
        found, w = hog.detectMultiScale(frame, 0, winStride=(8, 8), padding=(8, 8), scale=1.05)
        draw_detection(frame, found)
        draw_alart(frame, found)
        # 显示每一帧的画面
        cv2.imshow("pd", frame)
        # 按q退出
        key = cv2.waitKey(1) & 0xff
        if key == ord('q'):
            break
    
    # 运行结束后释放摄像头
    cap.release()
    cv2.destroyAllWindows()
    
    
  • 相关阅读:
    VMware Workstation 6.0 正式版公布
    KMyMoney:全体理财好管家
    Bugzilla 3.0 公布
    Brightside:切换工作区的小东西
    QTM-Blogging 客户端
    MDF2ISO-将 MDF 转换为 ISO
    Yakuake 2.8 beta1
    Red Hat 的 Liberation 字体
    Dictman:有效的词典呆板人
    digiKam 0.9.2 Beta 1
  • 原文地址:https://www.cnblogs.com/liu66blog/p/8586145.html
Copyright © 2011-2022 走看看