如何在OpenCV中计算平均轮廓

如何在OpenCV中计算平均轮廓,opencv,Opencv,我将平均轮廓称为一维信号,它是通过沿矩形图像中的行或列进行平均而获得的 Px := Σ(y=1,H) I(x, y) / H 及 我在API中找不到,可能是因为没有使用适当的术语 我不需要框过滤器,每行/每列只需要一个值。总和而不是平均值同样好。您可以使用reduce函数: 如果只需要沿所需轴的求和投影,可以使用CV\u REDUCE\u SUM标志。谢谢,这就是我需要的。图像将被视为矩阵还是需要转换?我认为它必须是opencv Mat结构。@Yvesdao如果它解决了您的问题,您也可以接受答

我将平均轮廓称为一维信号,它是通过沿矩形图像中的行或列进行平均而获得的

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

我在API中找不到,可能是因为没有使用适当的术语


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

您可以使用reduce函数:


如果只需要沿所需轴的求和投影,可以使用
CV\u REDUCE\u SUM
标志。

谢谢,这就是我需要的。图像将被视为矩阵还是需要转换?我认为它必须是opencv Mat结构。@Yvesdao如果它解决了您的问题,您也可以接受答案吗?图像和Mat之间缺少链接。您必须将图像转换为opencv Mat结构。这是不可能的,我来帮你,因为我不知道你的图像是什么数据结构存储。这不是你最初的问题,它没有提到图像。无论如何别担心。
Py := Σ(x=1,W) I(x, y) / W
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);