2015-11-15 5 views
0

Я хотел бы знать mean каждого столбца на моем источнике изображения. Цель состоит в том, когда первые столбцы, которые имеют среднее значение 0 (все мои пиксели черные), логическим является переключатель для выхода while.Обработка изображений: Среднее значение строки

Я не знаю, использую ли я vector, функцию Mat, Line или по-другому.

ответ

1

Вы можете вычислить среднегосумму, мин, макс) каждый столбца (или строк) в матрице с помощью 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, то есть вы можете суммировать все пиксели или принимать только максимальное значение. В каждом случае, когда столбец (строка) содержит только нулевые значения, результат будет равен нулю.

+0

Удивительно! Большое спасибо. –

Смежные вопросы