原帖地址:
opencv中的多维数组——MatND的用法,因为直方图就是多维数组,所以了解一下它的基本用法,仅做收藏。
void MatNDReadAndSet() { int M = 192; int N = 168; int K = 7; int size[] = { M, N, K }; CvMatND* mXOrigin = cvCreateMatND( 3, size, CV_32FC1 ); cvSetZero( mXOrigin ); float c = 0; for ( int k=0; kdata.fl + ( M*N*k + N*i + j) ) = c; c = c+1; } } } for ( int k=0; k data.fl + ( M*N*k + N*i + j) ) << "\t"; } cout << endl; } cout << endl; } cvReleaseMatND( &mXOrigin ); }
除了这种方式,在c++中,还可以用另外一种更直接的方式:
uchar tt, tt1;
int dims[3]={256, 256, 256}; cv::MatND lookup(3,dims,CV_8U)
lookup.at<uchar>(i, j,k) = tt;
tt1 = lookup.at<uchar>(i, j,k);