Ask Your Question

Revision history [back]

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!

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!