python实战讲解之强版监控系统

前言:

在现代社会,摄像头已经成为我们生活中不可或缺的一部分。无论是用于家庭安防,还是用于商业监控,甚至是用于科研实验,摄像头都发挥着重要的作用。然而,传统的摄像头功能单一,无法满足人们多样化的需求。为了解决这个问题,我决定利用Python编程语言,开发一个多功能的摄像头。

首先,我需要选择合适的摄像头。在市场上,有很多种类型的摄像头可供选择,如USB摄像头、网络摄像头等。经过比较,我选择了一款支持UVC协议的网络摄像头。这款摄像头可以通过USB接口连接到电脑,然后通过网络进行远程控制。

接下来,我开始编写Python代码。首先,我使用OpenCV库来获取摄像头的视频流。OpenCV是一个开源的计算机视觉库,它提供了大量的图像处理和计算机视觉算法。通过OpenCV,我可以方便地获取摄像头的视频流,并进行实时处理。

然后,我添加了人脸识别功能。我使用了dlib库来实现人脸识别。dlib是一个先进的C++工具包,用于机器学习和数据分析。通过dlib,我可以在视频流中检测出人脸,并进行识别。

此外,我还添加了运动检测功能。我使用了background_subtractor库来实现运动检测。background_subtractor是一个Python库,用于从视频流中检测运动物体。通过background_subtractor,我可以在视频流中检测出运动的物体,并进行跟踪。

最后,我添加了云存储功能。我使用了boto3库来实现云存储。boto3是Amazon Web Services(AWS)的Python SDK,用于访问和管理AWS服务。通过boto3,我可以将摄像头的视频流上传到AWS S3云存储服务。

经过一段时间的努力,我成功地开发出了一个多功能的摄像头。这个摄像头不仅可以实时监控,还可以进行人脸识别、运动检测和云存储。我相信,这个多功能的摄像头将会为人们的生活带来更多的便利。

然而,我也意识到,这个多功能的摄像头还有很多可以改进的地方。例如,我可以考虑添加更多的图像处理和计算机视觉算法,以提高摄像头的性能和功能。我也可以考虑添加更多的用户界面和交互功能,以提高用户体验。

总的来说,通过Python编程语言,我成功地开发出了一个多功能的摄像头。这个过程既锻炼了我的编程技能,也提高了我的创新能力。我相信,随着技术的不断发展,我们的生活将会变得更加智能化和便捷化。

一、摄像头选择:

摄像头选择是一个涉及到多个因素的问题,包括你的预算、你的需求、你的设备兼容性等。以下是一些基本的考虑因素:


1. 分辨率:

分辨率是摄像头能够捕捉的图像的细节程度。一般来说,分辨率越高,图像越清晰。但是,高分辨率的摄像头也会消耗更多的存储空间和处理能力。



2. 帧率:

帧率是摄像头每秒能够捕捉的图像数量。如果你需要捕捉快速移动的物体,你需要一个帧率较高的摄像头。



3. 视角:

视角是摄像头能够捕捉到的视野范围。如果你需要捕捉大范围的场景,你需要一个视角较宽的摄像头。



4. 光线条件:

不同的摄像头对光线条件的要求不同。有些摄像头在暗光条件下表现良好,而有些则需要额外的光源。



5. 兼容性:

确保你选择的摄像头与你的设备兼容。例如,如果你使用的是笔记本电脑,你需要一个USB接口的摄像头;如果你使用的是台式机,你可能需



6. 价格:

最后,你需要考虑你的预算。一般来说,价格较高的摄像头提供的功能和性能也更好。



二,摄像头选择代码分析:

                                             一:分辨率代码;


分辨率通常与图像处理相关,例如调整图像的尺寸或更改图像的分辨率。这里我将为您提供一个简单的示例,使用Python的PIL库(Python Imaging Library)来调整图像的分辨率。
 

确保已经安装了PIL库。如果没有安装,可以使用以下命令安装:
 


```bash
pip install pillow
```


 

接下来,您可以使用以下代码调整图像的分辨率:
 

