2016-08-15 118 views
1

我称之为通过平均沿着矩形图像中的行或列获得的1D信号的平均轮廓。我如何计算OpenCV中的平均轮廓

Px := Σ(y=1,H) I(x, y)/H 

Py := Σ(x=1,W) I(x, y)/W 

我找不到该API中,可能不使用合适的术语。

我不想要一个盒式过滤器,每行/每列只有一个值。总和而不是平均值同样好。

回答

2

可以使用减少功能:http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#reduce

using namespace cv; 

// Average over rows 
Mat mean_over_rows; 
reduce(input_mat, mean_over_rows, 0, CV_REDUCE_AVG); 
// Average over the columns 
Mat mean_over_cols; 
reduce(input_mat, mean_over_cols, 1, CV_REDUCE_AVG); 

可以使用CV_REDUCE_SUM标志,如果你只是想沿所需轴的总结投影。

+0

谢谢,这是我需要的。将图像视为矩阵还是需要转换? –

+0

我认为它必须是一个opencv Mat结构。 – Luca

+0

@ YvesDaoust如果它解决了您的问题,您是否也可以接受答案? – Luca