gpt4 book ai didi

opencv - 在OpenCV中重新分配给Mat

转载 作者:行者123 更新时间:2023-12-02 17:52:23 26 4
gpt4 key购买 nike

我具有以下功能,该功能从OpenCV cv::Mat中提取子图像

void Process(int a,int b,int c,int d)
{
// Extract img(a:b,c:d) each time
subImg = img(cv::Range(a, b), cv::Range(c,d));
}

我循环调用 Process()。每次调用时, a,b,c,d的值都会不断变化。如果将 subImg声明为 cv::Mat subImg;,我可以执行上述操作吗?即OpenCV是否可以动态调整 subImg的大小,还是我必须声明以下基于指针的方法:
cv::Mat* subImg; // Initialized to NULL in constructor

并修改功能,如下所示:
void Process(int a,int b,int c,int d)
{
// Extract img(a:b,c:d) each time
if(subImg) delete subImg;
subImg = img(cv::Range(a, b), cv::Range(c,d)).clone();
}

最佳答案

您可以使用cv::Mat subImg;做到这一点。 cv::Mat使用引用计数,并且子矩阵知道它属于更大的矩阵,因此可以正确释放内存。

关于opencv - 在OpenCV中重新分配给Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553110/

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