我将OpenCV与具有自己的ref-counting图像类的遗留代码库集成在一起。我添加了一个构造函数,用于从cv :: Mat创建这些图像。作为优化,我想利用cv :: Mat的引用计数机制&当它拥有数据时,制作浅拷贝。但是,当它使用外部数据时,我需要强制进行深层复制。
问题在于,通过阅读文档,我没有看到确定cv :: Mat是否拥有其数据的方法。可以这样做(不修改OpenCV)吗?
BTW,如果重要,我使用的是OpenCV 3.1。
答案 0 :(得分:3)
使用cv :: Mat的成员UMatData * u
。如果cv :: Mat使用外部数据,它应该为0,否则你可以按如下方式获得ref计数器
img.u->refcount