145
10.3. Języki opisu obrazów (PDL) Shawa
<(&,() = ((M-c), 5),
.5(54,6) = (6,8),
6(57,( ) = ((~ c+ ~ a), 11),
ó(a, a) = rem, S(b, b) — rem, 6(c, c) = rem,..., ó(~, ~) = rem, 6(Zo, $) = acc,
natomiast w pozostałych przypadkach funkcja 6 przyjmuje wartość err.
Rozpoznania odpowiedniego obrazu d € D (w przypadku jego akceptacji) dokonujemy na podstawie ciągu produkcji jakich użyliśmy do
generacji obrazu (a nie stanu końcowego automatu 91, jak to miało miejsce w metodzie kodów Freemana). Ciąg ten jest wypisywany na wyjście automatu. Prześledźmy rozpoznanie litery R poprzez odpowiednie konfiguracje automatu (patrz Dodatek 3).
((6 + c)*a) + (ax d)$, ((6 + c) * a) + (a x d)$, ((6 + c) * a) + (a x <f)$, (b + c) * a) + (a x d)$, (6 + c) * a) + (a x d)$, Hc)*a) + (flx d)$, +c) * a) + (a x d)$, (a x d)S, (a x d)$, a x d)$,
TTTTTTTTTT
(S3 * a) + SiZą, 23) ł—
S3 * a) + S2^o> 23) ł-(6 -f c) * a) + S2Z0,235) ł—
6 + c) * a) + 52Zo,235) 1
+c) * a) + S2Z0,235) h— ł-
52Z0,235) (a x d)Zo, 2356) a x d)Zo, 2356) Zo,2356)
Jak widać, litera została zaakceptowana (acc) i rozpoznana prawidłowo (ciąg produkcji 2356).
Przedstawimy jeszcze główny algorytm rozpoznający, wprowadzając wcześniej następujące oznaczenia:
rec - rozpoznany obraz (lub err, gdy brak decyzji),
tab - tablica, w której zapamiętane są pary postaci (lista numerów produkcji użytych do generacji obrazu obr, nazwa obrazu obr),