树莓派应用--AI项目实战篇来啦-9.OpenCV实现汽车检测

embedded/2024/10/15 18:22:49/

1.介绍

        该项目使用的汽车检测使用的也是 haar 模型。这是一种基于机器学习的汽车检测算法。它使用了 Haar 特征来检测汽车,可以在图像中快速检测到汽车并输出其位置。采用该方法检测速度较快,但准确率略低。

2.OpenCV 实现汽车检测

        可以采用官方自带的汽车检测 HAAR 分类器实现对视频的汽车检测,也可以自己改成摄像头的方式。

 3.源程序代码

# 载入必要的库
import cv2
import time
import numpy as np# 载入HAAR分类器
car_classifier = cv2.CascadeClassifier('./images/haarcascade_car.xml')
# 载入视频文件
cap = cv2.VideoCapture('./images/cars.avi')# 线程函数操作库
import threading # 线程
import ctypes
import inspect# 线程结束代码
def _async_raise(tid, exctype):tid = ctypes.c_long(tid)if not inspect.isclass(exctype):exctype = type(exctype)res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))if res == 0:raise ValueError("invalid thread id")elif res != 1:ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)raise SystemError("PyThreadState_SetAsyncExc failed")def stop_thread(thread):_async_raise(thread.ident, SystemExit)# 创建显示控件
def bgr8_to_jpeg(value, quality=75):return bytes(cv2.imencode('.jpg', value)[1])import traitlets
import ipywidgets.widgets as widgets
from IPython.display import display
car_imge = widgets.Image(format='jpeg', width=480, height=320)
display(car_imge)#一旦视频成功加载,循环播放
def car_Video_display():while cap.isOpened():time.sleep(.05)# Read first frameret, frame = cap.read()gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# Pass frame to our car classifiercars = car_classifier.detectMultiScale(gray, 1.4, 2)       # Extract bounding boxes for any bodies identifiedfor (x,y,w,h) in cars:cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 255), 2)car_imge.value = bgr8_to_jpeg(frame)cap.release()t = threading.Thread(target=car_Video_display)
t.setDaemon(True)
t.start()# 结束线程
stop_thread(t)


http://www.ppmy.cn/embedded/127419.html

相关文章

欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值

目前链上数据正处于迈向下一个爆发的重要时刻。 随着Web3行业发展,公链数量呈现爆发式的增长,链上积聚的财富效应,特别是由行业热点话题引领的链上交互行为爆发式增长带来了巨量的链上数据,这些数据构筑了一个行为透明但与物理世…

C/C++语言基础--C++神奇的多态

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 通过前面几节课,我们学习了抽象、封装、继承相关的概念,接下来我们将讲解多态,多态他非常神奇,正式有了他,类才能出现多样性特征;C语言…

毕设开源 基于python的搜索引擎设计与实现

文章目录 0 简介1 课题简介2 系统设计实现2.1 总体设计2.2 搜索关键流程2.3 推荐算法2.4 数据流的实现 3 实现细节3.1 系统架构3.2 爬取大量网页数据3.3 中文分词3.4 相关度排序第1个排名算法:根据单词位置进行评分的函数第2个排名算法:根据单词频度进行…

消防安全小程序推动社会消防安全意识提升

消防安全小程序在推动社会消防安全意识提升方面发挥着重要作用。以下是对其作用的详细阐述: 一、普及消防知识 消防安全小程序通过图文、音频等多种形式,向公众普及消防安全知识。这些小程序通常包含丰富的消防安全内容,如火灾预防、初期火灾…

用FPGA做一个全画幅无反相机

做一个 FPGA 驱动的全画幅无反光镜数码相机是不是觉得很酷? 就是上图这样。 Sitina 一款开源 35 毫米全画幅 (3624 毫米) CCD 无反光镜可换镜头相机 (MILC),这个项目最初的目标是打造一款数码相机,将 SLR [单镜头反光] 相机转换为 DSLR [数码…

ubuntu kernel 调试信息输出

1. 配置了 CONFIG_DYNAMIC_DEBUGy 和 CONFIG_DEBUG_KERNELy 2. echo module my_pci_driver p > /sys/kernel/debug/dynamic_debug/control 3. echo 8 > /proc/sys/kernel/printk 使用如下方法不能打印调试信息: echo "file drivers/pci/* p" &…

【附源码】Python :打家劫舍

系列文章目录 Python 算法学习:打家劫舍问题 文章目录 系列文章目录一、算法需求二、解题思路三、具体方法源码方法1:动态规划(自底向上)方法2:动态规划(自顶向下)方法3:优化的动态…

MySQL-07.DDL-表结构操作-数据类型

一.MySQL中的数据类型 MySQL中的数据类型主要分为3种:数字类型,字符串类型,日期时间类型。如下图所示! 二.数值类型 三.字符串类型 四.日期类型