diff --git a/skimage/feature/_texture.pyx b/skimage/feature/_texture.pyx index c8410fe8..e5d8a2ab 100644 --- a/skimage/feature/_texture.pyx +++ b/skimage/feature/_texture.pyx @@ -80,7 +80,7 @@ cdef inline int _bit_rotate_right(int value, int length): def _local_binary_pattern(np.ndarray[double, ndim=2] image, - int P, float R, int method=0): + int P, float R, char method='D'): # texture weights cdef np.ndarray[int, ndim=1] weights = 2 ** np.arange(P, dtype=np.int32) # local position of texture elements @@ -116,7 +116,7 @@ def _local_binary_pattern(np.ndarray[double, ndim=2] image, lbp = 0 # if method == 'uniform' or method == 'var': - if method == 2 or method == 3: + if method == 'U' or method == 'V': # determine number of 0 - 1 changes changes = 0 for i in range(P - 1): @@ -128,7 +128,7 @@ def _local_binary_pattern(np.ndarray[double, ndim=2] image, else: lbp = P + 1 - if method == 3: + if method == 'V': var = np.var(texture) if var != 0: lbp /= var @@ -139,7 +139,8 @@ def _local_binary_pattern(np.ndarray[double, ndim=2] image, for i in range(P): lbp += signed_texture[i] * weights[i] - if method == 1: + # method == 'ror' + if method == 'R': # shift LBP P times to the right and get minimum value rotation_chain[0] = lbp for i in range(1, P): diff --git a/skimage/feature/texture.py b/skimage/feature/texture.py index 101f4a5a..aa970d18 100644 --- a/skimage/feature/texture.py +++ b/skimage/feature/texture.py @@ -235,14 +235,14 @@ def local_binary_pattern(image, P, R, method='default'): Parameters ---------- image : (N, M) array - graylevel image + Graylevel image. P : int - number of circularly symmetric neighbour set points (quantization of the - angular space) + Number of circularly symmetric neighbour set points (quantization of the + angular space). R : float - radius of circle (spatial resolution of the operator) - method : {'default', 'ror', 'uniform', 'var'} - method to determine the pattern:: + Radius of circle (spatial resolution of the operator). + method : {'D', 'R', 'U', 'V'} + Method to determine the pattern:: * 'default': original local binary pattern which is gray scale but not rotation invariant. * 'ror': extension of default implementation which is gray scale and @@ -256,7 +256,7 @@ def local_binary_pattern(image, P, R, method='default'): Returns ------- output : (N, M) array - LBP image + LBP image. References ---------- @@ -268,10 +268,10 @@ def local_binary_pattern(image, P, R, method='default'): """ methods = { - 'default': 0, - 'ror': 1, - 'uniform': 2, - 'var': 3 + 'default': ord('D'), + 'ror': ord('R'), + 'uniform': ord('U'), + 'var': ord('V') } image = np.array(image, dtype='double', copy=True) output = _local_binary_pattern(image, P, R, methods[method.lower()])