Mat数据元素操作计算


Mat数据元素的访问:

  Mat c1 = (Mat_<double>(3, 3) << 1, 5, 6, 2, 4, 2, 5, 9, 4);
  Mat c2(c1);
  sortIdx(c1, c2, SORT_EVERY_COLUMN + SORT_ASCENDING);
  cout << "c1: \n" << c1 << endl;
  cout << "c2: \n" << c2 << endl;
  double c1var = 0.0;
  varMat(c1, 4.5, c1var);
  cout << "  c1var: " << c1var << endl;


void varMat(Mat& inputImg, double mean, double var)
{
	cout << " come in the varMat function " << endl;
	double sum = 0.0;
	int rowNumber = inputImg.rows;
	int colNumber = inputImg.cols * inputImg.channels();
	for (int i = 0; i < rowNumber; i++)
	{
		uchar* data = inputImg.ptr<uchar>(i);
		for (int j = 0; j < colNumber; j++)
		{
			//cout << " come in the varMat function 222222222222222222" << endl;
			sum =data[j] - mean + sum;
			cout << "j : " << j << " data[j]:" << data[j] <<" mean: "<<mean << " sum: " << sum << endl;
		}
		cout << i << " come in the varMat function 111 " << sum << endl;

	}
	cout << "sum : " << sum << endl;
	var = sum / rowNumber * inputImg.cols;
}



代码修改,函数定义的参数列表,最后一个返回参数要 加一个取址符。才能正常返回到 调用函数中。

  double c1var = 0.0; // C++ 声明浮点变量是,必须要附一个初始值,否则后面直接用回报错
  varMat(c1, 4.5, c1var);
  cout << "  c1var: " << c1var << endl;

void varMat(Mat& inputImg, double mean, double& var)










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值