设想情况:
C++程序进程使用OpenCV捕获图像。使用的另一个进程与第一个程序具有共享内存区域(使用mmap)。
问题:
如何在Python进程中创建对共享内存区域中已经存在的相同映像的引用?Python过程中的这个部分可以编写成一个C模块并导入到Python中。
对于我的特定需求,只有C++进程创建和写入数据,而process只读取(和处理)它。
额外信息:
给定相同的图像,data字段C++ cv::Mat和numpy.array是相等的(相同的大小和内容)。所以没有必要改变。
由于这些语言分隔了内存管理器,所以可能需要使用一些外部同步(例如。(信号量)避免一个进程使用从另一个进程释放的区域。
我的问题是在Python对象中创建数据字段指向共享内存中的特定区域的对象。
发布于 2022-01-16 20:38:28
以下选项可用于为预先分配的内存缓冲区创建cv::Mat或numpy.array头:
cv::Mat(int rows, int cols, int type, void * data, size_t step = AUTO_STEP)numpy.frombuffer(buffer, dtype=float, count=- 1, offset=0, *, like=None)https://stackoverflow.com/questions/43990906
复制相似问题