```python
from PIL import Image

def resize_image(input_image_path, output_image_path, new_width, new_height):
# 打开原始图像
original_image = Image.open(input_image_path)

# 调整图像分辨率
resized_image = original_image.resize((new_width, new_height))

# 保存调整后的图像
resized_image.save(output_image_path)

# 使用示例
input_image_path = "example.jpg"
output_image_path = "resized_example.jpg"
new_width = 800
new_height = 600

resize_image(input_image_path, output_image_path, new_width, new_height)
```

请将`input_image_path`替换为您要调整分辨率的图像的路径,将`output_image_path`替换为您希望保存调整后的图像的路径,以及将`new_width`和`new_height`替换为您希望设置的新分辨率。



二,帧率代码:

要计算帧率,我们可以使用Python的`time`模块。以下是一个简单的示例,展示了如何使用Python计算帧率:

```python
import time

def calculate_frame_rate(num_frames, duration):
frame_rate = num_frames / duration
return frame_rate

# 假设我们渲染了100帧,持续时间为2秒
num_frames = 100
duration = 2

frame_rate = calculate_frame_rate(num_frames, duration)
print("帧率:", frame_rate)
```




在这个示例中,我们定义了一个名为`calculate_frame_rate`的函数,它接受两个参数:`num_frames`(渲染的帧数)和`duration`(持续时间)。函数通过将帧数除以持续时间来计算帧率,并返回结果。

然后,我们假设渲染了100帧,持续时间为2秒。我们将这些值传递给`calculate_frame_rate`函数,并将结果打印出来。



三,监控视角代码:

首先,确保已经安装了`psutil`库。如果没有安装,可以使用以下命令安装:
 

```bash
pip install psutil
```



接下来,您可以使用以下代码来监控CPU使用率:
 

```python
import psutil
import time

def monitor_cpu_usage():
while True:
cpu_percent = psutil.cpu_percent(interval=1)
print(f"当前CPU使用率: {cpu_percent}%")
time.sleep(5)

if __name__ == "__main__":
monitor_cpu_usage()
```


这个代码会每隔5秒输出一次当前的CPU使用率。您可以根据需要调整时间间隔和监控内容。



四,监控光线条件代码;

我们需要了解您希望监控的具体光线条件。例如,您可能希望监控环境光线的强度、颜色或其他特征。这里我将给出一个简单的示例,使用Python和OpenCV库来监控摄像头捕捉到的图像中的光线条件。
 

首先,确保您已经安装了OpenCV库。如果没有,请使用以下命令安装:
 

```bash
pip install opencv-python
```



接下来,我们将编写一个简单的Python脚本来监控摄像头捕捉到的图像中的光线条件。在这个示例中,我们将计算图像的平均亮度作为光线条件的指标。

```python
import cv2

def main():
# 打开摄像头
cap = cv2.VideoCapture(0)

while True:
# 读取摄像头捕捉到的一帧图像
ret, frame = cap.read()

if not ret:
print("无法获取图像")
break

# 将图像转换为灰度图
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# 计算图像的平均亮度
average_brightness = int(gray.mean())

# 在图像上显示平均亮度
cv2.putText(frame, f"平均亮度: {average_brightness}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)

# 显示图像
cv2.imshow("光线监控", frame)

# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# 释放摄像头资源并关闭窗口
cap.release()
cv2.destroyAllWindows()

if __name__ == "__main__":
main()


三;监控系统升级:

通过上述了解下面我们为你的监控系统升级一下吧,用来增强它的防御功能

一:增加防火墙;

简介:

监控五级防火墙

首先,我们需要定义一个五级防火墙类,包含以下方法:
注:
1. `__init__(self)`: 初始化防火墙规则
2. `allow_packet(self, packet)`: 判断数据包是否允许通过
3. `add_rule(self, rule)`: 添加防火墙规则
4. `remove_rule(self, rule)`: 移除防火墙规则
 

下面是五级防火墙实现代码:
 

```python
class Firewall:
def __init__(self):
self.rules = []

def allow_packet(self, packet):
for rule in self.rules:
if not rule.match(packet):
return False
return True

def add_rule(self, rule):
self.rules.append(rule)

