问题标签 [picamera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
527 浏览

python - 使用 bbox、opencv 和 python 对视频进行对象跟踪

我正在尝试创建一个可以跟随我选择的人类的机器人,为此我使用带有 python 和 openCV 的树莓派。

我想围绕一个人创建 bbox,我希望我的相机跟踪那个人,我在互联网上找到了一些代码,我试图把它们放在一起,但是当我启动它给我图像的代码时,我可以选择一个对象但是它不会更新帧并且图像被冻结。

当 ii 按空格键或其他键时,它也会给我一个错误:“ok = tracker.init(image, bbox) NameError: name 'tracker' is not defined”

有人可以给我一些建议吗?这是仅用于对象跟踪的代码:

0 投票
1 回答
65 浏览

python-3.x - 如何将 GUI 脚本 (gui.py) 集成或调用到源脚本 (main.py)?

什么样的模块、语法、函数或者我需要使用类(oop)?我还是个婴儿 python3, opencv4....请帮忙

gui.py

'''

'''

主文件

'''

'''

现在,我只想拥有简单的用户界面...只需按下''(button1),main.py 就会弹出

0 投票
1 回答
541 浏览

python - 使用 PiCamera、OpenCV 在录制时提取和分析帧

我正在使用 piCamera 将视频从我的 raspberryPi 流式传输到网络套接字,以便我可以在本地网络中查看它。

我想从头开始制作自己的运动检测脚本,因此我想从视频流中获取第一张图像(这将是纯背景),然后与下一个帧到第一个帧的函数进行比较,以检查是否有东西改变了(我已经单独编写了这些函数),我并不真正担心这里的效率。

主要问题:我想从 BytesIO 对象中的这些帧中获取数据,然后将它们转换为 B&W 中的 2D numpy 数组,以便我可以执行操作。所有这一切都在保持流进行的同时(事实上,我已经将帧速率降低到每秒 4 帧,以使其在我的计算机上运行得更快)。

以下代码遇到的问题:我发现的问题之一是数字偏离了。在我的设置中,我的相机的分辨率约为 640*480(= 307,200 长度的黑白数组像素数据),而我在 len() 中的计算返回不到 100k 像素。

0 投票
2 回答
139 浏览

python - 使用 python 套接字流式传输视频并发送响应

我从https://picamera.readthedocs.io/en/latest/recipes2.html#rapid-capture-and-streaming修改了 picamera 脚本,以便能够将视频从我的覆盆子流式传输到我的计算机并同时发送命令从电脑到树莓派。

我的客户端代码如下所示:

和我的服务器代码:

这行得通,但感觉不对,并且有时会非常滞后。根据流 fps,我不必在每帧之后发送命令,因此等待响应并不总是必要的,而是会丢弃流 fps。

我该如何解决这个问题?我应该在每一侧打开另一个线程和另一个套接字以获取响应吗?

0 投票
1 回答
379 浏览

python - 使用opencv和picamera(V2)在高分辨率下出现白/蓝平衡错误

我的问题是当我将分辨率设置为高于 640x480 时,输出颜色只在右下角。输出的其余部分为蓝色。

我有一个带有 4GB 内存的 RaspyberryPi4 和一个 PiCamera V2。CPU 使用率不超过 ~65%,分辨率最高。同样的错误也出现在另一个 rapberrypi 及其 picamera (V2 NOIR) 上。

这是图片(不要关心角落里的白条:它们来自糟糕的屏幕截图)

640x480 - 正常

1920x1080 - 有错误

3280x2464 - 有错误

这是我的python脚本:

我知道高分辨率我会失去更高的帧率。

有人知道错误的来源和/或我如何解决此错误?

问候

0 投票
1 回答
199 浏览

python - 关闭 Pi 相机的先前实例

我有一个带有人脸检测脚本的 Flask 应用程序正在运行并流式传输它的输出。如果我在浏览器中加载应用程序,它可以正常工作并显示来自 pi 的视频。如果重新加载网页流失败并抛出错误:

picamera.exc.PiCameraAlreadyRecording:相机已经在使用端口 0

如果我重新加载运行 Flask 应用程序的 apache2 服务器,一切正常。在这里,有什么方法可以停止以前的相机实例/进程?

我尝试了很多方法camera.stop_recording()camera.close()但没有运气。

人脸检测.py:

/videoStream路线注册在index.py

0 投票
0 回答
209 浏览

python - 几个小时后,Raspberry Pi 停止运行 cron 作业

我的树莓派 4 设置为每小时运行一个 python 脚本,它会打开一些飞利浦色调灯并使用相机模块拍照。它完美运行了 26 天,然后停止运行。如果我重新启动它,它会再次工作几个小时,然后停止工作。

当处于损坏状态时,系统日志显示 cron 作业试图运行我的脚本,但它既不打开灯也不拍照。在这种状态下,我也不能再使用 VNC 客户端访问树莓派,但可以 SSH 进去。

运行top,内存和cpu看起来并没有特别重,但我真的不知道该寻找什么。

在 syslog 中,您可以看到我的脚本在 3:25 运行,然后就出现了内核问题。树莓派确实在 3:25 拍了照片,但在那之后失败了,直到我重新启动:

还有这样的错误:

任何帮助表示赞赏!

0 投票
1 回答
872 浏览

python - 如何在 Python 中通过 ZeroMQ PUB/SUB 从 Raspberry Pi 接收图像?

我想将 Picamera 在 Raspberry Pi 上拍摄的图像发送到我的 windows 计算机。

我写了一些代码,如下(它们在这里被简化了),但是它卡在
frame = footage_socket.recv_string()client.py.

我没有收到任何错误,但它总是卡在代码中,就像它冻结一样,无法转到下一行。工作正常并连续server.py打印。'test'如果您查看jpg_as_text,您可以看到编码文本。

server.py

client.py

0 投票
0 回答
477 浏览

ffmpeg - 在 Ubuntu Linux 中将 6 个视频文件拼接成一个 360 视频

我使用 2 个 raspberry PI 使用 OSC 服务器同步录制 2 个不同的视频,因此视频完全同步,然后我将它们发送到 Linux 服务器,这样我就可以拼接这些视频并制作一个 360 度视频文件,到目前为止我已经尝试过这样做在 2 个视频上仅用于测试目的,使用两种方法: 1- 仅 ffmpeg:只需将两个视频合并为一个,但这不会产生 360 度视频,如此处所示在此处输入图像描述

2-按照本教程使用ffmpeg和hugin(https://medium.com/@xorgol/stitching-multi-camera-360-video-an-open-source-workflow-bb8b1e72925):这里的问题是我需要做在我拥有的每个视频文件上使用此方法,然后连接两个视频以产生此结果在此处输入图像描述

可以在这里看到原始视频,它使用 RPI 相机模块 V2 使用提供 3280x2464 分辨率的镜头捕获。 在此处输入图像描述

我不介意一点重叠或任何事情,我只需要使用两个具有 180 度 FOV 的 vamera 从 2 个视频中生成 360 视频,并且能够使用 360 视频播放器查看它们,因此感谢您的帮助。

0 投票
1 回答
1194 浏览

c++ - Running PiCamera on Ubuntu in C++

I'm trying to get my PiCamera Module v2.1 running on my RaspberryPi4. Unfortunately I must install the Ubuntu 19.10 64bit distribution. So far so good.

I've installed Opencv4. There was some big trouble because it seems like Ubuntu does not come with VideoCore, raspi-config etc. So I downloaded and updated my firmware with sudo rpi-update and installed userland.

First I tried to open the camera with Videocapture cap(0), but this throws a bunch of errors (see here Ubuntu 19.10: Enabling and using Raspberry Pi Camera Module v2.1) and I've read that this is only for usb cameras (actually i can't believe this, because under Raspbian, I can use the module like this)

So I googled and found this repo https://github.com/cedricve/raspicam. I've installed it, but even with this I cannot get it running.

Again here is what I've down:

  • install opencv4
  • update firmware
  • install userland
  • writing start_x=1 and "gpu_mem=128" to /boot/firmware/config.txt
  • doing modprobe bcm2835-v4l2
  • sudo vcgencmd get_camera results in supported and detected = 1

When I use sudo raspistill -o test.jpg a window opens and the image is saved. But there are some errors:

Also I need to start it with sudo, although I've run sudo usermod -a -G video ubuntu several times (also rebooted). Strange, isn't?

My example script for accessing the camera is:

Compilation is successful:

Executing stream (even with sudo) results in:

Does anyone have an idea what I can try?

Thanks !