#不知道当时写的时候在干嘛,不过效果还可以
def edge(IDX):
pyris.show_npy(IDX)
# edge=mm.dilation(mask,selem=[[1,1,1],[1,0,1],[1,1,1]])-mask
selems=[[[1,0,0],[0,0,0],[0,0,0]],
[[0,1,0],[0,0,0],[0,0,0]],
[[0,0,1],[0,0,0],[0,0,0]],
[[0,0,0],[1,0,0],[0,0,0]],
[[0,0,0],[0,0,1],[0,0,0]],
[[0,0,0],[0,0,0],[1,0,0]],
[[0,0,0],[0,0,0],[0,1,0]],
[[0,0,0],[0,0,0],[0,0,1]]]
s2=np.zeros(IDX.shape)
for selem in selems:
selem = np.array(selem)
s2 += (cv2.filter2D(IDX,-1,selem)-IDX)**2
s2=(s2**0.5)
print(s2.shape)
s2=s2/np.abs(IDX)
print(s2.shape)
s2=np.where(s2>10,10,s2)
#pyris.show_npy(s2)
thresh=threshold_otsu( s2[np.isfinite(s2)] )
s2=s2>thresh
pyris.show_npy(s2)
return s2
edge(pyris.load(r'E:\Projects\BraidedRivers\SRYzR\Reaches\TTR_M\process_TTR_M\IDX\1991_227.npy'))