Deep copy of list of instances with cv::Mat members
What is the best way to make a deep copy of a list of instances who have Mat members?
Lets say I have this class:
class myClass {
public:
Mat image;
myClass(Scalar value) {
this->image = Mat(300, 300, CV_8UC3, value);
}
};
I can populate a list of instances with:
instances.push_back(myClass(Scalar(0,255,0)));
instances.push_back(myClass(Scalar(0,255,255)));
Now I would like a second list that is a deep copy of the instances including the underlying Mat data. Just doing the following does a shallow copy:
list<myClass> newInstances = instances;
The problem is that I have opencv doing some vision stuff in one thread, and I want to copy the data into the main renderer such that the renderer will not keep data from being cleared in the thread.
Thanks.