从网络摄像头流式传输:框架没有refcount是正常的吗?

时间:2012-11-15 14:56:08

标签: c++ opencv webcam

我有以下代码:

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
int main()
{
    cv::VideoCapture capture(0);
    cv::Mat frame;
    capture>>frame;
    cv::Mat img = frame.clone();
    cv::Mat img2 = frame; // here still the refcount stays null in xcode.
    return 0;
}

然后

frame.refcount ==NULL; // could be wrong
img->refcount == 1; // good
img2.refcount ==NULL; // certainly wrong, should be pointing to 2, at the same address as frame.refcount.

一切似乎都运行良好,但我已经研究过了事情,事实证明frame的引用只是一个空指针(并且在clone()之后保持这种状态),而其他垫子(比如它的克隆)有refcount指向int&gt; = 0。

这是什么原因?

1 个答案:

答案 0 :(得分:1)

According to the docs

  

clone()返回矩阵的深层副本,即数据被复制。

所以 refcount 没有增加是有意义的。有关此主题的更多信息,请查看Memory management and reference counting