def remove_rule(self, rule):
self.rules.remove(rule)

class Rule:
def __init__(self, protocol, src_ip, dest_ip, src_port, dest_port):
self.protocol = protocol
self.src_ip = src_ip
self.dest_ip = dest_ip
self.src_port = src_port
self.dest_port = dest_port

def match(self, packet):
if packet.protocol != self.protocol:
return False
if packet.src_ip != self.src_ip and packet.src_ip != '*':
return False
if packet.dest_ip != self.dest_ip and packet.dest_ip != '*':
return False
if packet.src_port != self.src_port and packet.src_port != '*':
return False
if packet.dest_port != self.dest_port and packet.dest_port != '*':
return False
return True

class Packet:
def __init__(self, protocol, src_ip, dest_ip, src_port, dest_port):
self.protocol = protocol
self.src_ip = src_ip
self.dest_ip = dest_ip
self.src_port = src_port
self.dest_port = dest_port
```


这个示例中,我们定义了三个类:`Firewall`、`Rule`和`Packet`。`Firewall`类用于管理防火墙规则,`Rule`类用于表示单个防火墙规则,`Packet`类用于表示数据包。

你可以根据实际需求修改这个示例,例如添加更多的属性和方法,以支持更复杂的防火墙功能。



二;手机连接监控代码:

简介:要实现手机连接监控,你可以使用Python的Flask框架搭建一个简单的Web服务器,然后通过手机访问这个服务器来查看监控画面。

1. 首先,确保你已经安装了Flask库。如果没有安装,可以使用以下命令安装:

pip install flask


2. 创建一个名为`app.py`的文件,然后将以下代码复制到文件中:
 

from flask import Flask, render_template, Response
import cv2

app = Flask(__name__)

def gen_frames():
camera = cv2.VideoCapture(0)
while True:
success, frame = camera.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--frame
'b'Content-Type: image/jpeg' + frame + b'')

@app.route('/video_feed')
def video_feed():
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)




这段代码会启动一个Flask Web服务器,并在端口5000上运行。当手机访问`http://<your_phone_ip>:5000/video_feed`时,你将看到手机摄像头的画面。


注意:请将`<your_phone_ip>`替换为你的手机的实际IP地址。你可以通过在手机设置中查找“网络和互联网”或“无线局域网”来找到它。


3. 运行`app.py`文件:

python app.py


4. 机上访问`http://<your_phone_ip>:5000/video_feed`,你应该能看到手机摄像头的画面。



三;创建128G监控云储存器:

一:简介:

在Python中,我们不能直接创建一个128G的内存存储器。但是,我们可以使用一些方法来模拟一个128G的内存存储器。例如,我们可以使用字典(dict)来存储数据,并使用文件系统来模拟128G的内存。


二:以下是代码:

import os

class MemoryStorage:
def __init__(self, size=128 * 1024 * 1024 * 1024):
self.size = size
self.memory = {}
self.file_path = "memory_storage.bin"

if os.path.exists(self.file_path):
with open(self.file_path, "rb") as f:
data = f.read()
while data:
key, value = self.deserialize(data)
self.memory[key] = value
data = f.read()

def serialize(self, key, value):
# 将键值对序列化为字节串
pass

def deserialize(self, data):
# 将字节串反序列化为键值对
pass

def set(self, key, value):
if len(self.memory) >= self.size:
self.save_to_file()

self.memory[key] = value

def get(self, key):
return self.memory.get(key)

def save_to_file(self):
with open(self.file_path, "wb") as f:
for key, value in self.memory.items():
f.write(self.serialize(key, value))

self.memory.clear()

storage = MemoryStorage()
storage.set("key", "value")
print(storage.get("key"))


这个示例中,我们创建了一个名为`MemoryStorage`的类,它使用字典`self.memory`来存储数据。我们还定义了一个文件路径`self.file_path`,用于模拟128G的内存。当存储的数据量超过128G时,我们会将数据保存到文件中,并清空字典。当从文件中读取数据时,我们会将数据反序列化为键值对,并将其添加到字典中。


