Вы можете вычислить среднего (и сумму, мин, макс) каждый столбца (или строк) в матрице с помощью reduce
Это небольшой пример который показывает, как вычислить среднее значение для каждого столбца и каждой строки.
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// Create a random 1 channel matrix
Mat1b img(10,20);
randu(img, Scalar(0), Scalar(10));
// Compute the mean of each column
Mat1f colMean;
reduce(img, colMean, 0, CV_REDUCE_AVG, CV_32F);
// colMean is a 1x20 matrix (row matrix)
// Compute the mean of each row
Mat1f rowMean;
reduce(img, rowMean, 1, CV_REDUCE_AVG, CV_32F);
// rowMean is a 10x1 matrix (column matrix)
return 0;
}
Обратите внимание, что для проверки, если значения в столбце (строке) равны нулю, можно также использовать CV_REDUCE_SUM
или CV_REDUCE_MAX
, то есть вы можете суммировать все пиксели или принимать только максимальное значение. В каждом случае, когда столбец (строка) содержит только нулевые значения, результат будет равен нулю.
Удивительно! Большое спасибо. –