python-3.x - 运行 opencv 脚本时 RPI 4 冻结
问题描述
我正在尝试跟踪插入我的 rpi 的 USB 摄像头上的运动。我做了一个简单的脚本来测试opencv,在我的windows机器上进行了测试,效果很好,但是在pi上它只是随机冻结,并且不能通过kill not keyboardInterrupts来终止。
(不知道这是否有帮助,但如果相机在连接时启动,则无法在 opencv 上打开,我必须手动重新连接。)
编码
import cv2, random, playsound, os
import numpy as np
face_cascade = cv2.CascadeClassifier("./data/haarcascade_frontalface_default.xml")
auds = []
for r, d, f in os.walk('./auds'):
for fi in f:
auds.append(os.path.join(r, fi))
print(os.path.join(r, fi))
random.shuffle(auds)
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
aud = random.choice(auds)
playsound.playsound(aud, True)
cap.release()
我正在使用运行 raspbian 的树莓派 4b
解决方案
推荐阅读
- azure-aks - 当我使用虚拟节点创建 AKS 群集时,为什么它会创建 VM
- php - 带有参数的 Symfony 5 自定义路由导致 404 错误
- bash - 在构建这个 rpm 包时如何执行 bash 脚本?
- ubuntu - 如何在 CentOS 上使用 yum 命令将 PHP 从 7.2 升级到 7.3?
- javascript - 如何将数据值用作数据表中的属性值?
- windows - 可以在 Windows Hyper-V 中调出来宾操作系统中的非分页内存吗?
- c# - 在 .NET Core 2.2 Web API 中嵌套资源
- r - 如何使用 **for** 循环清理大型数据集
- oracle - 为什么 Oracle 不对非唯一索引使用索引全扫描?
- go - Golang 类型派生自基类型赋值问题