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

opencv 增强现实(二):特征点匹配

 1 import cv2 as cv
 2 import numpy as np
 3 
 4 
 5 # def draw_keypoints(img, keypoints):
 6 #     for kp in keypoints:
 7 #         x, y = kp.pt
 8 #         cv.circle(img, (int(x), int(y)), 2, (0, 255, 0))
 9 
10 # 两张键盘图片,用于特征匹配
11 img1 = cv.imread('../images/keyboard1.jpg')
12 img2 = cv.imread('../images/keyboard2.jpg')
13 gray1 = cv.cvtColor(img1, cv.COLOR_BGR2GRAY)
14 gray2 = cv.cvtColor(img2, cv.COLOR_BGR2GRAY)
15 orb = cv.ORB_create()
16 kp1, des1 = orb.detectAndCompute(gray1, None)  # 计算特征点和描述符
17 kp2, des2 = orb.detectAndCompute(gray2, None)
18 bf = cv.BFMatcher(cv.NORM_HAMMING, crossCheck=True)  # 建立匹配关系
19 matches = bf.match(des1, des2)  # 匹配描述符
20 matches = sorted(matches, key=lambda x:x.distance)  # 根据距离来排序
21 # img3 = cv.drawMatches(gray1, kp1, gray2, kp2, matches[:10], gray2, flags=2)
22 img3 = cv.drawMatches(img1, kp1, img2, kp2, matches[:10], img2, flags=2)
23 cv.imshow('img3', img3)
24 cv.waitKey(0)
25 cv.destroyAllWindows()

 效果:

 

 

本来还想看看SIFT和SURF的效果,但是模块没有了,也有说安装opencv-contrib-python的,但是安装后好像还要操作一下,也没写清楚

参考链接:

OpenCV+Python特征提取算法与图像描述符之SIFT / SURF / ORB

安装opencv-contrib-python

 

OpenCV探索之路(二十三):特征检测和特征匹配方法汇总

 

转载于:https://www.cnblogs.com/MC-Curry/p/10442065.html

相关文章:

  • CentOS 7 root口令恢复
  • [UOJ430]line
  • JavaScript 复习之 Object对象的相关方法
  • Fundebug计费标准解释:事件数是如何定义的?
  • mysql的备份脚本
  • mysql 数据库四种事务隔离级别
  • 题解 CF191C 【Fools and Roads】
  • springMvc学习笔记(2)
  • 【组队竞赛学习】vue+node在线商城项目
  • lucene排序算法之向量空间模型(一)
  • 常见的几种数组去重的方法,总有一种适合你~
  • Python网络爬虫5 - 爬取QQ空间相册
  • 数据库插入10000000数据
  • 聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
  • 在win10上安装Linux系统安装
  • Apache的80端口被占用以及访问时报错403
  • centos安装java运行环境jdk+tomcat
  • docker python 配置
  • DOM的那些事
  • Linux后台研发超实用命令总结
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • session共享问题解决方案
  • storm drpc实例
  • vue 个人积累(使用工具,组件)
  • Vue2.0 实现互斥
  • 阿里研究院入选中国企业智库系统影响力榜
  • 二维平面内的碰撞检测【一】
  • 飞驰在Mesos的涡轮引擎上
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用putty远程连接linux
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 新书推荐|Windows黑客编程技术详解
  • 【云吞铺子】性能抖动剖析(二)
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 如何用纯 CSS 创作一个货车 loader
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • $(function(){})与(function($){....})(jQuery)的区别
  • ( 10 )MySQL中的外键
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (转)负载均衡,回话保持,cookie
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .FileZilla的使用和主动模式被动模式介绍
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • /boot 内存空间不够
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /proc/vmstat 详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @ConditionalOnProperty注解使用说明
  • [ACTF2020 新生赛]Upload 1
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序