is there a fast way to extract horizontal, vertical, diagonal, anti-diagonal edges in python each of which must be a separate matrix
I do it in this manner seem to be slow and might have some index problems
def ImageEdges(arr):
Harr , Varr , Darr,Marr= arr*0,arr*0,arr*0,arr*0
for i in range(arr.shape[0]-1):
for j in range(arr.shape[1]-1):
Harr[i,j] = np.abs(arr[i,j] - arr[i+1,j])
Varr[i,j] = np.abs(arr[i,j] - arr[i,j+1])
Darr[i,j] = np.abs(arr[i,j] - arr[i+1,j+1])
Marr[i,j] = np.abs(arr[i,j] - arr[i+1,j-1])
return Harr,Varr, Darr,Marr