gpt4 book ai didi

python - 在 C/C++ 和 Python 之间共享内存

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:18 25 4
gpt4 key购买 nike

有没有办法共享内存以在 C/C++ 和 python 之间共享 openCV 图像(C++ 中的 MAT 和 python 中的 numpy)图像?不需要多平台,我在 linux 上做,我想在 mmap 或类似的想法之间共享。

我有两个正在运行的进程,一个是用 C 编写的,另一个是用 Python 编写的,我需要在它们之间共享一个图像。

我将通过套接字从 c 进程调用到 python,但我需要通过内存发送图像。

另一种方法是写入内存文件,不确定是否会更耗时。

最佳答案

好吧,这不完全是真正意义上的内存共享。你想要的是 IPC 将图像数据从一个进程发送到另一个进程。

我建议您使用 Unix 命名管道。您将必须以 C/C++ 中的字符串格式获取原始数据,通过管道或 Unix 套接字将其发送到 Python,然后从发送的数据中获取一个 numpy 数组。也许使用 np.fromstring() 函数。

不用担心速度,管道非常快。本地和 Unix 套接字也是如此。大多数时间将浪费在获取字符串表示并将其转回矩阵上。

有一种可能,你可以创建真正的共享内存空间,将C/C++中的OpenCV中的数据直接放入Python中,然后使用Python中的OpenCV取出numpy数组,但会很复杂。如果您不需要光速,最好的选择是命名管道。

关于python - 在 C/C++ 和 Python 之间共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com