【python】使用OpenCV进行行人检测

请确保在运行代码之前已经安装了 OpenCV 库,可以使用以下命令来安装:

pip install opencv-python==4.2.0.32

使用 OpenCV 中的 HOG 特征和默认的行人检测器来检测指定文件夹 "images" 中的图像中是否有行人,并将检测到行人的原始图像保存到名为 "pedestrian" 的文件夹下。

import cv2
import os

def detect_pedestrians(image_folder):
    # 加载行人检测模型
    hog = cv2.HOGDescriptor()
    hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

    # 获取指定文件夹中的所有图像文件
    image_files = [f for f in os.listdir(image_folder) if os.path.isfile(os.path.join(image_folder, f))]

    # 创建存放行人图像的文件夹
    output_folder = 'pedestrian'
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 逐个处理图像文件
    for image_file in image_files:
        # 读取图像
        image_path = os.path.join(image_folder, image_file)
        image = cv2.imread(image_path)

        # 行人检测
        (rects, weights) = hog.detectMultiScale(image, winStride=(4, 4), padding=(8, 8), scale=1.05)

        # 如果检测到行人,则保存原始图像到pedestrian文件夹下
        if len(rects) > 0:
            filename = os.path.basename(image_file)
            cv2.imwrite(os.path.join(output_folder, filename), image)
            print("Detected a person in", image_file, "! Original image saved in pedestrian folder.")

# 指定图像文件夹路径
image_folder = 'images'

# 调用方法进行行人检测
detect_pedestrians(image_folder)

相关推荐

  1. python使用OpenCV进行行人检测

    2024-02-21 17:16:03       32 阅读
  2. OpenCV进行图形检测

    2024-02-21 17:16:03       42 阅读
  3. python使用opencv实现火焰检测

    2024-02-21 17:16:03       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 17:16:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 17:16:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 17:16:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 17:16:03       18 阅读

热门阅读

  1. NebulaGraph学习笔记-自定义池连接

    2024-02-21 17:16:03       26 阅读
  2. vue学习笔记

    2024-02-21 17:16:03       27 阅读
  3. 为什么使用 Redis,不用 Memcache 和 MongoDB?

    2024-02-21 17:16:03       25 阅读
  4. ADO.NET查询返回单个值

    2024-02-21 17:16:03       29 阅读
  5. 抽象方法与设计模式

    2024-02-21 17:16:03       26 阅读