(data, idx, branch = True)
| 34 | |
| 35 | @jit |
| 36 | def medial_axis(data, idx, branch = True): |
| 37 | h, w = data.shape |
| 38 | data = data.ravel() |
| 39 | for id in idx: |
| 40 | if data[id]==0:continue |
| 41 | i2=id-w;i8=id+w;i1=i2-1;i3=i2+1; |
| 42 | i4=id-1;i6=id+1;i7=i8-1;i9=i8+1; |
| 43 | |
| 44 | c = (data[i1]>0)<<0|(data[i2]>0)<<1\ |
| 45 | |(data[i3]>0)<<2|(data[i4]>0)<<3\ |
| 46 | |(data[i6]>0)<<4|(data[i7]>0)<<5\ |
| 47 | |(data[i8]>0)<<6|(data[i9]>0)<<7 |
| 48 | if (lut[c//8]>> c%8) &1:data[id]=0 |
| 49 | return 0; |
| 50 | |
| 51 | def mid_axis(img): |
| 52 | dis = ndimg.distance_transform_edt(img) |