请注意,这个示例仅用于演示目的,实际上并不能创建一个真正的128G内存存储器。在实际应用中,您可能需要使用更复杂的数据结构和算法来实现类似的功能。



四;创建一个用户访问监控权限:

简介:

为了实现一个监控访问权限的Python程序,我们可以使用Flask框架来创建一个简单的Web应用。

以下是一个代码:

1. 首先,确保你已经安装了Flask库。如果没有,可以使用以下命令安装:

pip install Flask


2. 创建一个名为`app.py`的文件,并在其中编写以下代码:

from flask import Flask, request, jsonify

app = Flask(__name__)

# 模拟用户数据
users = {
"user1": "password1",
"user2": "password2"
}

# 模拟访问权限数据
permissions = {
"user1": ["read", "write"],
"user2": ["read"]
}

@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')

if username in users and users[username] == password:
return jsonify({"status": "success", "message": "登录成功"}), 200
else:
return jsonify({"status": "error", "message": "用户名或密码错误"}), 401

@app.route('/access', methods=['GET'])
def access():
token = request.headers.get('Authorization')

if not token:
return jsonify({"status": "error", "message": "缺少授权令牌"}), 401

# 在这里,我们只是简单地检查令牌是否为"valid_token"。在实际应用中,您需要验证令牌的有效性。
if token == "valid_token":
user = "user1" # 假设当前用户是user1
required_permission = "read" # 假设我们需要检查读取权限

if required_permission in permissions.get(user, []):
return jsonify({"status": "success", "message": "访问权限允许"}), 200
else:
return jsonify({"status": "error", "message": "访问权限不允许"}), 403
else:
return jsonify({"status": "error", "message": "无效的授权令牌"}), 401

if __name__ == '__main__':
app.run()



3. 运行`app.py`文件:

python app.py


现在,你可以使用Postman或其他HTTP客户端向`http://127.0.0.1:5000/login`发送POST请求进行登录,并使用`http://127.0.0.1:5000/access`发送GET请求来检查访问权限。

请注意,这个示例仅用于演示目的,实际应用中需要考虑更多的安全性和功能。



五;创建监控人物动作捕捉画面:

一:简介:

要实现一个监控人物动作捕捉画面的Python程序,你可以使用OpenCV库。
 

二:以下是代码:

import cv2
import numpy as np

# 初始化摄像头
cap = cv2.VideoCapture(0)

# 定义颜色范围
lower_color = np.array([0, 0, 0])
upper_color = np.array([180, 255, 46])

while True:
# 读取摄像头画面
ret, frame = cap.read()

# 将画面转换为HSV格式
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

# 根据颜色范围创建掩码
mask = cv2.inRange(hsv, lower_color, upper_color)

# 对原画面和掩码进行位运算
res = cv2.bitwise_and(frame, frame, mask=mask)

# 显示结果
cv2.imshow('frame', frame)
cv2.imshow('mask', mask)
cv2.imshow('res', res)

# 按'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# 释放摄像头资源并关闭窗口
cap.release()
cv2.destroyAllWindows()



这个代码会打开你的摄像头并实时监控画面。你需要根据实际情况调整颜色范围(`lower_color`和`upper_color`变量)。当检测到指定颜色范围内的物体时,程序会在窗口中显示原始画面、掩码和处理后的结果。按下'q'键可以退出程序



六:创建监控报警系统;

一;简介:

要实现一个监控警报,你可以使用Python的`time`模块来设置检查间隔,以及使用条件语句来判断是否需要触发警报。


二 ;以下是代码:

import time

def check_condition():
# 在这里编写你的条件判断逻辑,返回True或False
# 例如:检查某个值是否超过阈值
value = 100 # 假设这是你要检查的值
threshold = 90 # 设定阈值
if value > threshold:
return True
else:
return False

def send_alert():
# 在这里编写发送警报的逻辑,例如打印一条消息或者调用其他函数
print("警报!条件满足!")

while True:
if check_condition():
send_alert()
time.sleep(60) # 每隔60秒检查一次条件

