Files
scikit-image/skimage/feature/tests/_test_brief.py
T

69 lines
3.3 KiB
Python

import numpy as np
from numpy.testing import assert_array_equal, assert_raises
from skimage import data
from skimage import transform as tf
from skimage.color import rgb2gray
from skimage.feature import (descriptor_brief, match_binary_descriptors,
corner_peaks, corner_harris,
create_keypoint_recarray)
def test_descriptor_brief_color_image_unsupported_error():
"""Brief descriptors can be evaluated on gray-scale images only."""
img = np.zeros((20, 20, 3))
keypoints_loc = np.asarray([[7, 5], [11, 13]])
keypoints = create_keypoint_recarray(keypoints_loc[:, 0],
keypoints_loc[:, 1])
assert_raises(ValueError, descriptor_brief, img, keypoints)
def test_descriptor_brief_normal_mode():
"""Verify the computed BRIEF descriptors with expected for normal mode."""
img = data.lena()
img = rgb2gray(img)
keypoints_loc = corner_peaks(corner_harris(img), min_distance=5)
keypoints = create_keypoint_recarray(keypoints_loc[:, 0],
keypoints_loc[:, 1])
descriptors, keypoints = descriptor_brief(img, keypoints[:8],
descriptor_size=8)
expected = np.array([[ True, False, True, False, True, True, False, False],
[False, False, False, False, True, False, False, False],
[ True, True, True, True, True, True, True, True],
[ True, False, True, True, False, True, False, True],
[False, True, True, True, True, True, True, True],
[ True, False, False, False, False, True, False, True],
[False, True, True, True, False, False, True, False],
[False, False, False, False, True, False, False, False]], dtype=bool)
assert_array_equal(descriptors, expected)
def test_descriptor_brief_uniform_mode():
"""Verify the computed BRIEF descriptors with expected for uniform mode."""
img = data.lena()
img = rgb2gray(img)
keypoints_loc = corner_peaks(corner_harris(img), min_distance=5)
keypoints = create_keypoint_recarray(keypoints_loc[:, 0],
keypoints_loc[:, 1])
descriptors, keypoints = descriptor_brief(img, keypoints[:8],
descriptor_size=8,
mode='uniform')
expected = np.array([[ True, False, True, False, False, True, False, False],
[False, True, False, False, True, True, True, True],
[ True, False, False, False, False, False, False, False],
[False, True, True, False, False, False, True, False],
[False, False, False, False, False, False, True, False],
[False, True, False, False, True, False, False, False],
[False, False, True, True, False, False, True, True],
[ True, True, False, False, False, False, False, False]], dtype=bool)
assert_array_equal(descriptors, expected)
if __name__ == '__main__':
from numpy import testing
testing.run_module_suite()