当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python skimage.feature.ORB用法及代码示例


用法:

class skimage.feature.ORB(downscale=1.2, n_scales=8, n_keypoints=500, fast_n=9, fast_threshold=0.08, harris_k=0.04)

基础:skimage.feature.util.FeatureDetectorskimage.feature.util.DescriptorExtractor

面向 FAST 和旋转的 Brief 特征检测器和二进制说明符提取器。

参数

n_keypointsint 可选

要返回的关键点数。如果检测到超过 n_keypoints,该函数将根据 Harris 角点响应返回最佳 n_keypoints。如果不是,则返回所有检测到的关键点。

fast_nint 可选

n参数输入skimage.feature.corner_fast.圆圈上 16 个像素中的最小连续像素数,这些像素都应该变亮或变暗 w.r.t test-pixel。圆上的点 c 较暗 w.r.t 测试像素 p 如果Ic < Ip - threshold如果Ic > Ip + threshold.也代表 n inFAST-n角检测器。

fast_threshold浮点数,可选

feature.corner_fast 中的 threshold 参数。用于决定圆上的像素是更亮、更暗还是类似 w.r.t 的阈值。测试像素。当需要更多拐角时降低阈值,反之亦然。

harris_k浮点数,可选

k参数输入skimage.feature.corner_harris.将角与边分开的灵敏度因子,通常在范围内[0, 0.2].的小值k导致检测尖角。

downscale浮点数,可选

图像金字塔的缩小因子。选择默认值 1.2 以便有更密集的尺度,从而为后续的特征说明提供稳健的尺度不变性。

n_scalesint 可选

从图像金字塔底部提取特征的最大尺度数。

参考

1

Ethan Rublee, Vincent Rabaud, Kurt Konolige and Gary Bradski “ORB: An efficient alternative to SIFT and SURF” http://www.vision.cs.chubu.ac.jp/CV-R/pdf/Rublee_iccv2011.pdf

例子

>>> from skimage.feature import ORB, match_descriptors
>>> img1 = np.zeros((100, 100))
>>> img2 = np.zeros_like(img1)
>>> rng = np.random.default_rng(19481137)  # do not copy this value
>>> square = rng.random((20, 20))
>>> img1[40:60, 40:60] = square
>>> img2[53:73, 53:73] = square
>>> detector_extractor1 = ORB(n_keypoints=5)
>>> detector_extractor2 = ORB(n_keypoints=5)
>>> detector_extractor1.detect_and_extract(img1)
>>> detector_extractor2.detect_and_extract(img2)
>>> matches = match_descriptors(detector_extractor1.descriptors,
...                             detector_extractor2.descriptors)
>>> matches
array([[0, 0],
       [1, 1],
       [2, 2],
       [3, 4],
       [4, 3]])
>>> detector_extractor1.keypoints[matches[:, 0]]
array([[59. , 59. ],
       [40. , 40. ],
       [57. , 40. ],
       [46. , 58. ],
       [58.8, 58.8]])
>>> detector_extractor2.keypoints[matches[:, 1]]
array([[72., 72.],
       [53., 53.],
       [70., 53.],
       [59., 71.],
       [72., 72.]])

属性

keypoints(N, 2) 数组

关键点坐标为 (row, col)

scales(N, ) 数组

相应的尺度。

orientations(N, ) 数组

对应的弧度方向。

responses(N, ) 数组

相应的哈里斯角响应。

descriptors(问,descriptor_size) dtype bool 数组

大小为二进制说明符的二维数组descriptor_size过滤掉具有索引值的边界关键点后的 Q 关键点(i, j)或者是True或者False表示 j-th 决策 pixel-pair 上 i-th 关键点的强度比较结果。这是Q == np.sum(mask).

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.feature.ORB。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。