c++ - 在 C++ 和 Python 之间共享视频数据

标签 c++ python windows ipc

我有一个 USB 相机 (uEye),它有一个 C++ 接口(interface),允许您配置相机的一些功能。 C++ 程序可以从相机读取图像数据并将其存储在预先分配的内存中的某个位置。所有这些都在 Windows 下运行。

带有 numpy 的 Python 为我提供了一个简单的环境来处理图像并花一些时间研究我的处理算法。

我想做的是:

  1. 使用c++程序配置摄像头并获取图像(以视频速率),
  2. 将数据传递给 Python
  3. 用 Python 处理数据

我的印象是我不想在 Python 中嵌入 C++ 或在 C++ 中嵌入 Python,因为我更喜欢有两个独立的系统(这样我就可以在没有 Python 的情况下使用相机,或者使用 Python 的东西没有相机)。

到目前为止,我能找到的是使用管道、套接字或映射内存共享某些数据的方法,尽管它似乎仅限于少量数据或字符串。但是,我找不到的是这是否足够快以及我应该尝试实现的指示。我应该这样做吗?

如果这是个坏主意,什么是更好的选择?在 C++ 中嵌入 Python 代码,反之亦然?还是完全放弃 Python,因为节省的开发时间并不能抵消让进程间通信正常工作的额外努力?

最佳答案

有一个recent post在关于实时视频处理的 PyPy 博客上。在示例中,他们使用 mplayer 来抓取和显示视频,这可能比尝试与您的 C++ 程序交互(假设它适用于您的网络摄像头)更可取。如果没有,沿着这些思路思考一个简单的解决方案是连接两个应用程序的标准输出/标准输入。查看用于视频处理的 PyPy 可能也是个好主意。

关于c++ - 在 C++ 和 Python 之间共享视频数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871537/

相关文章:

c++ - 如何判断插入的CD是不是Audio CD?

c++ - 在 C++ 中重命名(别名/转发)函数的最佳方法是什么?

c++ - 如何获取 Chrome 当前版本的当前 URL

python - 完成一个约会,然后再进行另一个约会

regex - 使用 Regex 重命名文件名并使用 powershell 删除之后的所有内容

c++ - 计算彩色图像的 HSV 直方图与 H-S 直方图有何不同?

python - 使用 opencv python 找到该形状的边缘点

python - Pandas DataFrame 按分类列排序,但按特定类排序

windows - 如何在 powershell 中创建一个简短但仍然唯一的目录名称

java - URL 中文件路径的 blackslah 问题