#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
float mean_cal(Mat &src, uchar thresholdValue)
{
float total = 0;
unsigned int index = 0;
for (int i = 0; i < src.cols; i++)
{
for (int j = 0; j < src.rows; j++)
{
if (src.at<uchar>(j, i) > thresholdValue)
{
total += src.at<uchar>(j, i);
index++;
}
}
}
float meanv = total* 1.0 / index;
return meanv;
}
int main()
{
Mat a(100, 100, CV_8UC1);
for (int i = 0; i < a.cols-50; i++)
{
for (int j = 0; j < a.rows; j++)
{
a.at<uchar>(j,i) = 0;
}
}
for (int i = 50; i < a.cols; i++)
{
for (int j = 0; j < a.rows; j++)
{
a.at<uchar>(j,i) = 255;
}
}
float mm = mean_cal(a, 0);
Mat mat_mean, mat_stddev;
meanStdDev(a, mat_mean, mat_stddev);
double m, s;
m = mat_mean.at<double>(0, 0);
s = mat_stddev.at<double>(0, 0);
imshow("1", a);
waitKey(100);
waitKey();
return 0;
}
图像局部均值计算与全局均值计算
最新推荐文章于 2021-08-12 23:48:45 发布