brisk尝试

import cv2
import matplotlib.pyplot as plt

img_1 = cv2.imread(
  r"C:\Users\Administrator\Desktop\yuantu.jpg"
)
img_2 = cv2.imread(
  r"C:\Users\Administrator\Desktop\jietu.jpg"
)
img_1 = cv2.cvtColor(img_1, cv2.COLOR_BGR2GRAY)
img_2 = cv2.cvtColor(img_2, cv2.COLOR_BGR2GRAY)
plt.imshow(img_1)

brisk = cv2.BRISK_create()
(kpt_1, desc_1) = brisk.detectAndCompute(img_1, None)
(kpt_2, desc_2) = brisk.detectAndCompute(img_2, None)
bk_img_1 = img_1.copy()
bk_img_2 = img_2.copy()
out_img = img_1.copy()
out_img_1 = img_1.copy()
out_img_2 = img_2.copy()
out_img_1 = cv2.drawKeypoints(bk_img_1, kpt_1, out_img_1)
out_img_2 = cv2.drawKeypoints(bk_img_2, kpt_2, out_img_2)
plt.figure(2)
plt.imshow(out_img_1)
plt.figure(3)
plt.imshow(out_img_2)

matcher = cv2.BFMatcher()
matches = matcher.knnMatch(desc_1, desc_2, k = 2)
#print(matches)

good = []
cnt = 0
for m, n in matches://筛选
  if m.distance < 0.6 * n.distance:
    good.append(m)
    cnt += 1

#matches.sort(None, None)


dp = dict(matchColor = (0, 255, 0),#green
          singlePointColor = None,
          matchesMask = None,#draw only inliers
          flags = 2)
out_img_3 = cv2.drawMatches(img_1, kpt_1, img_2, kpt_2, good, None, **dp)
plt.figure(5)
plt.imshow(out_img_3)

plt.show()

利用brisk算法进行图像匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值