当前位置: 首页 > news >正文

cv::matchShapes的ShapeMatchMode分别对应什么算法

本质上都是Hu矩,查看文档, opencv 4.x
在这里插入图片描述

3.x其实也是一样
在这里插入图片描述

以下代码基于 opencv 3.1.0

opencv2\imgproc\types_c.h

enum ShapeMatchModes
{CV_CONTOURS_MATCH_I1  =1, CV_CONTOURS_MATCH_I2  =2, CV_CONTOURS_MATCH_I3  =3  
};

source\modules\imgproc\src\matchcontours.cpp

double cv::matchShapes(InputArray contour1, InputArray contour2, int method, double)
{double ma[7], mb[7];int i, sma, smb;double eps = 1.e-5;double mmm;double result = 0;HuMoments( moments(contour1), ma );  //计算Hu矩HuMoments( moments(contour2), mb );  //计算Hu矩switch (method){case 1:for( i = 0; i < 7; i++ ){double ama = fabs( ma[i] );double amb = fabs( mb[i] );if( ma[i] > 0 )sma = 1;else if( ma[i] < 0 )sma = -1;elsesma = 0;if( mb[i] > 0 )smb = 1;else if( mb[i] < 0 )smb = -1;elsesmb = 0;if( ama > eps && amb > eps ){ama = 1. / (sma * log10( ama ));amb = 1. / (smb * log10( amb ));result += fabs( -ama + amb );}}break;case 2:for( i = 0; i < 7; i++ ){double ama = fabs( ma[i] );double amb = fabs( mb[i] );if( ma[i] > 0 )sma = 1;else if( ma[i] < 0 )sma = -1;elsesma = 0;if( mb[i] > 0 )smb = 1;else if( mb[i] < 0 )smb = -1;elsesmb = 0;if( ama > eps && amb > eps ){ama = sma * log10( ama );amb = smb * log10( amb );result += fabs( -ama + amb );}}break;case 3:for( i = 0; i < 7; i++ ){double ama = fabs( ma[i] );double amb = fabs( mb[i] );if( ma[i] > 0 )sma = 1;else if( ma[i] < 0 )sma = -1;elsesma = 0;if( mb[i] > 0 )smb = 1;else if( mb[i] < 0 )smb = -1;elsesmb = 0;if( ama > eps && amb > eps ){ama = sma * log10( ama );amb = smb * log10( amb );mmm = fabs( (ama - amb) / ama );if( result < mmm )result = mmm;}}break;default:CV_Error( CV_StsBadArg, "Unknown comparison method" );}return result;
}
http://www.dtcms.com/a/557935.html

相关文章:

  • 网站优化两大核心要素是什么网站优化和推广方案ppt
  • *HQL语法简介
  • React Native 快速入门指南
  • (125页PPT)埃斯顿自动化PLM平台建设方案(附下载方式)
  • 建个人免费网站用哪个前端开发培训学费
  • win11上如何用mstsc+frp在宿舍远程控制工位win11主机
  • JavaScript 核心知识点全解析:变量声明、深浅拷贝、箭头函数与数组方法。
  • 浏览器是如何运作的?深入解析从输入URL到页面渲染的完整过程
  • 做鞋的垂直网站湖北三丰建设集团股份网站
  • Nodejs通过get请求获取api.open-meteo.com网站的天气数据
  • 做网站的工作室建设360导航网站的目的是什么
  • 广西建设工程协会网站查询网站图标ico 设置
  • 使用Java通过get请求获取api.open-meteo.com网站的天气数据
  • 网页商城设计商城网站设计案例进入wordpress后
  • ps制作个人网站佛山外发加工网
  • 建设电影网站论文上海做网站哪里好
  • 北京地下室电梯井渗漏水防水堵漏维修施工解决方案
  • 存储设备的“分配单元大小“(allocation unit size)是什么?
  • 婚纱网站页面设计图片保定模板做网站
  • 506-Spring AI Alibaba Multi-Agent OpenManus 功能完整案例
  • 做的比较好的网站有哪些从化区住房和建设局网站
  • 软件测试大赛web测试-python【备赛4 复盘待完善】
  • 37_AI智能体工具插件之Agent决策状态模型和JSON输出解析器数据模型设计实战
  • <项目代码>yolo织物缺陷识别<目标检测>
  • 构建AI智能体:八十一、SVD模型压缩的艺术:如何科学选择K值实现最佳性能
  • Megatron-LM张量并行详解:原理、实现与应用
  • systemd timer定时任务 —— 筑梦之路
  • win7 iis7 添加网站百度竞价网站建设
  • js网站分页怎么做wordpress怎么保存图片
  • linux-系统启动-8