Mit RTA-Programmierung beginnen

Wir schreiben ein erstes richtiges RTA-Programm ...

Die folgenden kleinen Programme sind ein perfekter Einstieg in das Programmieren mit RTA, dem RT-Assembler unter Vimage.

Zur Übersicht über die Befehle am besten die Referenzkarte (deutsch oder englisch) ausdrucken:

Vimage nutzt RTA außer, um Kartennetzentwürfe zu rechnen, auch für Grauwerttransformationen. Dies erfolgt mit der über das Radiometriemenü aufrufbaren Radio engine. Weil sich die Radio engine besonders einfach bedienen lässt, ist sie für den Einstieg in Vimage/RTA ideal geeignet.

Die Radio engine fragt nach einem RT-Assemblerprogramm, und dieses muss lediglich einen Eingabegrauwert x in einen Ausgabegrauwert x' umrechnen. Das ist alles ...


1. Beispiel: Alle Grauwerte eines Bildes mit 128 füllen

RTA-Programme bestehen nur aus genz wenigen Befehlen. Wir stellen die Programme hier mit allen empfohlenen Deklarationen vor. Im praktischen Tagesgeschäft können die Befehle _name, _var, exit und _end auch weggelassen werden.

Das allererste Programm soll ein Bild konstant mit Grauwert 128 füllen.

Formel:

   x' = ƒ(x) = 128

Programm:

          _name   Bild~mit~Grauwert~128~füllen
          mov     x'      128           ; Eine 128 nach x' schaffen
          exit
          _end
  

Programm rt_radio_bild_mit_128_fuellen.rta downloaden.

Bitte die im Menü Radiometrie befindliche Radio engine rufen. Die engine fragt nach einem RT-Assemblerprogramm. Hier bitte Programm radio_bild_mit_grauwert_128_fuellen.rta wählen.

Das Programm setzt alle Pixel auf Grauwert 128:


2. Beispiel: Alle Grauwerte eines Bildes mit 2 multiplizieren

Formel:

   x' = ƒ(x) = 2 x

Programm:

          _name   Grauwerte~verdoppeln
          mov     x'      x                 ; x nach x' schaffen
          mul     x'      2                 ; mit 2 multiplizieren
          exit                              ; Ende
          _end
  

Programm rt_radio_grauwerte_verdoppeln.rta downloaden.

Nach der Abarbeitung mit der Radio engine haben alle Grauwerte, die vormals Grauwert 128 hatten, nun Grauwert 256:


3. Beispiel: Eine Konstante c auf alle Grauwerte addieren

Nun soll ein wählbarer Wert c auf alle Grauwerte addiert werden. Dessen Abfrage per Dialog ist mit dem Befehl input leicht möglich. Ein kleines Problem hierbei ist, dass die Radio engine das RTA-Programm für jedes Pixel einmal abarbeitet. Das hätte nun zur Folge, dass der Grauwert ebenfalls für jedes Pixel einmal abgefragt würde. Mit einer Variablen initial kann dies verhindert werden. Das Programm durchläuft nur beim allerersten Aufruf den input-Befehl und den Befehl mov initial 1. Die Variable initial ungleich Null sorgt ab dem 2. Aufruf dafür, dass der tstne-Befehl zur Marke go springt ...

Formel:

   x' = ƒ(x) = x + c

Programm:

          _name   Wählbare~Konstante~addieren
          _var    c
          _var    initial
          tstne   initial go              ; Test, ab initial Null ist, wenn nicht Sprung nach go
          input   c       Zu~addierende~Konstante ; Konstante c abfragen
          mov     initial 1               ; initial auf 1 setzen; ist nun nicht mehr Null
   go:                                    ; Marke, die das Sprungziel ist
          mov     x'      x               ; x holen und nach x' schaffen
          add     x'      c               ; c auf x' addieren
          exit                            ; Ende
          _end
  

Programm rt_radio_waehlbare_konstante_addieren.rta downloaden.

Irgendein Bild in Vimage laden. Dies kann das Bild rm_map_demo_earth_gtopo305_1200arcsec.fix (ca. 1,6 MByte) sein oder ein beliebiges anderes Bild.

Dann die Radio engine rufen und radio_waehlbare_konstante_addieren.rta abarbeiten. Bei der Abfrage der Konstanten c, z. B. 100 eingeben. Das Programm macht nun alle Pixel z. B. 100 Grauwerte dunkler:


4. Beispiel: Alle Grauwerte, die -32768 sind, auf -9999 setzen

Dies ist eine Teilaufgabe, die man z. B. beim Zu-Fuß-Import von SRTM-Daten aus dem Hgt-Format lösen muss. In Hgt haben alle Leerpixel Grauwert -32768. Leerpixel in Vimage sollen Grauwert -9999 haben.

Programm:

          _name   Grauwert~-32768~auf~-9999~setzen
          mov     x'      x                 ; x nach x' schaffen
          cmpne   x'      -32768  go        ; Sprung nach go, sofern x nicht -32768 ist
          mov     x'       -9999            ; -9999 nach x' schaffen
  go:                                       ; Marke, die Sprungziel ist
          exit                              ; Ende
          _end
  

Programm kann als rt_radio_grauwert_-32768_auf_-9999_setzen.rta heruntergeladen werden.


-TU-72-00

Zum Seitenanfang