1. 在使用vector保存opencv的Mat数据时,遇到一个深拷贝和浅拷贝的问题:
Mat tmp = Mat::zeros(.....)
int iter;
vector<Mat> matBuffer;
for(iter = 0; iter < TotalCnt; ++iter)
{
matBuffer.push_back(tmp); // 此时matbuffer中存储的是相同的Mat数据,即浅拷贝
}
(2) 想要实际保存TotalCnt个不同的Mat时,需要写为如下代码:
int iter;
vector<Mat> matBuffer;
for(iter = 0; iter < TotalCnt; ++iter)
{
Mat tmp = Mat::zeros(.....)
matBuffer.push_back(tmp); // 此时matbuffer中存储的是不同的Mat数据,此时,对matBuffer中的任何一个元素操作都是独立的
}