Accessing slices of a 3d Matrix
I would like to store 592 47x47 arrays into a 47x47x592 Matrix. I created the 3d Matrix as follows:
int sizes[] = {47,47,592};
Mat 3dmat(3, sizes, CV_32FC1);
I then thought I could access it by using a set of ranges as in the following.
Range ranges[3];
ranges[0] = Range::all();
ranges[1] = Range::all();
ranges[2] = Range(x,x+1) //within a for loop.
Mat 2dmat = 3dmat(ranges);
However, when I try to use the copyTo function to input an existing data set, it does not work.
data.copyTo(2dmat); //data is my 47x47 matrix
The 3d matrix does not get updated when I do this.
Any information is appreciated! Thanks!
What I do is create a vector of matrix elements. This allows me to easily access the vector index. But it is possible that this is not as effective as the suggestion below.