zoukankan      html  css  js  c++  java
  • opencv中 cv2.KeyPoint和cv2.DMatch的理解

    cv2.KeyPoint是opencv中关键点检测函数detectAndCompute()返回的关键点的类,他包含关键点的位置,方向等属性具体如下:

    #point2f pt;//位置坐标
    # float size; // 特征点邻域直径
    #float angle; // 特征点的方向,值为[零, 三百六十),负值表示不使用
    # float response;
    # int octave; // 特征点所在的图像金字塔的组
    # int class_id; // 用于聚类的id

    代码如下:

    #关键点属性
    import cv2
    img1 = cv2.imread('./data/33.jpg',0)
    # Initiate SIFT detector
    sift = cv2.xfeatures2d.SIFT_create()
    # find the keypoints and descriptors with SIFT
    kp1, des1 = sift.detectAndCompute(img1,None)
    print("数据类型:",type(kp1[0]))
    print("关键点坐标:",kp1[0].pt)#第一个关键点位置坐标
    print("邻域直径:",kp1[0].size)#关键点邻域直径
    运行结果:

    数据类型: <class 'cv2.KeyPoint'>
    关键点坐标: (6.030540943145752, 39.67108917236328)
    邻域直径: 2.439194679260254

    cv2.DMatch是opencv中匹配函数(例如:knnMatch)返回的用于匹配关键点描述符的类,这个DMatch 对象具有下列属性:

    • DMatch.distance - 描述符之间的距离。越小越好。
    • DMatch.trainIdx - 目标图像中描述符的索引。
    • DMatch.queryIdx - 查询图像中描述符的索引。
    • DMatch.imgIdx - 目标图像的索引。 

    代码如下:

    import cv2
    img1 = cv2.imread('./data/33.jpg',0) # queryImage
    img2 = cv2.imread('./data/3.jpg',0) # trainImage

    # Initiate SIFT detector
    orb = cv2.ORB_create()

    # find the keypoints and descriptors with SIFT
    kp1, des1 = orb.detectAndCompute(img1,None)
    kp2, des2 = orb.detectAndCompute(img2,None)
    # create BFMatcher object

    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

    # Match descriptors.
    matches = bf.match(des1,des2)
    print("数据类型:",type(matches[0]))#查看类型
    print("描述符之间的距离:",matches[0].distance)# 描述符之间的距离。越小越好。
    print("图像中描述符的索引:",matches[0].queryIdx)#查询图像中描述符的索引。
    运行结果:
    数据类型: <class 'cv2.DMatch'>
    描述符之间的距离: 28.0
    图像中描述符的索引: 0 

  • 相关阅读:
    oracle 函数WMSYS.WM_CONCAT()的用法(行转列) 老猫
    PL/SQL 数独 九宫图 老猫
    oracle10g rman backup and recover 老猫
    Oracle SQL的优化 老猫
    Oracle数据库中的字符处理技巧总结 老猫
    WITH分析函数 老猫
    30套JSP网站源代码合集
    Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
    [原]Web Service学习
    常用Web Service汇总(天气预报、时刻表等)
  • 原文地址:https://www.cnblogs.com/enumx/p/12382050.html
Copyright © 2011-2022 走看看