基于光流法以及背景减除法的降雪检测项目知识点总结

项目总结目录

  • 一、算法部分
    • 1.光流法部分知识点
    • 2.python代码与大华摄像头之间的实时调用
    • 3.两个方法的代码

一、算法部分

1.光流法部分知识点

像素坐标系与直角坐标系之间的转换,之后计算角度。

其中光流法通过判断运动目标的角度来识别是否为降雪,通过这一帧某个像素点(x1,y1)到下一帧中此像素点的位置(x2,y2),通过计算两者之间的反正切函数,来计算出它们与x轴的角度,
需要注意的时,像素坐标系和实际的(x,y)轴计算不同,像素坐标的y轴为越往下值越大:所以计算角度时候,需要将像素坐标系中的y轴转换为直角坐标系中的y轴。
方法:转变的方法其实就是,利用图片的高减去像素点的y值(高),这样就将两个坐标点转变到了直角坐标系中
在这里插入图片描述

2.python代码与大华摄像头之间的实时调用

前期准备条件:大华摄像头通过网线(无线)连接到网络,MCU(电脑)连接同一个网络,这样MCU与摄像头保证了在同一个局域网中。

下面分为两种情况:

有网络时:这时候在电脑中访问摄像头的ip地址(应该是每个摄像头出厂时都有一个固定的ip,或者使用其他方法找到摄像头被分配的ip地址)

没有网络时,可以使用交换机将摄像头和MCU连接到同一个局域网中;摄像头和MCU都连接到交换机上,这样组成了一个局域网。此时,需要将MCU地址设置为固定的”192.168.1.159”并且自动会对应出子网掩码,之后在浏览器中访问摄像头被分配的ip 我的摄像头是“192.168.1.108”其中192.168.1.159是内网网关标准的一个ip地址,另外还有一个通用的是192.168.1.1也是一个网关地址(这个通常是对外的,意思是可以连接到网络的?) 这方面知识点参考参考: link

在这里插入图片描述python代码调用

在这里插入图片描述

// An highlighted block
# 打开视频文件或者摄像头
# cap = cv2.VideoCapture(r'.\camera\Snow.mp4')  # 替换成你的视频文件路径
cap = cv2.VideoCapture('rtsp://admin:fy123456@192.168.2.8:554/cam/realmonitor?channel=1&subtype=0')  # 替换成你的视频文件路径
# ========================================== #

3.两个方法的代码

1.光流法
2.背景减除法

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我在使用 Copilot 时遇到了许可证验证错误。

如果使用的是 Copilot,并收到以下错误消息,请按以下步骤进行操作: We encountered a problem validating your Copilot license. For more information, see https://aka.ms/copilotlicensecheck 请确保使用的是正确的帐户 请确保已使用具…

神经网络系列---卷积

文章目录 卷积神经网络卷积转置卷积 卷积核和反卷积的三种实现方式卷积的次数计算 卷积神经网络 在神经网络的卷积层中,向下取整(Floor)是一种常用的策略,特别是在处理输出尺寸不是整数的情况时。当你计算出卷积层输出的尺寸&…

UnityAPI的学习——Mathf类

Mathf类是Unity中的数学类,属于结构体类型,只有静态属性和静态方法,即不可实例化。 Mathf类静态属性 在Mathf类中,涉及的静态属性有Deg2Rad、Rad2Deg和Infinity,其中属性Deg2Rad和Rad2Deg功能相似。 1、Deg2Rad属性…

UE5 C++ 发射子弹发射(Projectile)

一.相关蓝图的练习,在我之前的文章中射击子弹案例-CSDN博客 本篇使用C实现 1.创建C类 MyBullet,在MyBullet.h中包含相关头文件 #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Components/StaticMeshComponent.…

SpringBoot 注解全解析

注解的优势: 采用纯 java 代码,不在需要配置繁杂的 xml 文件在配置中也可享受面向对象带来的好处类型安全对重构可以提供良好的支持减少复杂配置文件的同时亦能享受到 springIoC 容器提供的功能 1. 常用的Spring Boot注释及其用途和示例 1)S…

Java 中notify 和 notifyAll 方法介绍

1. notify 方法 notify() 方法是 Java 中 Object 类的一个方法,它用来唤醒在该对象的监视器(monitor)上等待的单个线程。如果有多个线程都在该对象上等待,则会随机唤醒其中一个线程。被唤醒的线程将会尝试重新获取对象锁&#xff…

