效果如下,就算有一些不一样也是能够匹配成功的,但是大小必须一样,不能是缩小或者放大后的图片,不然无法匹配成功

最亮的代表最优匹配

最暗的地方代表最优匹配

使用不同的函数计算匹配程度,有的函数值越大匹配程度越高,有的相反,注意下

import cv2

img = cv2.imread('img.png')

part = cv2.imread('part_big.png')

cv2.imshow('img', img)

cv2.imshow('part', part)

methods = [cv2.TM_SQDIFF_NORMED, cv2.TM_CCORR_NORMED, cv2.TM_CCOEFF_NORMED]

part_height, part_weight = part.shape[:2]

print(part_height, part_weight)

for method in methods:

# print(method)

result = cv2.matchTemplate(img, part, method)

# print(result)

# 根据不同的公式计算不同的值

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)

print(min_val, max_val, min_loc, max_loc)

# 根据不同的算法,选择匹配程度最大的区域

if method == cv2.TM_SQDIFF_NORMED:

# 该算法值越小,匹配程度越高

img_loc = min_loc

else:

img_loc = max_loc

br = (img_loc[0] + part_weight, img_loc[1] + part_height)

cv2.rectangle(img, img_loc, br, (0, 0, 255), 2)

cv2.imshow("match" + str(method), img)

cv2.imshow("res" + str(method), result)

cv2.waitKey(1000)

cv2.waitKey(0)

计算出来的位置都差不多

0.030255908146500587 1.0 (712, 505) (1455, 590)

0.6245771050453186 0.9769605994224548 (488, 713) (712, 505)

-0.43960249423980713 0.8634197115898132 (1386, 614) (712, 505)

转载至链接:https://my.oschina.net/ahaoboy/blog/1919982

java opencv 模板匹配算法_opencv 模板匹配相关推荐

  1. java opencv 模板匹配算法_OpenCV探索之路(九):模板匹配

    模板匹配的作用在图像识别领域作用可大了.那什么是模板匹配? 模板匹配,就是在一幅图像中寻找另一幅模板图像最匹配(也就是最相似)的部分的技术. 说的有点抽象,下面给个例子说明就很明白了. 在上面这幅全明 ...

  2. 【指纹识别】基于模板匹配算法指纹识别匹配门禁系统matlab源码

    一.简介 1 指纹识别的引入和原理 1.1 指纹的基本知识 指纹,由于其具有终身不变性.唯一性和方便性,已几乎成为生物特征识别的代名词.指纹是指人的手指末端正面皮肤上凸凹不平产生的纹线.纹线有规律的排 ...

  3. java opencv 相似度_opencv使用 java 对比两个人脸的相似度

    1.创建Java工程,并导入如下jar包 opencv-440.jar 2.编写代码 import org.opencv.core.*; import org.opencv.imgcodecs.Img ...

  4. java opencv 物体检测_OpenCV.物体识别

    1.度娘:"OpenCV 物体识别" ZC:主看这个,讲的比较细致,操作一般都是使用的 OpenCV里面的exe,一些代码是 java的 可以搞定,最后一段测试代码 是Python ...

  5. java opencv 阀值分割_opencv 阈值分割的具体使用

    阈值分割 像素图 原始图像像素图 见下面 红色线:标注一条阈值线 二进制阈值化 首先设定一条阀值线 如127 大于127的像素点灰度值设为最大(如unit8的格式为255) 小于127的像素点灰度值设 ...

  6. java opencv 调用摄像头_opencv C++实现调用摄像头动态识别人脸

    前言 #include #include #include #include #include #include #include #include #include #include using n ...

  7. java opencv 提取车牌_opencv 学习之 车牌提取

    车牌识别分两步,一是车牌提取,而是字符识别. 下面是车牌提取. VS2010. OpenCV249. //载入图像 char * path = "d:\\picture\\06.jpg&qu ...

  8. 图像处理/人工智能/opencv之深入理解模板匹配算法

    目录 **1.什么是模板匹配** **2.模板匹配算法** **3.介绍opencv相关api** 1.什么是模板匹配 简单来说模板匹配就是通过现有的模板去与图片进行比较找出图中所匹配的图像 例如网红 ...

  9. OpenCV模板匹配算法详解

    本博客在https://www.cnblogs.com/zhaoweiwei/p/OpenVC_matchTemplate.html基础上进行更加详细的注解.当初有几个地方看的比较费劲,但是里面没有注 ...

  10. opencv 有无判断 模板匹配_opencv模板匹配

    模板匹配在图像处理中经常使用,该算法主要用于寻找图像中与模板图像相同的区域.此外,也用于图像定位,通过模板匹配找到指定的位置,然后进行后续的处理. 在进行模板匹配的时候,需要先制作模板,模板图像一般是 ...

最新文章

  1. Java多线程(四)之ConcurrentSkipListMap深入分析
  2. Apusic Operamasks的资源注入
  3. mysql rpm server_记录一次最新版MySQL-server-5.6.20-1.el6.x86_64.rpm的安装
  4. mysql 导入sql文件的一点问题
  5. 《深入解析Windows操作系统第4版》随笔记录03
  6. Java学习-Java系统介绍
  7. 深度思考-不断逼近问题的本质
  8. 康托尔点集matlab实数,康托尔(Cantor)是如何证明实数集是不可数的
  9. 网络路由器协议(OSPF、RIP、BGP、IGRP、IS-IS)
  10. The Hidden Agenda User Simulation Model翻译
  11. 【爬虫实战】国家企业公示网-crawler爬虫抓取数据
  12. 使用DS12C887时钟芯片设计高精度时钟(单片机)
  13. php升序排列,php关联数组怎么按键名实现升序排列
  14. 3.★Deepin Linux 下火狐firefox浏览器安装★
  15. 史上最简单的mybatis-plus快速入门
  16. Linux命令汇总 | vim | shell | 进阶【2022版】
  17. mysql事务是什么意思_mysql事务是什么意思
  18. ROS运行调用摄像头无法显示的解决办法
  19. 关于POI的一揽子问题
  20. 一键整理电脑桌面、文件夹—只需要20行python代码

热门文章

  1. 特征筛选:WOE值与IV值
  2. MySQL基础知识,入门必备
  3. 软考中级(系统集成项目管理工程师)(备考用)
  4. 您该选择PRINCE2 还是 PMP认证
  5. 《Redis视频教程》(p5)
  6. 微信小程序登录界面 服务器,微信小程序之登录页-------实例
  7. 我觉得idea最好看的编程字体:JetBrains Mono
  8. 常见反爬虫策略与绕过方法
  9. 机器人学习笔记(3) 正运动学和逆运动学
  10. 图像直方图均衡 matlab,图像直方图均衡化