diff --git a/skimage/morphology/_skel.pyx b/skimage/morphology/_skel.pyx index 49d69e9e..273384e1 100644 --- a/skimage/morphology/_skel.pyx +++ b/skimage/morphology/_skel.pyx @@ -34,7 +34,7 @@ from __future__ import division, print_function, absolute_import from libc.string cimport memcpy import numpy as np -from numpy cimport npy_intp, npy_uint8 +from numpy cimport npy_intp, npy_uint8, ndarray cimport cython ctypedef npy_uint8 pixel_type @@ -233,140 +233,16 @@ def fill_Euler_LUT(): This is column $\delta G_{26}$ of Table 2 of [Lee94]_. """ - LUT = np.zeros(256, dtype=np.intc) - - LUT[1] = 1 - LUT[3] = -1 - LUT[5] = -1 - LUT[7] = 1 - LUT[9] = -3 - LUT[11] = -1 - LUT[13] = -1 - LUT[15] = 1 - LUT[17] = -1 - LUT[19] = 1 - LUT[21] = 1 - LUT[23] = -1 - LUT[25] = 3 - LUT[27] = 1 - LUT[29] = 1 - LUT[31] = -1 - LUT[33] = -3 - LUT[35] = -1 - LUT[37] = 3 - LUT[39] = 1 - LUT[41] = 1 - LUT[43] = -1 - LUT[45] = 3 - LUT[47] = 1 - LUT[49] = -1 - LUT[51] = 1 - - LUT[53] = 1 - LUT[55] = -1 - LUT[57] = 3 - LUT[59] = 1 - LUT[61] = 1 - LUT[63] = -1 - LUT[65] = -3 - LUT[67] = 3 - LUT[69] = -1 - LUT[71] = 1 - LUT[73] = 1 - LUT[75] = 3 - LUT[77] = -1 - LUT[79] = 1 - LUT[81] = -1 - LUT[83] = 1 - LUT[85] = 1 - LUT[87] = -1 - LUT[89] = 3 - LUT[91] = 1 - LUT[93] = 1 - LUT[95] = -1 - LUT[97] = 1 - LUT[99] = 3 - LUT[101] = 3 - LUT[103] = 1 - - LUT[105] = 5 - LUT[107] = 3 - LUT[109] = 3 - LUT[111] = 1 - LUT[113] = -1 - LUT[115] = 1 - LUT[117] = 1 - LUT[119] = -1 - LUT[121] = 3 - LUT[123] = 1 - LUT[125] = 1 - LUT[127] = -1 - LUT[129] = -7 - LUT[131] = -1 - LUT[133] = -1 - LUT[135] = 1 - LUT[137] = -3 - LUT[139] = -1 - LUT[141] = -1 - LUT[143] = 1 - LUT[145] = -1 - LUT[147] = 1 - LUT[149] = 1 - LUT[151] = -1 - LUT[153] = 3 - LUT[155] = 1 - - LUT[157] = 1 - LUT[159] = -1 - LUT[161] = -3 - LUT[163] = -1 - LUT[165] = 3 - LUT[167] = 1 - LUT[169] = 1 - LUT[171] = -1 - LUT[173] = 3 - LUT[175] = 1 - LUT[177] = -1 - LUT[179] = 1 - LUT[181] = 1 - LUT[183] = -1 - LUT[185] = 3 - LUT[187] = 1 - LUT[189] = 1 - LUT[191] = -1 - LUT[193] = -3 - LUT[195] = 3 - LUT[197] = -1 - LUT[199] = 1 - LUT[201] = 1 - LUT[203] = 3 - LUT[205] = -1 - LUT[207] = 1 - - LUT[209] = -1 - LUT[211] = 1 - LUT[213] = 1 - LUT[215] = -1 - LUT[217] = 3 - LUT[219] = 1 - LUT[221] = 1 - LUT[223] = -1 - LUT[225] = 1 - LUT[227] = 3 - LUT[229] = 3 - LUT[231] = 1 - LUT[233] = 5 - LUT[235] = 3 - LUT[237] = 3 - LUT[239] = 1 - LUT[241] = -1 - LUT[243] = 1 - LUT[245] = 1 - LUT[247] = -1 - LUT[249] = 3 - LUT[251] = 1 - LUT[253] = 1 - LUT[255] = -1 + cdef int arr[128] + arr[:] = [1, -1, -1, 1, -3, -1, -1, 1, -1, 1, 1, -1, 3, 1, 1, -1, -3, -1, + 3, 1, 1, -1, 3, 1, -1, 1, 1, -1, 3, 1, 1, -1, -3, 3, -1, 1, 1, + 3, -1, 1, -1, 1, 1, -1, 3, 1, 1, -1, 1, 3, 3, 1, 5, 3, 3, 1, + -1, 1, 1, -1, 3, 1, 1, -1, -7, -1, -1, 1, -3, -1, -1, 1, -1, + 1, 1, -1, 3, 1, 1, -1, -3, -1, 3, 1, 1, -1, 3, 1, -1, 1, 1, + -1, 3, 1, 1, -1, -3, 3, -1, 1, 1, 3, -1, 1, -1, 1, 1, -1, 3, + 1, 1, -1, 1, 3, 3, 1, 5, 3, 3, 1, -1, 1, 1, -1, 3, 1, 1, -1] + cdef ndarray LUT = np.zeros(256, dtype=np.intc) + LUT[1::2] = arr return LUT cdef int[::1] LUT = fill_Euler_LUT()