【Opencv&Cpp】12 像素统计:最大/小值、平均值、标准差

minMaxLoc  找到全局最小和最大值

meanStdDev  计算矩阵的均值和标准偏差

找到全局最小和最大值 minmaxloc 

minMaxLoc(InputArray src, double* minVal, double* maxVal = 0, Point* minLoc = 0, Point* maxLoc = 0, InputArray mask = noArray());

  • src,输入的数组,若是图像,需为单通道图像。
  • minVal,返回最小值的指针。若无需返回,此值设为 NULL。
  • maxVal,返回最大值的指针。若无需返回,此值设为 NULL。
  • minLoc,返回最小值位置的指针(二维情况下)。若无需返回,此值设为 NULL。
  • maxVal,返回最大值位置的指针(二维情况下)。若无需返回,此值设为 NULL。
  • mask,可选的掩膜操作,非零掩码元素用于标记待统计元素,需要与输入图像集有相同尺寸。

计算矩阵的均值和标准偏差 meanStdDev

void meanStdDev(InputArray src,OutputArray mean, OutputArray stddev, InputArray mask=noArray())

  • src:输入矩阵,这个矩阵应该是1-4通道的,这可以将计算结果存在Scalar_ ‘s中
  • mean:输出参数,计算均值
  • stddev:输出参数,计算标准差
  • mask:可选参数

double minv, maxv;
	Point minLoc, maxLoc;
	std::vector<Mat> mv;  //容器

	split(image, mv);
	for (int i = 0; i < mv.size(); i++) {
		minMaxLoc(mv[i], &minv, &maxv, &minLoc, &maxLoc, Mat());
		std::cout << "No. channels:" << i << " min value:" << minv << " max value:" << maxv << std::endl;
	}
	Mat mean, stddev;
	Mat redback = Mat::zeros(image.size(), image.type());
	redback = Scalar(40, 40, 200);
	meanStdDev(redback, mean, stddev);
	imshow("redback", redback);
	std::cout << "means:" << mean << std::endl;
	std::cout << " stddev:" << stddev << std::endl;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值