ich brauch Hilfe für die Performance einer Funktion. Es werden 2 Arrays (1024x1024 Pixeln) miteinander verglichen und dann für jedes Pixel des einen Arrays ein Abweichungsarray erstellt und von diesem dann der Minimum-Wert genommen.
A1 und A2 sind die Arrays
Hier der Code:
Code: Alles auswählen
size1=A1.shape
size2=A2.shape
AbwSignalProzent=2
DTA=5
dosed = AbwSignalProzent * A1[:,:].max()/100
G=np.zeros (size1)
Ga=np.zeros (size1)
x=np.arange(1024)
y=np.arange(1024)
if size1 == size2:
for i in range(0,size1[0]):
for j in range(0,size1[1]):
# PixelAbstand im Quadrat als ARRAY
r2 = (x[:,None] - x[i])**2 + (y[None,:]-y[j])**2
# Pixelwertunterschied im Quadrat als ARRAY
d2 =(int(A1[i , j]) - A2.astype(np.int))**2 ;#difference squared
Ga =r2 / (float(DTA)**2) + d2/ (float(dosed)**2)
G[i,j]=sqrt(Ga.min())Vielen Dank und Gruß,
Lukas
