def ridge(img, mark, up=True):
oimg, omark = img, mark
ndim = img.ndim
mark[[0,-1],:] = 4
mark[:,[0,-1]] = 4
nb4 = nbs4(*img.shape)
nb8 = nbs8(*img.shape)
acc = np.cumprod((1,)+img.shape[::-1][:-1])[::-1]
img = img.ravel()
mark = mark.ravel()
pts = np.zeros(131072, dtype=np.int64)
s, bins = collect(img, mark, nb4, pts)
#print(bins)
aaa=0
for level in range(len(bins))[::1 if up else -1]:
if bins[level]==0:continue
aaa+=1
s, c = clear(mark, pts, s, 0)
s = step(img, mark, pts, s, level, up, nb4, nb8)
'''
if level>250:
plt.imshow(omark, cmap='gray')
plt.show()
'''
for i in range(len(mark)):
if mark[i] == 3:mark[i] = 255
else: mark[i] = 0
评论列表
文章目录