OpenCV-累加矩陣中的所有元素
阿新 • • 發佈:2019-02-06
1:程式碼如下:
執行結果:#include "stdafx.h" #include "highgui.h" #include "cv.h" #include "iostream" using namespace std; void PrintMat2(CvMat*target, char * name)//第一個引數為cvMat矩陣指標,第二個引數為輸出的矩陣的名字 { printf("%s:\n", name); for (int i=0; i<target->rows; i++) { for (int j=0; j<target->cols;j++) { printf("%f\t", cvmGet(target, i,j)); } printf("\n"); } } float sum(const CvMat* mat) { float s=0.0f; for(int row=0;row<mat->rows;row++) { //ptr[p]的意思就是data裡的ptr陣列的第p的元素,而ptr就代表陣列首指標。 const float* ptr=(const float*)(mat->data.ptr+row*mat->step);//獲取第row行的行首指標 for(int col=0;col<mat->cols;col++) { s +=*ptr++; } } return s; } int main() { float vals[]={1,2,3,4}; CvMat rotmat; //cvInitMatHeader(CvMat矩陣指標,行數,列數,資料型別,一維矩陣指標) cvInitMatHeader(&rotmat,2,2,CV_32FC1,vals); PrintMat2(&rotmat,"romat"); cout<<"rotmat矩陣中所有元素的和為:"<<sum(&rotmat)<<endl;; return 0; }