这个示例中,`check_condition`函数用于判断是否需要触发警报,你需要根据实际情况编写相应的条件判断逻辑。`send_alert`函数用于发送警报,你可以根据需要修改它来实现你的需求,例如打印一条消息或者调用其他函数。最后,我们使用一个无限循环来定期检查条件,并在条件满足时发送警报



七;创建触发监控报警系统:

一;简介:

要实现一个触发监控警报系统的Python程序,你可以使用以下步骤:

二:步骤;


1. 首先,确定你的监控系统需要监控什么。例如,你可能想要监控服务器的CPU使用率、内存使用率或磁盘空间。


2. 其次,选择一个合适的库来帮助你获取这些监控数据。例如,你可以使用`psutil`库来获取系统信息。


3. 然后,编写一个函数来检查监控指标是否超过了预设的阈值。如果超过了阈值,就触发警报。


4. 最后,将这个函数与一个定时器结合,以便定期检查监控指标。


以下是一个简单的示例,展示了如何使用Python和`psutil`库来实现一个基本的监控警报系统:

import psutil
import time

def check_cpu_usage(threshold):
cpu_percent = psutil.cpu_percent()
if cpu_percent > threshold:
return True
return False

def check_memory_usage(threshold):
memory_info = psutil.virtual_memory()
memory_percent = memory_info.percent
if memory_percent > threshold:
return True
return False

def trigger_alert(message):
print("警报:", message)

def main():
cpu_threshold = 80
memory_threshold = 90

while True:
if check_cpu_usage(cpu_threshold):
trigger_alert("CPU使用率超过{}%".format(cpu_threshold))
if check_memory_usage(memory_threshold):
trigger_alert("内存使用率超过{}%".format(memory_threshold))
time.sleep(60) # 每分钟检查一次

if __name__ == "__main__":
main()



在这个示例中,我们定义了两个函数`check_cpu_usage`和`check_memory_usage`来检查CPU和内存的使用率。我们还定义了一个`trigger_alert`函数来触发警报。最后,我们在`main`函数中使用一个无限循环来定期检查监控指标,并在检测到异常时触发警报。



