SuperPoint-第一步MagicPoint角点检测网络替换为特征点检测器去尝试涨点

tensorflow:

https://github.com/rpautrat/SuperPoint



import cv2
import numpy as np
#opencv-python==3.4.2.17
#opencv-contrib-python==3.4.2.17

class LocalImageDescriptor(object):
    def __init__(self,):
        octaves = 3
        self.sift_pt = cv2.xfeatures2d.SIFT_create(nOctaveLayers=octaves)
        octaves = 4
        self.surf_pt = cv2.xfeatures2d.SURF_create(nOctaves=octaves)
        octaves = 3
        self.orb_pt = cv2.ORB_create(nlevels=octaves)
        octaves = 3
        self.brisk_pt = cv2.BRISK_create(octaves=octaves)

        self.kaze_pt = cv2.KAZE_create()
        self.akaze_pt = cv2.AKAZE_create()
        self.mser_pt = cv2.MSER_create()
    
    def get_keypoints(self, image):
        sift_keypoints = self.sift_pt.detect(image)
        surf_keypoints = self.surf_pt.detect(image)
        orb_keypoints = self.orb_pt.detect(image)
        brisk_keypoints = self.brisk_pt.detect(image)
        kaze_keypoints = self.kaze_pt.detect(image)
        akaze_keypoints = self.akaze_pt.detect(image)
        mser_keypoints = self.mser_pt.detect(image)
        
        keypoints = []
        for kp in sift_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in surf_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in orb_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in brisk_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in kaze_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in akaze_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])
        for kp in mser_keypoints:
            keypoints.append([kp.pt[0], kp.pt[1]])

        np_keypoints = np.array(keypoints)
        np_keypoints = np.around(np_keypoints, 5)
        np_keypoints = np.unique(np_keypoints, axis=0)
        
        return np_keypoints


lid = LocalImageDescriptor()
image = cv2.imread("/home/ninghua/图片/2021-08-16 17-54-06 的屏幕截图.png")
keypoints = lid.get_keypoints(image)

vis = image.copy()
for i in range(len(keypoints)):
    cv2.circle(vis, (int(keypoints[i, 0]), int(keypoints[i, 1])), 1, (0, 255, 255), 2)
cv2.imwrite("result.png", vis)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值