【发布时间】:2026-02-08 18:25:01
【问题描述】:
场景:
C++ 程序进程使用 OpenCV 捕获图像。 另一个使用 Python 和 OpenCV 的进程与第一个程序有一个共享内存区域(使用 mmap)。
问题:
如何在 Python 进程中创建对共享内存区域中已存在的同一图像的引用? Python 进程中的这一部分可以编写为 C 模块并导入 Python。
对于我的特定需求,只有 C++ 进程创建和写入数据,而 Python 进程只是读取(和处理)它。
额外信息:
给定相同的图像,C++ 的cv::Mat 和numpy.array 的data 字段相等(大小和内容相同)。所以不需要转换。
由于语言已经分离了内存管理器,它可能必须使用一些外部同步(例如信号量)来避免一个进程使用来自另一个进程的已释放区域。
我的问题是在 Python numpy.array 对象中创建数据字段指向共享内存中的特定区域。
【问题讨论】:
标签: python c++ opencv numpy shared-memory