idea集成git详解教程(实用篇)

0.Git常用命令 Git常用命令-CSDN博客 1.下载git Git - Downloads 一路傻瓜式安装即可(NEXT) 2.软件测试 在Windows桌面空白处,点击鼠标右键,弹出右键菜单 Git软件安装后,会在右键菜单中增加两个菜单 Git GUI He…

matplotlib绘图中文乱码问题

如图所示,在使用python包matplotlib绘图时中文文字显示乱码,在绘图前加入以下两行代码即可 # 导入包 import matplotlib.pyplot as plt # 解决中文乱码问题 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False重新运行代…

Linux 进程的前台/后台切换

目录 前言 简单例子 前言 当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本…

【知识摘要】一文带你了解什么是RedLock。

1、什么是RedLock 红锁(RedLock)是一种分布式锁算法,由 Redis 的作者 Salvatore Sanfilippo(也称为 Antirez)设计,用于在分布式系统中实现可靠的锁机制。它的设计解决了单一 Redis 实例作为分布式锁可能出…

【Django】执行查询—跨关系查询中的跨多值关联问题

跨多值查询 跨越 ManyToManyField 或反查 ForeignKey (例如从 Blog 到 Entry )时,对多个属性进行过滤会产生这样的问题:是否要求每个属性都在同一个相关对象中重合。 filter() 先看filter(),通过一个例子看&#xf…

打造无缝滚动体验:JavaScript中的scrollIntoView()方法实战指南

在现代Web开发中,提升用户体验是至关重要的。通过JavaScript的scrollIntoView()方法,我们可以为用户创造出流畅而令人愉悦的滚动体验。本文将深入研究scrollIntoView()的强大功能,并结合实例演示如何在项目中巧妙应用,以打造出无缝…

缓存穿透解决方案之布隆过滤器

布隆过滤器可以快速判断数据是否存在,避免从数据库中查询数据是否存在,减轻数据库的压力 布隆过滤器是由一个初值为0的bit数组和N个哈希函数,可以用来快速的判断某个数据是否存在 当我们想要标记某个数据是否存在时,布隆过滤器会…

Java底层自学大纲_高可用篇

高可用专题_自学大纲所属类别学习主题建议课时(h) A 容器化技术001 Docker架构设计原理2.5 A 容器化技术002 Docker部署springboot项目2.5 A 容器化技术003 基于Docker-Compose部署微服务项目2.5 B Nginx实现高可用004 Nginx反向代理&负载均衡&a…

LabVIEW眼结膜微血管采集管理系统

LabVIEW眼结膜微血管采集管理系统 开发一套基于LabVIEW的全自动眼结膜微血管采集管理系统,以提高眼结膜微血管临床研究的效率。系统集成了自动化图像采集、图像质量优化和规范化数据管理等功能,有效缩短了图像采集时间,提高了图像质量&#…

idea 多模块A模块调用了B模块的Jar包,而非本地源码

1,问题描述 对于多模块的互相调用,比如模块A,模块B,模块C, 这在本地都是可以编辑进行开发的源码, 按理说是模块A可以直接点进模块B的本地源码, 但是不知道什么原因,导致模块A点进…

C++小记 - 二叉树

文章目录 二叉树一、二叉树理论基础篇二叉树的种类满二叉树完全二叉树二叉搜索树平衡二叉搜索树 二叉树的存储方式链式存储:顺序存储:遍历规则:构造实现: 二叉树的遍历方式二叉树的定义 二、二叉树的递归遍历递归算法的三个要素:递…

vue+element UI中给指定日期添加标记

1.日期控件中添加:picker-options属性&#xff0c;即:picker-options“myPickerOptions” <el-date-picker:class"item.scds !null ?xtsjBlue:xtsjRed"v-model"item.date"value-format"yyyy-MM-dd"type"date":picker-options"…

Python中的heapq模块

Python中的heapq模块 文章目录 Python中的heapq模块1.heapq的方法2.使用heapq创建堆3.使用heapq实现堆排序4.获取堆中的前n个最大值或最小值Reference heapq模块实现了堆队列的算法&#xff0c;即优先队列算法。heapq其实是实现了一种小顶堆&#xff0c;所以使用pop()方法返回的…

如何进行弱网测试?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 如今这个高度互联的时代里&#xff0c;网络环境对于应用程序的影响越来越重要。 而弱网测试就是…