0
我想知道我的图像源上每列的mean
。我们的目标是当平均值为0的所有像素(我的所有像素都是黑色)的第一列布尔值为开关while
。图像处理:线条样本的平均值
我不知道我是否使用vector
,Mat
功能,Line
或其他方式。
我想知道我的图像源上每列的mean
。我们的目标是当平均值为0的所有像素(我的所有像素都是黑色)的第一列布尔值为开关while
。图像处理:线条样本的平均值
我不知道我是否使用vector
,Mat
功能,Line
或其他方式。
可以使用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
,即你可以总结的所有像素或只取最大值。在任何情况下,当一个列(行)只包含零值时,结果将为零。
令人惊叹!非常感谢你。 –