1、matchShapes函数

函数作用:

比较两个形状的相似度

2、matchShapes函数调用形式

double cvMatchShapes(
const void* object1,
const void* object2,
int method,
double parameter = 0
);

第一个参数是待匹配的物体1,第二个是待匹配的物体2,,,,,,,,,

主要是获取两个图像的7个hu-moments进行计算得到的
第三个参数method可以有CV_CONTOURS_MATCH_I1,CV_CONTOURS_MATCH_I2,CV_CONTOURS_MATCH_I3

  • method=CV_CONTOURS_MATCH_I1

  • method=CV_CONTOURS_MATCH_I2

  • method=CV_CONTOURS_MATCH_I3

where

and  are the Hu moments of  and  , respectively.

三种输入,这其实就是三种不同的判定物体相似的方法,匹配的返回值也是不一样的其返回值分别通过下面的公式计算得出

opencv代码:

# include "cv.h"
# include "highgui.h"
# include <iostream>
using namespace std;int main()
{ IplImage *mode = cvLoadImage("D:\\picture\\jz.jpg", 1);IplImage *test = cvLoadImage("D:\\picture\\stuff.jpg", 1);IplImage* bw_mode = cvCreateImage(cvGetSize(mode),mode->depth,1);IplImage* bw_test = cvCreateImage(cvGetSize(test),mode->depth,1);IplImage* canny_mode = cvCreateImage(cvGetSize(mode),mode->depth,1);IplImage* canny_test = cvCreateImage(cvGetSize(test),mode->depth,1);CvMemStorage *mode_mems=cvCreateMemStorage();CvSeq *mode_seqs;CvMemStorage *test_mems=cvCreateMemStorage();CvSeq *test_seqs;cvCvtColor(mode,bw_mode,CV_RGB2GRAY);cvCvtColor(test,bw_test,CV_RGB2GRAY);//model contourscvCanny(bw_mode,canny_mode,50,60);cvFindContours( canny_mode, mode_mems,&mode_seqs,sizeof(CvContour),CV_RETR_TREE);//test contourscvCanny(bw_test,canny_test,50,60);cvFindContours( canny_test, test_mems,&test_seqs,sizeof(CvContour),CV_RETR_TREE);double matching=cvMatchShapes( test_seqs, mode_seqs, CV_CONTOURS_MATCH_I1,0);cout << matching << endl;system("pause");//释放内存
}

matchShapes函数相关推荐

  1. opencv 利用轮廓检索函数实现字母匹配(图像匹配)

    在待识别图像上找到模板图像 待识别图像: 模板图像: 识别原理 1. 将待识别图像 -> 灰度图像 -> 二值图像 2. 通过轮廓检索函数 cv.findContours 找到待识别图像所 ...

  2. OpenCV3学习(9.4)轮廓矩及其匹配(Moments 、HuMoments、matchShape函数)

    矩的概念介绍 矩函数在图像分析中有着广泛的应用,如模式识别.目标分类.目标识别与方位估计.图像的编码与重构等.从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的 ...

  3. OpenCV学习(33) 轮廓的特征矩Moment

    在OpenCV中,可以很方便的计算多边形区域的3阶特征矩,opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩. class Moments { public: ...... // 空间矩 ...

  4. openCVPracticalExercise学习笔记02

    原创:openCVPracticalExercise学习笔记02 10使用Hu矩进行形状匹配 Hu矩(或者更确切地说是Hu矩不变量)是使用对图像变换不变的中心矩计算的一组7个变量.事实证明,前6个矩不 ...

  5. 【opencv 450 Image Processing】Image Moments 图像矩

    Goal 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::moments 使用 OpenCV 函数 cv::contourArea 使用 OpenCV 函数 cv::arcLength ...

  6. win10+Python3.7.3+OpenCV3.4.1入门学习(十二 图像轮廓)————12.4 Hu矩

    文章目录 12.4 Hu矩 12.4.1 Hu矩函数 12.4.2 形状匹配 Python版本是Python3.7.3,OpenCV版本OpenCV3.4.1,开发环境为PyCharm 12.4 Hu ...

  7. [OpenCV实战]10 使用Hu矩进行形状匹配

    目录 1 什么是图像矩? 2 如何计算图像矩 2.1 质心获取 2.2 中心矩 2.3 Hu矩 3 基于Hu矩实现形状匹配 3.1 Hu矩的计算 3.2 基于matchShapes函数计算两个图形之间 ...

  8. Opencv之利用matchshape算子实现简单的形状匹配

    Opencv之利用matchshape算子实现简单的形状匹配 算子: matchShapes( InputArray contour1, InputArray contour2, int method ...

  9. 精通 Python OpenCV4:第三、四部分

    原文:Mastering OpenCV 4 with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 计算机视觉 译文集],采用译后编辑(MTPE)流程来尽 ...

最新文章

  1. 20131003国庆作业例4-4,4-5,4-6.
  2. OpenMP参考链接
  3. tomcat两个项目冲突
  4. Spring的依赖注入陷阱
  5. 大学计算机导论报告,大学计算机导论论文参考.docx
  6. 吴恩达深度学习3.1笔记_Structuring Machine Learning Projects_机器学习策略(1)
  7. 离散数学(五)上课复习笔记(无向图的连通性、有向图、欧拉图、哈密顿图、二部图、平面图)
  8. java 实现ukey身份认证_一种基于ukey认证的单点登录实现方法与流程
  9. 真正的【清华大学计算机系】是什么样子?
  10. android 远程控制windows,Android手机远程控制Windows系统教程
  11. 计算机画图软件技巧,CAD绘图技巧(一)—速度篇
  12. 2018蓝桥杯校选复现3
  13. java 僵尸进程_神奇的Java'僵尸'进程问题
  14. 使用Quantlib,通过YTM计算债券净值
  15. 热爱生活的人请过来看看:有没有通过叶子或花来识别植物的软件?
  16. rvtptcontrol failed
  17. OTA制作及升级过程
  18. Echarts使用map3D+visualMap 实现地图下钻,区域高亮状态下变高
  19. Flux Architecture on Android
  20. springdata数据源的配置

热门文章

  1. 声腔设计中无前腔的影响
  2. 高通QSD MSM APQ区别
  3. 关于LCD的分屏与切屏 Tearing effect
  4. java dagger2_从零开始搭建一个项目(rxJava+Retrofit+Dagger2) --完结篇
  5. python import出错_python import的一些问题
  6. 生态篇-HBase 生态介绍
  7. Hadoop、Spark、Hbase、Hive的安装
  8. JAVA学习笔记--初始化与清理
  9. 微信小程序——获取所有资讯接口数据
  10. CSS3秘笈第三版涵盖HTML5学习笔记6~8章