cv::norm 详细解释

double norm(InputArray src1, InputArray src2, int normType = NORM_L2);

 norm() 是 OpenCV 中的函数,用于计算两个矩阵之间的差异或误差。

其中:

  • src1 和 src2 是输入矩阵,可以是 cv::Matcv::Mat_<T> 或 std::vector<T> 类型的对象。
  • normType 是一个可选参数,用于指定计算误差的类型。常见的取值为 NORM_L1NORM_L2 和 NORM_INF,分别表示计算 L1 范数、L2 范数和无穷范数。默认值为 NORM_L2

在你提供的代码中,points_reproj_Mat 和 detect_points_Mat 是两个 cv::Mat 对象,它们分别存储了角点的像素坐标。通过调用 norm() 函数并将这两个矩阵作为参数传递,可以计算它们之间的误差。

具体而言,norm(points_reproj_Mat, detect_points_Mat, NormTypes::NORM_L2) 将计算 points_reproj_Mat 和 detect_points_Mat 之间的 L2 范数误差。这意味着它将计算两个矩阵中对应元素之间的差值,并对差值取平方后求和,最后取平方根。

计算的结果将赋值给变量 err,它是一个 double 类型的变量,用于存储误差值。您可以使用该值进行后续的处理或分析。

double norm(InputArray src, int normType = NORM_L2, InputArray mask = noArray());

 

其中:

  • src 是输入的数组,可以是 cv::Mat 或 cv::Mat_<T> 类型的对象。它可以是一维或多维数组。
  • normType 是一个可选参数,用于指定计算范数的类型。常见的取值为 NORM_L1NORM_L2NORM_INF,分别表示计算 L1 范数、L2 范数和无穷范数。默认值为 NORM_L2
  • mask 是一个可选的掩码数组,用于指定哪些元素应该包含在范数计算中。它必须与 src 的尺寸相同,且类型为 CV_8UC1 或 CV_8SC1

cv::norm 函数根据指定的范数类型计算输入数组的范数,并返回一个 double 类型的值作为结果。

以下是对不同范数类型的解释:

  • NORM_L1:计算 L1 范数,也称为曼哈顿范数。对于一维数组,它表示数组中所有元素的绝对值之和。对于多维数组,它表示所有元素绝对值之和的最大值。
  • NORM_L2:计算 L2 范数,也称为欧几里得范数。对于一维数组,它表示数组中所有元素的平方和的平方根。对于多维数组,它表示所有元素平方和的平方根。
  • NORM_INF:计算无穷范数,也称为最大绝对值范数。对于一维数组,它表示数组中绝对值最大的元素的绝对值。对于多维数组,它表示所有元素绝对值的最大值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值