cv2.KeyPoint 和 cv2.DMatch

一、cv2.Keypoint 数据结构

Attribute Descriptions Comments
.pt 点的坐标
.size 点邻域大小
.angle 特征点方向
.response 特征点响应程度指数 响应越强,关键点越好
.octave 特征点所在的金字塔组 从哪一层得到的数据
.class_id 类型
Input:
left_kps, left_dess = detector.detectAndCompute(image, None)
print("数据类型", type(left_kps[0]))
print("position", left_kps[0].pt)
print("radius", left_kps[0].size)
print("angle", left_kps[0].angle)
print("response", left_kps[0].response)
print("octave", left_kps[0].octave)
print("class_id", left_kps[0].class_id)

Result:
数据类型 
position (6.578876972198486, 274.11456298828125)
radius 6.09220027923584
angle 90.25723266601562
response 0.04461445286870003
octave 4784896
class_id -1

二、cv2.DMatch数据结构

Attribute Descriptions Comments
.distance 两个描述符的距离 越小匹配度越高
.trainIdx 目标图像(train)中的索引值
.queryIdx 训练图像(query)中的索引值 原图
.imgIdx 目标图像的索引值 多图匹配时用到
Input:
    knn_matchers = matcher.knnMatch(img1, img2, 2)
    print("数据类型:", type(knn_matchers[0]))
    print("distance=", knn_matchers[0].distance)
    print("trainIdx=", knn_matchers[0]trainIdx)
    print("queryIdx=", knn_matchers[0].queryIdx)
    print("imgIdx=", knn_matchers[0].imgIdx)

Result:
数据类型: 
distance= 32.15586853027344
trainIdx= 121
queryIdx= 10
imgIdx= 0

你可能感兴趣的:(openCV,计算机视觉)