我想获得 MAT 和 MatND 变量的平均值,只是为了估计清晰度和亮度。然而,我一直面临着我所遇到的模糊价值观的真正问题。我尽了最大的努力,但仍然感到困惑。我真的不知道,如果我在做正确的事。
calcHist(&src_yuv,1,channels,Mat(),hist,1,histSize,ranges,true,false);
Size d = hist.size();
rows = d.height;
cols = d.width;
for(int k=0;k<hbins;k++)
{
for(int l=0;l<sbins;l++)
{
total = total + hist.at<float>(k,l);
}
}
brightness = total/(rows*cols);
在这里,我试图计算 src_yuv 的亮度通道的直方图,它是 YUV 格式的,并取平均值。我做对了吗?如果我更改 <' '> 中的数据类型,从 uchar 到 long int,最终会得到不同的值,这是可以理解的。但我不知道哪个是正确的数据类型。此外,我应该在 hbins、sbins 还是 rows、cols 中循环它?请帮我。我坚持了很长时间。
Laplacian(src_gray,dst,ddepth,kernel_size,scale,delta,BORDER_DEFAULT);
Size s = dst.size();
rows = s.height;
cols = s.width;
total = 0;
max = 0;
for(int k=0;k<rows;k++)
{
for(int l=0;l<cols;l++)
{
total = total + dst.at<>(k,l);
}
}
average = total/(rows*cols);
在上述情况下计算平均值的确切方法是什么?你能帮帮我吗?我尝试了不同的数据类型,从 in 开始用于 mat,long int 用于总和平均值。它是一个灰度图像,结果是拉普拉斯卷积图像。