在尝试Raspberry Pi的运动检测器时,我注意到了一些非常奇怪的事情:
从脚本中删除摄像机日志,使其几乎使用0 CPU:
#from gpiozero import MotionSensor
#import cv2
from datetime import datetime
from time import sleep
#camera = cv2.VideoCapture(0)
#pir = MotionSensor(4, queue_len=2, sample_rate=2, threshold=0.5)
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
PIR_PIN = 4
GPIO.setup(PIR_PIN, GPIO.IN)
while True:
sleep(1)
if GPIO.input(PIR_PIN):
print( "detected!")
filename = 'motionpics/' + datetime.now().strftime("%Y-%m-%d_%H.%M.%S.jpg")
#ret, frame = camera.read()
#cv2.imwrite(filename, frame)
#camera.release()
#pir.wait_for_no_motion()但是,只删除一行--导入cv2,使该脚本的CPU使用率达到300%!!
OpenCV有什么问题,为什么我不能开始用它来抓取usb摄像头的图像,而不用一堆cpu,消耗掉电池?
发布于 2017-03-18 18:26:16
嗯,如果我没弄错的话,opencv需要点钱,对吧?你能试一下以下几种方法吗?
$ sudo apt-get install libatlas3-base
$ sudo update-alternatives --config libblas.so.3选择丽巴特拉斯选项
$ sudo update-alternatives --config liblapack.so.3选择丽巴特拉斯选项
$ sudo aptitude purge libopenblas-{base,dev}发布于 2017-03-19 01:52:59
我可以确认詹尼斯的答案是正确的。我只是执行了他的答案中列出的步骤,并且能够在python3.4中导入cv2,而不需要占用大量的cpu。所以至少有这样的情况。我能够抓取一个框架并显示一个图像。这适用于我的用例。
不过,我确实注意到,在上述步骤中,libtiff5、wolfram和其他几个库已被卸载。
如果您需要这些库和应用程序(我目前没有完整的列表),我会暂时停止执行。
Sudo apt-获取dist-升级
和
Sudo rpi-更新
在这个时候,继续呆在拉斯班·杰西。这只是我个人的经验。
编辑:
此外,我还想补充一点,詹尼斯是对的,这似乎是一个很难解决的问题,很容易通过以下简单的方法来检验:
在Raspberry PI3的桌面上运行->Start菜单->Code->Python 3;键入"import numpy“(没有引号)。
你应该看到你的cpu使用率过高。这是一种告诉您有资格进行此修复工作的方法。
https://stackoverflow.com/questions/40445983
复制相似问题