View Code
1 //累加一个三通道矩阵中的所有元素
2 float sum(const CvMat* mat)
3 {
4 float s=0.0f;
5 for(int row=0;row<mat->rows;row++)
6 {
7 const float* prt=(const float*)(mat->data->ptr+row*mat->step);
8 for (int col=0;col<mat->cols;col++)
9 {
10 s+=*prt++;
11 }
12 }
13 return (s);
14 }
//矩阵的元素data是一个联合体。所以对这个指针解引用时,必须指明结构体中的正确的元素以便得到正确的指针类型。
//为了参数正确的偏移必须用矩阵的行数据长度step元素。