Sri*_*har 32
使用cvReduce对我有用.例如,如果您需要将矩阵的逐列和存储为行矩阵,则可以执行以下操作:
CvMat * MyMat = cvCreateMat(height, width, CV_64FC1);
// Fill in MyMat with some data...
CvMat * ColSum = cvCreateMat(1, MyMat->width, CV_64FC1);
cvReduce(MyMat, ColSum, 0, CV_REDUCE_SUM);
Run Code Online (Sandbox Code Playgroud)
OpenCV文档中提供了更多信息.
对于 8 位灰度图像,以下应该有效(我认为)。扩展到不同的图像类型应该不会太难。
int imgStep = image->widthStep;
uchar* imageData = (uchar*)image->imageData;
uint result[image->width];
memset(result, 0, sizeof(uchar) * image->width);
for (int col = 0; col < image->width; col++) {
for (int row = 0; row < image->height; row++) {
result[col] += imageData[row * imgStep + col];
}
}
// your desired vector is in result
Run Code Online (Sandbox Code Playgroud)