Ich versuche Seam Carving mit Dijkstra-Algorithmus zu implementieren.Seam Carving ein Bild mit Dijkstra-Algorithmus in C++
Bisher habe ich das Bild in Graustufen konvertiert und mit einem 2D-Array habe ich die Energiefunktion des Bildes herausgefunden. Um nun Dijkstra zu implementieren, muss ich dieses 2D-Array in ein Diagramm umwandeln und der Dijsktra-Funktion eine Quelle und eine Senke geben.
Ich würde gerne wissen, wie zu ändern Sie diese 2D-Array in ein Diagramm, als das 2D-Array, eine Matrix von MxN, wo M, N beide sehr große Zahlen sein können, könnte möglicherweise eine große entstehen Anzahl der Grafiken möglich, und entscheiden Sie die Senke für sie.
ich es früher über dynamische Programmierung implementiert hatte. Aber ich habe irgendwo gelesen, dass es auch den Dijkstra-Algorithmus verwendet, der normalerweise mit Graphen arbeitet. Also muss es einen Weg geben, auf dem wir eine Grafik erhalten können. –
Die hier erwähnte dynamische Programmiermethode _ist_ eigentlich der Dijkstra-Algorithmus. Sehen Sie [hier] (https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Dynamic_programming_perspective) und natürlich [hier] (https://math.stackexchange.com/questions/1283042/what-is- die-Differenz-zwischen-Dijkstras-Methode-und-dynamisch-Programmierung-wann-fi). Die in meiner Antwort erwähnte "S" -Matrix ist die _distance_-Funktion und der iterative Ansatz, den wir zu ihrer Berechnung verwendet haben, ist äquivalent zu Dijkstra's Verfahren zur Berechnung der Entfernung von Knoten. – Isaac
Okay! Ich habe den Punkt, den ich vermisst habe! Danke vielmals! –