Generierung von Gradienten-Karte 2D-array

Ich habe ein 2D-array speichert die Werte einer Eigenschaft eines jeden Punktes als seinem element: f(x,y) = f[x][y]. Jetzt will ich finde den Farbverlauf von diesem array. Ich sah in np.gradient aber es gibt nur zwei arrays als return, zunächst mit Ableitung in x-Richtung und der zweite in y-Richtung.

Möchte ich lernen, wie kann ich diesen oder einen anderen Weg, um erstellen Sie einen Gradienten Karte zeigt die Veränderung der Steigung der 2D-array.

varray ist das 2D-array erstellen gradient map. Folgende ist das einzige, was ich mir denken kann, gerade jetzt. Ich weiß, es sollte clever nutzen x gradientund y gradient generiert np.gradient() aber ich kann nicht daran denken.
lx und ly sind x-und y-dimension der 2D-array.

vgrad = np.gradient(varray)
xgrad = vgrad[0]
x, y = range(0, lx), range(0,ly)
xi, yi = np.meshgrid(x, y)
rbf = scipy.interpolate.Rbf(xi, yi, xgrad)
plt.imshow(v, vmin = np.amin(xgrad), vmax=np.amax(xgrad))
plt.colorbar()
plt.show()  

Ich will im Grunde das zweite Bild aus dem ersten Bild. Das zweite Bild ist wie beschrieben σ = \alpha*grad(varray).
Generierung von Gradienten-Karte 2D-array

Mithilfe der Größenordnung von Verlaufs-vorgeschlagen von @Mad Physiker unten.

vgrad = np.gradient(varray)
fulgrad = np.sqrt(vgrad[0]**2 + vgrad[1]**2)
plt.imshow(fulgrad,cmap=plt.get_cmap('hot'), vmin = np.amin(fulgrad),vmax = np.amax(fulgrad))  
plt.colorbar()
plt.show()  

dem Bild, das ich bekommen :
Generierung von Gradienten-Karte 2D-array

Bin ich interpretieren dies falsch von einem grundlegenden Verständnis der Gleichung?

So, hier ist meine Bilder. Links: Bild von der ersten 2D-Karte. Rechts: Bild von der Verlaufsumsetzung. @Mad-Physiker, denken Sie, Sie sind ähnlich wie oben, nur mit Unterschied der Farben?

Generierung von Gradienten-Karte 2D-array Generierung von Gradienten-Karte 2D-array

  • Könnten Sie uns zeigen, ein Beispiel für die Art von Handlung, die Sie suchen zu erstellen mit Ihren Daten? Zum Beispiel, Sie wollen ein streamplot? matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.streamplot
  • Sie müssen nur eine andere Farbe anzeigen. Das Bild, das Sie bekommen ist in Ordnung. Die Auswahl der genauen Farbe der Karte kann ein wenig schwierig. Wie war die ursprüngliche erwartete Bild erzeugt?
  • hey @ballsatballsdotballs, fügte ich hinzu, was ich Suche, von der Handlung. Die erste Handlung und nach der Handlung.
  • ist es wahr? warten Sie, ich haben könnte, um ein bisschen ändern, meine Parameter zu erhalten, ähnliches Ergebnis. wird gleich wieder mit den beiden auf mein Bild vor und nach. können Sie mir empfehlen eine Farbe zuordnen, damit es so nah wie möglich?
  • Hier ist ein Verweis auf die bekannten plt Farbverläufen: matplotlib.org/examples/color/colormaps_reference.html. Ich denke, Ihre beste Wette ist Jet.
  • Ich habe keine Kenntnisse wie das original-Bilder erstellt wurden. Es ist aus altem Papier, ich kann Ihnen den link von Papier, wenn Sie Auschecken. Ich dachte auch an sich mit Jet. Ich werde ein vorher nachher Bild ein wenig.
  • Hey, fügte ich die Bilder vor und nach. Können Sie mir sagen, wenn Sie denken, dass Sie korrekt sind. Es scheint in Ordnung zu sein. Ich bin etwas besorgt über die Asymmetrie der Helligkeit in der Nähe der Spitze der pins im Vergleich zu den theoretischen Bild oben. Aber ich denke, das ist der Fehler, gefolgt von der ersten Berechnung (linkes Bild).
  • In diesem Stadium glaube ich, der einzige große Unterschied ist die original input image scheint zu sein, viel mehr diskret in Bezug auf Ihre Farbe, die Ebenen als die ihrige. Natürlich, die daraus resultierende Karte ist viel mehr auch diskret. Wenn das ein normales Artefakt, ich denke, Sie sind OK, an dieser Stelle.
  • Ich danke Ihnen sehr für diese Hilfe. Ich denke auch, dass die Ergebnisse zufriedenstellend sind. Ich denke, dass Sie besser genutzt Entspannungstechnik für die Erstellung der ersten Bild als ich. Auch ich bin mit 100x50 dimension, wo, wie Sie mit 400x200, und ich weiß nicht, Ihre genaue ursprüngliche Profil.

InformationsquelleAutor hadi k | 2015-11-30
Schreibe einen Kommentar