当前位置: 首页 > 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系统安装
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • 77. Combinations
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • HTTP--网络协议分层,http历史(二)
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • KMP算法及优化
  • leetcode98. Validate Binary Search Tree
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • oldjun 检测网站的经验
  • SpriteKit 技巧之添加背景图片
  • SQLServer之索引简介
  • vue2.0项目引入element-ui
  • vue学习系列(二)vue-cli
  • windows下如何用phpstorm同步测试服务器
  • 关于extract.autodesk.io的一些说明
  • 猴子数据域名防封接口降低小说被封的风险
  • 缓存与缓冲
  • 基于游标的分页接口实现
  • 近期前端发展计划
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端技术周刊 2019-02-11 Serverless
  • 试着探索高并发下的系统架构面貌
  • 手写双向链表LinkedList的几个常用功能
  • 通过几道题目学习二叉搜索树
  • 无服务器化是企业 IT 架构的未来吗?
  • 异步
  • 阿里云ACE认证之理解CDN技术
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (day6) 319. 灯泡开关
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (四)c52学习之旅-流水LED灯
  • (算法)Game
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • .gitignore文件_Git:.gitignore
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net framework4与其client profile版本的区别