import sys
import cv2
if __name__=='__main__':# 读取图像okn.jpgimage1 = cv2.imread('ABC.png')if image1 is None:print('无法识别这个图片')sys.exit()image2 = cv2.imread('B.png')if image2 is None:print('无法识别这个图片')sys.exit()cv2.namedWindow('A', 0)cv2.resizeWindow('A', 500, 500)cv2.imshow('A', image2)# 灰度化gray1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)gray2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)# 二值化_,binary1 = cv2.threshold(gray1, 0, 255, cv2.THRESH_BINARY)_,binary2 = cv2.threshold(gray2, 0, 255, cv2.THRESH_BINARY)# 轮廓检测contours1,_=cv2.findContours(binary1,mode=cv2.RETR_TREE,method=cv2.CHAIN_APPROX_SIMPLE)contours2,_=cv2.findContours(binary2, mode=cv2.RETR_TREE, method=cv2.CHAIN_APPROX_SIMPLE)#Hu距计算hu=cv2.HuMoments(cv2.moments(contours2[0]))#轮廓匹配for i in range(len(contours1)):hu1=cv2.HuMoments(cv2.moments(contours1[i]))dist=cv2.matchShapes(hu1,hu,cv2.CONTOURS_MATCH_I1,0)if dist < 1:cv2.drawContours(image1,contours1,i,(0,0,255),3,8)#展示结果cv2.namedWindow('PBDXS',0)cv2.resizeWindow('PBDXS',500,500)cv2.imshow('PBDXS',image1)cv2.waitKey(0)cv2.destroyAllWindows()

运行结果:

OPencv--基于Hu矩的轮廓匹配相关推荐

  1. OpenCV4学习笔记(23)——几何矩、中心矩、归一化矩和Hu矩的计算,以及基于Hu矩的轮廓匹配

    在上次的笔记中,整理记录了有关轮廓发现及轮廓信息提取的一部分内容,同时还记录了Hu矩的计算方式,今天就来记录一下Hu矩的一个应用--轮廓匹配. 在<OpenCV学习笔记(19)--模板匹配> ...

  2. 二值图像分析—Hu矩实现轮廓匹配

    在OpenCV中,可以很方便的得到Hu不变距,Hu矩在图像旋转.缩放.平移等操作后,仍能保持矩的不变性,所以有时候用Hu不变距更能识别图像的特征. Hu矩由于具有尺度.旋转.平移不变性,可以用来做匹配 ...

  3. OpenCV C++案例实战八《基于Hu矩轮廓匹配》

    OpenCV C++案例实战八<基于Hu矩轮廓匹配> 前言 一.查找轮廓 二.计算Hu矩 三.显示效果 四.源码 总结 前言 本文将使用OpenCV C++ 基于Hu矩进行轮廓匹配. 一. ...

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

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

  5. opencv中Hu矩的学习心得

    Hu矩的确很神奇,它具有平移不变性.旋转不变性和缩放不变性,是图形匹配的一个不错的工具. 通过大致对Hu矩的学习,我认为对Hu矩的学习应该有一下几步,第一步要了解什么是矩:第二步再开始了解Hu矩.为了 ...

  6. android opencv hu moment,学习OpenCV:hu矩

    hu矩为描述整体图像特征的一种方法,零阶矩表示它的总质量:一阶矩表示它的质心:二阶矩又叫惯性矩,表示图像的大小和方向. 通过计算普通矩可以知道图像的重心坐标.形状方向等: Mat imgSrc = i ...

  7. 学习OpenCV:hu矩

    hu矩为描述整体图像特征的一种方法,零阶矩表示它的总质量:一阶矩表示它的质心:二阶矩又叫惯性矩,表示图像的大小和方向. 通过计算普通矩可以知道图像的重心坐标.形状方向等: Moments 中的数据类型 ...

  8. 基于Hu矩的区域相似性度量

    Hu矩原理 利用归一化二阶.三阶中心距派生出的7个不变矩,原理及计算公式见博文:Hu矩计算公式. 注: Hu矩变化范围很大,且数字很小,牵涉到计算精度问题,直接处理不方便,可以用取绝对值之后用log函 ...

  9. openCV专栏(八):图像轮廓:绘制轮廓

    OPENCV基础操作 提示:本专栏所用版本仅供参考,其他版本也可 库 版本 python Python 3.9.3 opencv 4.5.5 matplotlib 3.4.3 numpy 1.19.5 ...

最新文章

  1. [UWP]实现一个轻量级的应用内消息通知控件
  2. Matlab与线性代数 -- 对角矩阵
  3. 关于delphi 窑洞的关闭
  4. Framework 动态库加载 xib
  5. 通过飞行CALL找到BT飞行偏移 和飞行状态偏移
  6. 还想“躺着挣钱”?这家背靠世界500强的工程机械企业如何做?
  7. 18 个 jQuery Mobile 开发贴士和教程
  8. java 在数组末尾添加元素_Java快问快答:用 ArrayList 还是 LinkedList?
  9. ajax请求web服务返回json格式
  10. Flurry调查报告:图片和视频应用增长速度最快
  11. 运算符的优先级及有哪些运算符
  12. WebCollector 简介与 快速入门
  13. 系统集成项目管理工程师真的好考吗?
  14. 重庆大学计算机学院期刊范围,重庆大学期刊目录.doc
  15. 【李宏毅机器学习2021】Task02 回归
  16. 中德制造业数字化转型白皮书出炉(附下载)
  17. 1万小时缔造的世界第一程序员
  18. Python攻城师的成长————MySQL数据库关键字
  19. PyTorch训练中Dataset多线程加载数据,比Dataloader里设置多个workers还要快
  20. A股十大股东持股数据查询网站的数据库设计

热门文章

  1. uniapp-条件编译安卓Android/苹果iOS
  2. 苹果mac电脑上软件如何强制删除?
  3. 解读《电信重组公告》:3G发牌仍然无期限
  4. Scrum板与Kanban如何抉择?敏捷工具:mouglu板与按照tnisvdpa
  5. 消息称高通骁龙 895 样品性能提升可达 20%
  6. 当我们浏览器访问某个网站时,中间经历了什么,如何到达对方的?
  7. 满清雍正皇帝严惩贪官污吏的狠招(转)
  8. ubuntu开机进入grub解决方法
  9. 王者营地显示主宰进攻服务器,王者荣耀必备知识点 暴君主宰及野区兵线刷新时间...
  10. type 和 interface的区别