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

效果:

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

参考链接:

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

安装opencv-contrib-python

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

最新文章

  1. [转] Struts2入门示例教程
  2. MVC中的@section
  3. DataStage
  4. (转)教你实现Winform窗体的四边阴影效果
  5. C语言学习--可变数组
  6. -webkit-appearance改变任何元素的浏览器默认风格
  7. Java内存区域与对象创建过程
  8. 学问Chat UI(3)
  9. 修改UI及盒子启动及部分后续操作
  10. backref 用法
  11. 【JDBC】java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
  12. zjoi[ZJOI2018]胖
  13. C语言整理——文件系统和文件访问
  14. 平均数_中位数_众数在SqlServer实现
  15. 中间人攻击之ettercap嗅探
  16. golang IO 流抽象与应用
  17. Python - 2. Built-in Collection Data Types
  18. 关于 transparent rgba display:none; opacity visiblity 关于em
  19. 2018.10.19 NOIP模拟 比特战争(kruskal)
  20. 用戶登陸。防SQL注入,驗證碼不區分大小寫。。

热门文章

  1. CentOS 7下使用Gitolite搭建Git私服
  2. 微信小程序下拉刷新和上拉加载的实现
  3. 我现在有个表,里面有100个不同的单词,每个单词对应有大概20个词组,我想通过sql,每个单词随机获取对应的3个词组,请问怎么写可以实现?
  4. centos后台运行Python
  5. A Deep Learning-Based System for Vulnerability Detection(一)
  6. Win10 Service'MongoDB Server' failed to start. Verify that you have sufficient privileges to start system services【简记】
  7. 数据流中的第k大元素的golang实现
  8. 【Teradata SQL】字符串分割函数STRTOK和STRTOK_SPLIT_TO_TABLE
  9. Python爬虫【解析库之beautifulsoup】
  10. springboot mybatis搭建