我正在尝试使用 Raspberry pi B+ 中的 picamera 模块打开相机,其中安装了 Raspbian 64 位操作系统。我收到此错误:
Traceback (most recent call last):
File "/home/pi/Documents/hydroponics/scripts/picamera_test.py", line 1, in <module>
from picamera import PiCamera
File "/home/pi/.local/lib/python3.9/site-packages/picamera/__init__.py", line 72, in <module>
from picamera.exc import (
File "/home/pi/.local/lib/python3.9/site-packages/picamera/exc.py", line 41, in <module>
import picamera.mmal as mmal
File "/home/pi/.local/lib/python3.9/site-packages/picamera/mmal.py", line 49, in <module>
_lib = ct.CDLL('libmmal.so')
File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libmmal.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
相机已启用(我尝试使用 opencv 捕获相机并且它有效)。我sudo …
我正在使用 python 的 picamera 模块捕获游戏中时光倒流:
from picamera import PiCamera, Color
class EggAlertCam:
def __init__(self):
self.camera = PiCamera()
self.camera.start_preview()
def capture_thread_task(self):
filename = os.path.join(self.SAVEPATH, self.safe_camname + '_{timestamp:%Y%m%d-%H%M%S}-{counter:03d}' + '.jpg' )
starttime = dt.datetime.now()
current_time = dt.datetime.now()
for filename in self.camera.capture_continuous(filename):
print('Captured {}'.format(filename))
self.wait(current_time)
current_time = dt.datetime.now()
def get_frame(self, size=None):
if size is None:
size = (640,480)
output = io.BytesIO()
self.camera.capture(output, format='jpeg', resize=size, use_video_port=True)
output.seek(0)
return output
Run Code Online (Sandbox Code Playgroud)
它capture_thread_task在线程中运行,我有一个 Flask 应用程序,允许通过调用get_frame.
我希望video_port=True即使在捕捉延时拍摄时也能获取(更高的噪音,但我不在乎)图像,但我得到了一个例外:
from picamera import PiCamera, Color …Run Code Online (Sandbox Code Playgroud) 我在 jetson nano 上使用 raspberry pi 相机 v2。使用带有 python 的 gstreamer 可以正常工作,但尝试通过 javascript 运行它是行不通的。
这是我的一些方法:
方法 1:
带导航器:
<body>
<div id="container">
<video autoplay="true" id="videoElement"></video>
</div>
<!--<script type="module" src="./picam.js"></script>-->
<script>
var video = document.querySelector("#videoElement");
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({ video: true })
.then(function (stream) {
video.srcObject = stream;
})
}
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
有回应:
(index):1 Uncaught (in promise) DOMException: Requested device not found
方法 2:
使用:https : //www.npmjs.com/package/pi-camera-connect
<body>
<div id="container">
<video autoplay="true" id="videoElement"></video>
</div>
<script>
const { StreamCamera, Codec } = …Run Code Online (Sandbox Code Playgroud) 我想解码 H.264 视频序列并将它们显示在屏幕上。视频序列来自 pi 相机,我使用以下代码捕获
import io
import picamera
stream = io.BytesIO()
while True:
with picamera.PiCamera() as camera:
camera.resolution = (640, 480)
camera.start_recording(stream, format='h264', quality=23)
camera.wait_recording(15)
camera.stop_recording()
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解码“流”数据的序列并用 opencv 或其他 python 库显示它们?
我正在 Raspberry Pi 4 上运行 Docker 容器docker-compose,并且想使用picameraPython 中的模块来访问 PiHQCam。我尝试使用本教程让它工作:https://www.losant.com/blog/how-to-access-the-raspberry-pi-camera-in-docker。然而,当尝试构建图像时,它给了我这个错误:
ValueError: This system does not appear to be a Raspberry Pi
Run Code Online (Sandbox Code Playgroud)
然后我尝试了自己的解决方案(见下文),但遇到了这个错误:
picamera.exc.PiCameraMMALError: Failed to create MMAL component b'vc.camera_info': I/O error
Run Code Online (Sandbox Code Playgroud)
这是我的设置:
docker-compose.yml:
ValueError: This system does not appear to be a Raspberry Pi
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM balenalib/rpi-raspbian:latest
RUN apt-get update && \
apt-get upgrade && \
apt-get install -y python3 \
python3-pip
WORKDIR /app
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY …Run Code Online (Sandbox Code Playgroud) 我使用的是 Raspberry Pi V2.1 相机。我想使用 OpenCV 控制相机\xe2\x80\x99s 的曝光时间、快门速度等。我正在关注视频 I/O 文档的 OpenCV 标志。链接在这里:
\nhttps://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html
\n例如:
\n我尝试过使用
\ncv2.CAP_PROP_AUTO_EXPOSURE = 0.25 and 0.75\nRun Code Online (Sandbox Code Playgroud)\n似乎自动曝光正在打开和关闭。但是当我尝试使用手动设置值时
\ncv2.CAP_PROP_EXPOSURE = -1 to -13 (according to some online blogs)\nRun Code Online (Sandbox Code Playgroud)\n相机没有响应。
\n其他标志也是如此。他们中的大多数似乎根本没有响应。\n我已阅读在线文档并了解到标志与相机相关。在这种情况下,OpenCV 文档根本没有帮助。
\n所以我的问题是如何找出哪些标志对 Pi 相机有用以及这些标志的有效值是什么?
\n先感谢您。
\n我的问题是当我将分辨率设置为高于 640x480 时,输出颜色仅位于右下部分。输出的其余部分呈蓝色。
我有一个带有 4GB 内存的 RaspyberryPi4 和一个 PiCamera V2。最高分辨率下CPU占用率不超过~65%。同样的错误也出现在另一个 rapberrypi 及其 picamera (V2 NOIR) 上。
这是图像(不要关心角落里的白条:它们来自糟糕的屏幕截图)
这是我的 python 脚本:
import cv2
cap = cv2.VideoCapture(0)
width = 640; height = 480
# width = 1920; height = 1080
# width = 3280; height = 2464
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
cv2.waitKey()
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH),cap.get(cv2.CAP_PROP_FRAME_WIDTH))
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow('Resolution: '+str(width)+'x'+str(height), frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我知道如果分辨率较高,我会失去较高的帧速率。
有人知道错误的根源可能是什么和/或我如何解决此错误? …
picamera ×7
python ×5
raspberry-pi ×4
opencv ×3
docker ×1
h.264 ×1
javascript ×1
raspbian ×1
resolution ×1