Diese Methode des Bildscannens basiert auf der Hilbert-Kurve. Die Kurve sieht wie folgt aus (von 1 bis 6): Wie kann ich die Leistung des Hilbert-Scan des Bildes verbessern?
Sie kann für den Bildscan verwendet werden. So zum Beispiel, mein Code für 3-Order-Kurve ist:
Hilbert=[C(1,1) C(1,2) C(2,2) C(2,1) C(3,1) C(4,1) C(4,2) C(3,2) C(3,3) C(4,3) C(4,4) C(3,4)...
C(2,4) C(2,3) C(1,3) C(1,4) C(1,5) C(2,5) C(2,6) C(1,6) C(1,7) C(1,8) C(2,8) C(2,7)...
C(3,7) C(3,8) C(4,8) C(4,7) C(4,6) C(3,6) C(3,5) C(4,5) C(5,5) C(6,5) C(6,6) C(5,6)...
C(5,7) C(5,8) C(6,8) C(6,7) C(7,7) C(7,8) C(8,8) C(8,7) C(8,6) C(7,6) C(7,5) C(8,5)...
C(8,4) C(8,3) C(7,3) C(7,4) C(6,4) C(5,4) C(5,3) C(6,3) C(6,2) C(5,2) C(5,1) C(6,1)...
C(7,1) C(7,2) C(8,2) C(8,1)];
Und es funktioniert und arbeitet schnell. Ich habe die gleichen Funktionen für Kurven der 8- und 9-Ordnung gemacht, aber es funktioniert sehr sehr langsam. 9-order wird vielleicht niemals enden. Zumindest hatte ich nicht die Geduld, auf das Ende zu warten - nach zwei Stunden habe ich einfach das Programm abgeschaltet. Aber die Kurve 7-order läuft für 15 Sekunden. Was ist los? Kann ich dasselbe tun, aber schneller? Ja, das Programm muss 512 * 512 Array-Elemente lesen, aber es kann nicht unmöglich sein, es schneller zu machen.
Also, was genau ich brauche - ich habe die Koordinaten der Array-Elemente, und sie sind in der Reihenfolge angeordnet, in der gelesen werden soll. Ich brauche für eine akzeptable Zeit, um sie zu lesen und in das neue Array zu schreiben. Wie es geht?
p.s. Englisch ist immer noch schwer für mich, wenn etwas unklar ist - frag mich bitte.
Ich denke, Sie einen Tippfehler/Fehler haben, sollte dritte Reihe vierte Wert 'C (4,7)' nicht 'C (8,7) '. Die Frage ist, wie generiert man das Fraktal? Wo ist dein Code? – Amro
Die Sache ist - ich habe es vielleicht ein Jahr zuvor mit C++ - Programm generiert. Es ist in Ordnung, (8,7) ist ein Fehler von mir. –