八;创建人物进入监控范围发出报警:

  • 一;简介:

  • 要实现这个功能,我们可以使用Python的OpenCV库来捕获摄像头的视频流,并检测人物是否进入监控范围。
  • 二;以下是一个简单的代码:

    • ```python
      import cv2
      
      # 加载预训练的人脸检测模型
      face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
      
      # 打开摄像头
      cap = cv2.VideoCapture(0)
      
      while True:
      # 读取摄像头的每一帧
      ret, frame = cap.read()
      
      # 将图像转换为灰度图
      gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
      
      # 检测人脸
      faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
      
      # 如果检测到人脸,发出警报
      if len(faces) > 0:
      print("警报!有人进入监控范围!")
      
      # 显示图像
      cv2.imshow('frame', frame)
      
      # 按'q'键退出循环
      if cv2.waitKey(1) & 0xFF == ord('q'):
      break
      
      # 释放摄像头资源并关闭窗口
      cap.release()
      cv2.destroyAllWindows()
      ```



      注意:在运行此代码之前,请确保已经安装了OpenCV库(可以使用`pip install opencv-python`命令进行安装),并将`haarcascade_frontalface_default.xml`文件放在与代码相同的目录下。你可以从OpenCV的GitHub仓库下载这个文件:https://github.com/opencv/opencv/tree/master/data/haarcascades



      九;创建看监控人与被监控人物的对话功能
       

    • 一;简介:

    • 要实现一个监控与外界人物对话的功能,可以使用Python的语音识别库和语音合成库。
       

    • 二;以下是一个代码:

       

    • 1,首先,确保已经安装了所需的库:

       

      pip install SpeechRecognition
      pip install gTTS
      



      2,然后,编写如下代码:

    • import speech_recognition as sr
      from gtts import gTTS
      import os
      
      # 创建一个识别器对象
      recognizer = sr.Recognizer()
      
      # 使用麦克风作为音频源
      with sr.Microphone() as source:
      print("请开始说话:")
      audio = recognizer.listen(source)
      
      try:
      # 使用Google语音识别API将音频转换为文本
      text = recognizer.recognize_google(audio, language='zh-CN')
      print("你说的是:", text)
      
      # 将文本转换为语音并播放
      tts = gTTS(text=text, lang='zh-CN')
      tts.save("output.mp3")
      os.system("mpg321 output.mp3")
      
      except sr.UnknownValueError:
      print("无法识别语音")
      except sr.RequestError as e:
      print("请求出错; {0}".format(e))
      


      这个代码会使用麦克风捕获用户的语音输入,然后使用Google语音识别API将其转换为文本。接下来,使用gTTS库将文本转换为语音并播放。请注意,这个示例依赖于网络连接,因为它使用了Google语音识别API。



  • 十;创建人物对监控实时恶意破坏,记录其行为并报警

  • 1;简介:

  • 为了实现这个功能,我们可以使用Python编写一个简单的程序,当检测到恶意行为时,记录并报警。

  • 2;以下是一个代码:
     

  • import time
    
    # 定义一个函数来检测恶意行为
    def detect_malicious_behavior(data):
    # 在这里添加你的恶意行为检测逻辑
    # 如果检测到恶意行为,返回True,否则返回False
    pass
    
    # 定义一个函数来记录恶意行为
    def log_malicious_behavior(data):
    timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    with open("malicious_log.txt", "a") as log_file:
    log_file.write(f"{timestamp} - Malicious behavior detected: {data}
    ")
    
    # 定义一个函数来报警
    def alert():
    print("警报!检测到恶意行为!")
    
    # 模拟监控数据流
    monitoring_data = [
    "正常行为1",
    "正常行为2",
    "恶意行为1",
    "正常行为3",
    "恶意行为2",
    ]
    
    # 遍历监控数据流,检测恶意行为
    for data in monitoring_data:
    if detect_malicious_behavior(data):
    log_malicious_behavior(data)
    alert()
    
    
    
    
    

    在这个示例中,我们定义了一个`detect_malicious_behavior`函数来检测恶意行为,一个`log_malicious_behavior`函数来记录恶意行为,以及一个`alert`函数来报警。我们使用一个模拟的监控数据流来演示如何使用这些函数。你可以根据你的需求修改这些函数的



十一:建监控运动检测功能


  • 简介:

  • 要实现运动检测功能,我们可以使用OpenCV库来处理视频流。

    以下是一个代码,展示了如何使用Python和OpenCV实现运动检测功能:

    首先,确保已经安装了OpenCV库。如果没有安装,可以使用以下命令安装:

    ```bash
    pip install opencv-python
    ```
    



    接下来,我们编写一个Python脚本来实现运动检测功能:
     

    ```python
    import cv2import numpy as np
    
    # 初始化摄像头
    cap = cv2.VideoCapture(0)
    
    # 设置初始帧为None
    prev_frame = None
    
    while True:
    # 读取当前帧
    ret, frame = cap.read()

    # 如果读取失败,跳出循环

    if not ret:
    break

    # 将当前帧转换为灰度图像

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 如果前一帧不为空,计算当前帧与前一帧的差异

    if prev_frame is not None:
    diff = cv2.absdiff(gray, prev_frame)

    # 对差异图像进行阈值处理,以便更好地检测运动

    _, thresh = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)

    # 对阈值图像进行形态学操作,以消除噪声

    kernel = np.ones((5, 5), np.uint8)
    thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=2)
    thresh = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, iterations=2)

    # 查找轮廓

    contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    

    # 在原始帧上绘制轮廓

    for contour in contours:
    (x, y, w, h) = cv2.boundingRect(contour)
    if cv2.contourArea(contour) < 1000:
    continue
    cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

    # 更新前一帧为当前帧

    prev_frame = gray

    # 显示结果帧

    cv2.imshow('Motion Detection', frame)

    # 按'q'键退出循环

    if cv2.waitKey(1) & 0xFF == ord('q'):
    break

    # 释放摄像头资源并关闭窗口

    cap.release()
    cv2.destroyAllWindows()
    ```


    这个脚本将打开摄像头并实时检测运动。当检测到运动时,它会在原始帧上绘制矩形框。按'q'键可以退出程序。


十二:

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duluo码农部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值