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.