**opencv中 cv.matchShapes() 可以检测两个形状之间的相似度,返回值越小,越相似。**先读入下面这张图片:

进行实验:

import numpy as np
import cv2 as cv
img = cv.imread('shapes.jpg', 0)
_, thresh = cv.threshold(img, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)contours, hierarchy = cv.findContours(thresh, 3, 2)
img_color = cv.cvtColor(thresh, cv.COLOR_GRAY2BGR)  # 用于绘制的彩色图cnt_a, cnt_b, cnt_c = contours[0], contours[1], contours[2]
cv.drawContours(img_color,[cnt_a],0,[255,0,0],2)
cv.drawContours(img_color,[cnt_b],0,[0,255,0],2)
cv.drawContours(img_color,[cnt_c],0,[0,0,255],2)# 参数3:匹配方法;参数4:opencv预留参数
print('b,b = ',cv.matchShapes(cnt_b, cnt_b, 1, 0.0))  # 0.0
print('b,c = ',cv.matchShapes(cnt_b, cnt_c, 1, 0.0))  # 2.17e-05
print('b,a = ',cv.matchShapes(cnt_b, cnt_a, 1, 0.0))  # 0.418cv.imshow('result',img_color)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果:

可以看到,b和自己匹配,返回值最小,为0。b和c匹配返回的数值远小于b和a匹配的数值,表示c相对a来说,和b形状更相似。

opencv 物体形状匹配相关推荐

  1. 不规则物体形状匹配综述

    不规则物体形状匹配综述 物体识别是计算机视觉应用的一项基本任务.识别通常基于目标物体的灰度信息.颜色信息或形状信息.物体识别的目的就是要找到一个包含可以区分不同目标物体的有效信息的描述.由于要识别的物 ...

  2. opencv物体形状相似度对比

    import cv2 from math import *def rota(img, degree):height, width = img.shape[:2]# 旋转后的尺寸heightNew = ...

  3. OpenCV计算机图像处理 —— 凸性缺陷 + 点多边形测试 + 形状匹配 + 轮廓分层与cv.findContours()

    OpenCV计算机图像处理 -- 凸性缺陷 + 点多边形测试 + 形状匹配 + 轮廓分层与cv.findContours() 目录 OpenCV计算机图像处理 -- 凸性缺陷 + 点多边形测试 + 形 ...

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

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

  5. 基于openCV的形状模版匹配

    初衷 果然halcon用顺手了,人就变懒了,正好有项目需要自己写个形状匹配的程序,就拿来练练手,程序不是很复杂,速度上感觉和halcon里面find_scaled_shape_model还是有差距,目 ...

  6. opencv学习——Moments()函数,计算物体形状方向

    opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩. class Moments { public: - // 空间矩 double m00, m10, m01, m20, m11, m ...

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

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

  8. Opencv:基于Hu-moments(hu矩)的形状匹配

    本文将按照以下目录展开介绍: 什么是图像矩: 如何计算图像矩: 什么是Hu矩: 如何利用Opencv计算一个图像Hu矩: 如何利用Hu-矩来寻找两个形状的相似性: 1. 什么是图像力矩 图像矩是图像像 ...

  9. OpenCV基于形状的模板匹配

    OpenCV基于形状的模板匹配 引言 基于形状的匹配算法 具体代码 KcgMatch.h KcgMatch.cpp main.cpp 匹配的结果 引言 在OpenCV中有个用于模板匹配的基本函数mat ...

最新文章

  1. 谈谈Java程序员进阶的那些知识和方向
  2. volley 调用php接口,使用Volley发送帖子请求并使用PHP接收
  3. android 界面切换【转】
  4. java编程彩球滑梯作弊_课内资源 - 基于C++的学生成绩管理系统
  5. asp.net ajax 怎么获取前端ul li_useEffect Hook 是如何工作的(前端需要懂的知识点)
  6. Fedora Linux中配置JDK5或JDK6环境变量
  7. Node.js 把抓取到的电影节目列表单发或者群发到QQ邮箱
  8. PS打造油画般的风景人像
  9. LeetCode简单题目(#263 #268 #278 #283 #290)-5道(数字、字符串)
  10. GDAL源码剖析(十二)之GDAL Warp API使用说明
  11. Launch MySQL on my PC
  12. android4.4.3版本root,ROOT大师:支持安卓4.3、4.4机型root
  13. matlab画分散点图,Matlab怎么绘制离散图? matlab画散点图的教程
  14. 高速CAN收发器TJA1043的状态机
  15. 拓嘉启远:定制类的商品如何处理退款
  16. 曙光服务器amd芯片,AMD六核体验 曙光Ar-H服务器首发评测.docx
  17. CAS和hotspot源码
  18. HTTPS的SSL单向验证和双向验证
  19. TopCoder 介绍
  20. 苏州技师学院计算机专业怎么样,苏州技师学院口碑怎么样

热门文章

  1. python学习-要学 Python 需要怎样的基础?
  2. python有道-Python爬取有道词典
  3. python发音翻译-Python translate()方法
  4. 成都高新税务推出智能电话语音咨询服务 24小时在线答复
  5. 一种语音控制PPT翻页系统的制作方法
  6. mcp证书有什么用_初级会计职称有什么用?考下证书可以做什么工作?
  7. cover 在html中的作用,Cover
  8. CSS-解决inline-block空隙的最好方法
  9. 【模拟】牛客网:顺时打印矩阵
  10. ITU-T E.800 有关服务质量(QoS)的术语定义