基于python的移动物体检测_树莓派+摄像头实现对移动物体的检测
在上一篇文章中实现了树莓派下对摄像头的调用,有兴趣的可以看一下:python+opencv实现摄像头调用的方法
接下来,我们将使用python+opencv实现对移动物体的检测
一、环境变量的配置
我们可以参照上一篇文章对我们的树莓派进行环境的配置
当我们将cv2的库安装之后,就可以实现对摄像头的操作
二、摄像头的连接
在此实验中,我使用的为usb摄像头
当我们连接摄像头之后,终端输入
ls /dev/video*
如果终端提示如下:
则表示摄像头连接成功
三、编码实现对移动物体的检测
使用python编写程序,实现对移动物体的检测,代码如下
#encoding=utf-8
import RPi.GPIO as GPIO
import cv2
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)
camera = cv2.VideoCapture(0)
if camera is None:
print('please connect the camera')
exit()
fps = 30
pre_frame = None
led = False
while True:
start = time.time()
res, cur_frame = camera.read()
if res != True:
break
end = time.time()
seconds = end - start
if seconds < 1.0/fps:
time.sleep(1.0/fps - seconds)
cv2.namedWindow('img',0);
#cv2.imshow('img', cur_frame)
key = cv2.waitKey(30) & 0xff
if key == 27:
break
gray_img = cv2.cvtColor(cur_frame, cv2.COLOR_BGR2GRAY)
gray_img = cv2.resize(gray_img, (500, 500))
gray_img = cv2.GaussianBlur(gray_img, (21, 21), 0)
if pre_frame is None:
pre_frame = gray_img
else:
img_delta = cv2.absdiff(pre_frame, gray_img)
thresh = cv2.threshold(img_delta, 25, 255, cv2.THRESH_BINARY)[1]
thresh = cv2.dilate(thresh, None, iterations=2)
contours, hierarchy = cv2.findContours(thresh.copy(),cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
if cv2.contourArea(c) < 1000:
continue
else:
(x,y,w,h) = cv2.boundingRect(c)
cv2.rectangle(cur_frame,(x,y),(x+w,y+h),(0,255,0),2)
print("something is moving!!!")
led = True
if led == True:
for i in range(30):
GPIO.output(18,GPIO.HIGH)
time.sleep(0.03)
GPIO.output(18,GPIO.LOW)
time.sleep(0.03)
break
cv2.imshow('img', cur_frame)
pre_frame = gray_img
camera.release()
cv2.destroyAllWindows()
我的树莓派终端不能显示中文,因此会出现乱码
Ubuntu下的运行结果如下
树莓派下执行结果如下:
此外,在检测物体移动的同时,添加了led闪烁以及框选移动部分的功能,led安装方法请移步之前的博客
文章参考链接:OpenCV检测场景内是否有移动物体
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:python+opencv+caffe+摄像头做目标检测的实例代码
Python OpenCV利用笔记本摄像头实现人脸检测
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
基于python的移动物体检测_树莓派+摄像头实现对移动物体的检测相关推荐
- 基于python的移动物体检测_感兴趣区域的移动物体检测,框出移动物体的轮廓 (固定摄像头, opencv-python)...
感兴趣区域.特定区域.框出移动物体的轮廓.越界检测.入侵物体检测.使用 opencv-python库的函数cv2.findContours.cv2.approxPolyDP.cv2.arcLength ...
- 基于python的入侵检测系统毕设_基于深度学习的射频指纹的物联网设备入侵检测...
摘要:物联网(IoT)和4G/5G无线网络增加了大量设备和新服务,商用现货(COTS)物联网设备得到了广泛部署.为了确保具备无线传输能力的这些系统的安全运作,射频(RF)监视对于监视它们在RF频谱中的 ...
- python 人脸检测_借助摄像头在Python中实现人脸检测
Python部落(www.freelycode.com)组织翻译, 禁止转载 本文作者是Shantnu Tiwari--曾多年在C/C++的魔爪中饱受折磨,直到他发现了Python--使用起来感觉如呼 ...
- 树莓派+摄像头实现对移动物体的检测
树莓派下对摄像头的调用https://blog.csdn.net/Wangguang_/article/details/89850615 树莓派点亮LEDhttps://blog.csdn.net/W ...
- python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
在过去几个月中,我一直在实验室中研究提升目标检测的方法.在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你去做的. 在本教程中,我们将使用 PyT ...
- 基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型
期刊:COMPUTERS & SECURITY 期刊信息:JCR分区Q1:中科院分区2区:引用因子4.85 摘要: 入侵检测系统可以通过分析网络流量的特征来区分正常流量和攻击流量.近年来,神经 ...
- 基于python的语料库数据处理电子版_基于 Python 自然语言处理工具包在语料库研究中的运用...
基于 Python 自然语言处理工具包在语料库研究中的运用 刘 旭 [摘 要] 摘要:国内当前以语料库为基础的研究,在研究工具方面,多以 AntConc . PowerGREP 为主,使用 Pytho ...
- 基于python爬虫技术的应用_基于Python爬虫技术的应用
办公自动化杂志 一.引言 本文主要是对 Python 爬虫技术进行阐述,基于 python 的爬虫与其他语言相比的有很多优势.通过爬去某个网站的所有新闻这个案例,来进一步阐释 Python 爬虫技术的 ...
- 基于python的音频播放器_基于python实现音乐播放器代码实例
基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...
最新文章
- HttpServletResponse对象(一)
- canvas三角函数模拟水波效果
- 依赖注入 这样的坑游戏编程要谨慎
- .gitkeep文件的作用
- Python 面向对象程序设计(一)
- filter和map的区别
- 【干货】后疫情时代,那些迎来爆发机会的产业.pdf(附下载链接)
- apache通过rewrite限制某个目录
- SQL Server之增删改查
- 下载哔哩哔哩代码php,哔哩哔哩电脑客户端 v1.4.4 官方最新版
- 搜狗url自动推送工具 - 最新版 一直更新
- 哪个选项是python语言_关于Python语言的描述,错误的选项是______。???????????????????????????????????????...
- 电信流量卡代理月入过万,怎么做到的?
- 最新获得淘宝app商品详情原数据 的API
- linux pv命令-q,pv命令 - Linux命令大全 | linux教程
- 记Vivado使用,报错记录本
- linux内存管理(一)-内存管理架构
- python实现文件(夹)剪切
- 转换视角看问题---“两个世界”
- 那些年曾经看过的书——工作篇