如何定义和平滑3D cv :: Mat

时间:2014-05-11 11:48:33

标签: c++ opencv matrix

我创建了一个3D矩阵作为cv :: mat,它在每个轴(X,Y和Z)上包含从0到255的值,如下所示:

int sizes[] = { 100, 100, 100 };
Mat *matrix;
matrix = new Mat(3,sizes, CV_32FC1, cv::Scalar(0));
for(int i=0;i<100;i++)
    for(int j=0;j<100;j++)
        for(int k=0;k<100;k++){
            //some values are 255
            matrix->at<float>(i,j,k) = 0;
            // and some of them are 255 : (TODO) 

        }

现在我想要整个3D矩阵,我怎么能用opencv lib做到这一点?

任何帮助将不胜感激,

1 个答案:

答案 0 :(得分:0)

我不会使用new Mat()来初始化OpenCV Mat。没有必要这样做。完成后,您还可能会伪造以释放Matrix。

只需使用:

Mat matrix(3,sizes, CV_32FC1, cv::Scalar(0));

至于创建3D矩阵,你可以找到一个很好的例子here

如果您希望使用高斯滤波器过滤3D矩阵,您会发现一个简单示例here