我在O'rielly的书中注意到,当使用直方图时,它指的是cvMatND数据结构。但是,这本书没有解释此数据结构的用途以及与cvMat的区别。有人可以向我解释一下吗?谢谢。

最佳答案

cvMat是二维(多通道)数组,即矩阵。cvMatND是一个n维(多通道)数组。

请参阅CXCORE参考手册中的Basic Structures部分。

更新:

直方图可以在任意维度上计算,因此CvHistogram结构使用CvMatND将多维直方图存储到
密集的多维数组结构。

typedef struct CvHistogram
{
    int      type;
    CvArr* bins;
    float thresh[CV_MAX_DIM][2]; // for uniform histograms
    float** thresh2;             // for nonuniform histograms
    CvMatND mat;                 // embedded matrix header
                                 // for array histograms
}
CvHistogram;

08-25 03:14