opencv中Core中的Norm函数解释

server/2024/10/18 12:27:27/

1. Norm的类型

NORM_L1: L1 范数(曼哈顿范数)。数组中所有元素绝对值之和。
NORM_L2: L2 范数(欧几里得范数)。数组中所有元素平方和的平方根。
NORM_INF:无穷范数(最大绝对值范数)。数组中所有元素绝对值的最大值。

2.计算单个数组中的Norm函数

单个数据就是计算标准的Norm函数,按照类型进行计算即可

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

参数解释
@param src1第一个输入数组。
@param normType规范类型(参见#NormTypes)。
@param mask可选操作掩码;它必须与src1类型具有相同的大小。
 示例

Mat mat = Mat(Size(1, 2), CV_8SC1);    
mat.at<int>(0, 0) = 2;
mat.at<int>(1, 0) = 6;
double d = norm(mat, NORM_L2);
cout << "计算结果:" << d<<endl;

返回结果:

3.计算两个数组的Norm函数

这个函数相当于计算两个数组的欧式距离,如果是点数组,就是点的距离。

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

参数解释:

@param src1第一个输入数组。
@param src2第二个输入数组的大小和类型相同的src1。
@param normType规范类型(参见#NormTypes)。
@param mask可选操作掩码;它必须与src1类型具有相同的大小。

Mat mat = Mat(Size(1, 2), CV_8SC1);    
mat.at<int>(0, 0) = 2;
mat.at<int>(1, 0) = 6;
double d = norm(mat, NORM_L2);
cout << "计算结果:" << d<<endl;
Mat mat2 = Mat(Size(1, 2), CV_8SC1);
mat2.at<int>(0, 0) = 1;
mat2.at<int>(1, 0) = 0;
double d2 = norm(mat2, NORM_L2);
cout<<"计算结果:" << d2<<endl;
double ds = norm(mat, mat2,NORM_L2);
cout << "计算结果:" <<ds<<endl;

运行结果:

就是按照每个点的距离求平方和,再平方根。sqrt((2-1)*(2-1)+(6-0)*(6-0))=6.08276。


http://www.ppmy.cn/server/103207.html

相关文章

如何将 ONLYOFFICE 与 Moodle 进行集成,让师生在学习管理平台中协作编辑办公文档

在教学过程中使用现代在线学习软件&#xff0c;已不再是什么稀奇事。在世界各地&#xff0c;越来越多的教师和学生都在使用现代技术&#xff0c;应用新的学习场景&#xff0c;包括学生在传统课堂之外更积极的参与、更密切的互动。 Moodle 支持各类学校和大学充分利用在线教育过…

24年银行从业资格考试报名照规格要求

24年银行从业资格考试报名照规格要求 #银行从业 #银行从业资格证 #银行从业考试 #银行从业资格考试 #银行从业资格证报名照片 #银从

Excel ——3个实用的随机函数(RAND 、RANDBETWEEN、RANDARRAY)

1、RAND 函数 RAND 函数是一个没有参数的函数&#xff1a;RAND () 返回一个大于等于 0&#xff0c;小于 1 的随机实数。 选中任一单元格&#xff0c;在编辑栏输入公式&#xff1a; 如果要生成 a 与 b 之间的随机数&#xff0c;就用&#xff1a; RAND()*(b-a)a 比如要生成-5…

驾驭数据之序:SQL序列的奥秘与实现

标题&#xff1a;驾驭数据之序&#xff1a;SQL序列的奥秘与实现 摘要 在数据库管理中&#xff0c;保证数据的有序性和唯一性是至关重要的。SQL序列&#xff08;Sequence&#xff09;作为一种强大的数据库对象&#xff0c;为我们提供了一种在不同数据库系统中生成连续数字的手…

RabbitMQ实现多线程处理接收消息

前言&#xff1a;在使用RabbitListener注解来指定消费方法的时候&#xff0c;默认情况是单线程去监听队列&#xff0c;但是这个如果在高并发的场景中会出现很多个任务&#xff0c;但是每次只消费一个消息&#xff0c;就会很缓慢。单线程处理消息容易引起消息处理缓慢&#xff0…

特洛伊木马:现代网络安全的隐形威胁

在网络安全领域&#xff0c;特洛伊木马&#xff08;Trojan Horse&#xff0c;简称木马&#xff09;是一种古老却依然十分有效的攻击手段。尽管名字来源于古希腊神话中的特洛伊战争&#xff0c;但在现代信息技术中&#xff0c;木马病毒已演变为一种极具破坏性和隐蔽性的恶意软件…

培训学校课程管理系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

探索顶级PDF水印API:PDFBlocks(2024年更新)

引言 在一个敏感信息常常面临风险的时代&#xff0c;能够轻松高效地保护文档的能力至关重要。PDF水印已成为企业和个人寻求保护其知识产权、确保文件保密性的基本工具。 PDFBlocks 文字水印 API是什么&#xff1f; PDFBlocks API 提供了一个强大的解决方案&#xff0c;用于在…