płaszczyzna obrazu
Transkrypt
płaszczyzna obrazu
Symulator widoków wielościanów uzyskiwanych za pomocą głowicy stereowizualnej – implementacja i zastosowania. KRZYSZTOF SKABEK* AGNIESZKA TOMAKA* * Instytut Informatyki Teoretycznej i Stosowanej Polskiej Akademii Nauk ul. Bałtycka 5, 44-100 Gliwice Streszczenie: W artykule opisano symulator widoków wielościanów z głowicą stereowizualną przy założeniu idealnych warunków obserwacyjnych. Symulator widoków wielościanów jest narzędziem umożliwiającym generowanie stereoskopowych widoków dla zdefiniowanej sceny przestrzennej z dowolnego punktu obserwacji umiejscowionego w otoczeniu sceny będącej zbiorem wielościanów. Zaproponowano wektorowy algorytm znajdowania przesłonięć. Opisano sposób użycia oraz przykładowe wyniki działania symulatora. Wskazano także na zastosowania narzędzia w widzeniu komputerowym. Słowa kluczowe: Stereowidzenie, symulator widoków, przesłonięcia wielościanów, usuwanie niewidocznych krawędzi. 1 Wprowadzenie Obserwacje sceny przestrzennej za pomocą rzeczywistych urządzeń mechaniczno– optycznych obarczone są błędami związanymi z trudnością dokładnego wykalibrowania kamer, ograniczoną precyzją ruchów platformy przy przemieszczeniach (w szczególności przy obrotach) [7][4] oraz zniekształceniami w samym torze optycznym [8]. Algorytmy obliczania map głębi [8][3], wyznaczania optymalnej trajektorii ruchu platformy [4], bądź też składania widoków z różnych położeń obserwatora [5], wymagają, do swego poprawnego działania przy rozwiązywaniu tych problemów, źródła dokładnych danych testowych. W celu weryfikacji działania tych algorytmów konieczna była budowa narzędzia programowego – symulatora, generującego obrazy zdefiniowanej sceny dla dowolnego położenia platformy. Opracowano programowy model platformy z głowicą stereowizualną przy założeniu idealnych warunków obserwacyjnych, tzn.: dokładnej kalibracji kamer, dokładnej 2 znajomości geometrii sceny, położenia sceny i kamer oraz przestrzennego przemieszczenia głowicy. Symulator widoków wielościanów jest narzędziem umożliwiającym generowanie stereoskopowych widoków dla zdefiniowanej sceny przestrzennej z dowolnego punktu obserwacji umiejscowionego w otoczeniu sceny. Obserwowana scena jest zbiorem wielościanów rozmieszczonych w dowolnym, ale znanym położeniu w układzie odniesienia sceny. W pierwszym przybliżeniu punkt obserwacji (głowica stereowizualna) porusza się po okręgu dookoła pewnego punktu przyjętego jako początek układu współrzędnych i możliwe jest dokonywanie obserwowacji analizowanej sceny pod różnymi kątami. Kamery umieszczone są w stałej odległości od siebie. W celu wyznaczenia stereoskopowego widoku sceny w obu kamerach głowicy należy rozwiązać następujące zadania: wyznaczyć położenia rzutów wszystkich ścian i krawędzi wielościanów na płaszczyznę obrazu oraz zbadać wzajemne przesłanianie poszczególnych ścian i krawędzi. 2 Przekształcenie perspektywiczne Z punktu widzenia geometrii rejestracja obrazu przez kamerę jest przekształceniem perspektywicznym. Na rysunku 1 przedstawiono model przekształcenia perspektywicznego. Przyjęto otworkowy model kamery1 [1]. Rozważania przeprowadzono dla układu współrzędnych, w którym oś Z stanowi oś optyczna układu a środek układu współrzędnych położony jest w miejscu przecięcia osi optycznej z płaszczyzną rzutowania. Odległość pomiędzy otworem obiektywu a płaszczyzną rzutowania wynosi f. Rysunek 1 Schemat przekształcenia perspektywicznego Otwór obiektywu kamery jest punktem centralnym rzutowania, stąd przedstawione na rysunku odwzorowanie jest rzutem środkowym. Obraz punktu v uzyskiwany jest na przecięciu płaszczyzny rzutowania z promieniem rzutowania przechodzącym przez punkt v i środek rzutowania. Wyznaczony w ten sposób punkt vp jest rzutem punktu v na płaszczyznę obrazu. 1 ang. pinhole camera 3 Rzut środkowy jest przekształceniem jednoznacznym [6] tylko w jedną stronę, tzn. każdy punkt obiektu ma ściśle określony odpowiednik na płaszczyźnie obrazu, jednakże każdy punkt na płaszczyźnie rzutowania może być obrazem wielu punktów. Na podstawie położenia tego punktu na obrazie oraz znajomości geometrii układu obrazowania, można jedynie wyznaczyć tę prostą, jednak położenie obrazowanego punktu nie jest określone jednoznacznie. Niech v = (x,y,z)t oraz vp = (xp,yp,zp)t. Współrzędne rzutu punktu z rys. 1 można obliczyć korzystając z podobieństwa trójkątów [1]. f ⋅x f ⋅y x p = f + z ; y p = f + z ; z p = 0 3 Algorytm znajdowania przesłonięć Prawa geometrii projekcyjnej oraz znajomość relacji: obiekt przestrzenny – położenie obserwatora – płaszczyzna rzutowania, pozwalają na wyznaczenie obrazów wszystkich krawędzi tego obiektu. Dla niektórych reprezentacji jest to wystarczające do znalezienia obrazu tego obiektu, np. dla reprezentacji kuli w postaci funkcji analitycznej. Jednak że w przypadku reprezentacji brył wielościennych, bądź scen złożonych z większej liczby obiektów, konieczne jest określenie, które ze ścian są z danego punktu obserwacji widoczne i w jakim zakresie. Istnieją dwie grupy metod rozwiązania tego problemu: rastrowe [2][10][11] oraz wektorowe [2][9]. Algorytmy pierwszej grupy polegają na potraktowaniu obiektu jako zbioru k-krawędziowych ścian oraz ustaleniu, dla każdego punktu rastra obrazu, która z powierzchni jest widoczna. Wykonanie tej operacji dla pojedynczego punktu rastra wymaga przejrzenia wszystkich n ścian i określenia, która z nich leży najbliżej obserwatora. Złożoność obliczeniowa tych algortmów jest rzędu nN, gdzie N – liczba punktów rastra. Metody z tej grupy są szeroko stosowane w systemach projektowania i wizualizacji przestrzennej 2. Metody drugiej grupy polegają na porównaniu każdej z n ścian z pozostałymi n-1 ścianami w celu wyeliminowania tych ścian (bądź ich części), które sa niewidoczne. Złożoność obliczeniowa wynosi tutaj n2. Podejście to jest bardziej uniwersalne w stosunku do metod pierwszej grupy oraz nieczułe na rozdzielczość rastra. Niestety odbywa się to kosztem bardziej skomplikowanych obliczeń. Zaprezentowany poniżej algorytm należy do drugiej z opisanych grup. W odróżnieniu od algorytmu zamieszczonego w publikacji [9], w prezentowanym podejściu nie jest wymagany podział obiektu na wielościany wypukłe. Ściany rozpatrywanych obiektów przestrzennych mogą być dowolnymi wielokątami. W przypadku reprezentacji wielościennej obrazami poszczególnych ścian na płaszczyźnie rzutowania są obszary ograniczone poprzez rzuty krawędzi ścian. Całkowite lub częściowe przesłonięcie danej ściany sprowadza się do nakładania całości lub fragmentów poszczególnych rzutów krawędzi tej ściany poprzez rzuty innych ścian (rys. 2). Rysunek 2 Rodzaje przesłonięć krawędzi obiektów 2 M.in. systemy: AutoCAD, ARRIS, I-DEAS Artisan Modeling. 4 Takie rzuty krawędzi lub ich fragmenty nazwano w dalszych opisach segmentami. Idea wyznaczania poszczególnych przesłonięć polega więc na znalezieniu części wspólnych rzutów obszarów na płaszczyznę obrazu, a następnie na ustaleniu, który obszar w danym położeniu leży bliżej kamer. Algorytm wyznaczania widocznych segmentów w rzucie sceny na płaszczyznę należy do grupy wektorowych metod wyznaczania obszarów przesłoniętych. Danymi wejściowymi są, oprócz informacji o położeniu segmentów rzutu, dane o rzeczywistym położeniu odpowiedników tych segmentów w przestrzeni. Wykorzystano następujęce struktury danych: LK – lista segmentów widocznych, LKP – lista segmentów przesłoniętych. W pamięci komputera obie struktury są macierzami o wymiarrach 4× n i postaci: [Xpo1 Ypo1 Xko1 Yko1; Xpo2 Ypo2 Xko2 Yko2; ...; Xpon Ypon Xkon Ykon]. Opis działania algorytmu: - Utworzenie listy LK wszystkich segmentów rzutu, - Dla każdej ze ścian obiektów sceny wykonanie następujących operacji: - Zerowanie listy segmentów przesłoniętych LKP, - Wyznaczenie równania płaszczyzny ściany, - Wyznaczenie zakresu zawierania segmentów z LK w rzucie ściany (procedura opisana w rozdziale 3.1), - Dla wszystkich wybranych w poprzednim punkcie fragmentow segmentów wykonanie następujących operacji: - obliczenie współrzędnej z (głębokości) dla geometrycznego środka segmentu, - sprawdzenie warunku widoczności; w przypadku wystąpienia przesłonięcia: uzupełnienie listy segmentów przesłoniętych LKP, - geometryczne wyłączenie segmentów niewidocznych LKP ze zbioru segmentów wyświetlanych LK (patrz rozdział 3.3) 3.1 Procedura ustalania części wspólnej rzutu segmentu krawędzi z obszarem na płaszczyźnie Niech obszar F będzie zdefiniowany jako wielokąt o k wierzchołkach, a odcinek AB będzie zdefiniowany przez parę punktów początku – A i końca – B. Na pytanie o część wspólną odcinka AB i figury F oczekiwana jest odpowiedź w postaci listy odcinków LO. Rozwiązanie zadania przeprowadzane jest w następujący sposób: - Sprawdzana jest przynależność końców odcinka: punktów A i B do obszaru (patrz rozdział 3.2). Jeśli którykolwiek z nich należy do obszaru, dopisywany jest do listy punktów podziału odcinka LP. - Dla wszystkich prostych ai wyznaczanych przez poszczególne krawędzie figury F, badana jest ich część wspólna z prostą b wyznaczaną przez odcinek AB. - Jeżeli częścią wspólną prostej utworzonej przez krawędź ai i prostej b, na której leży odcinek, jest punkt, sprawdzana jest jego przynależność do obszaru figury. W przypadku, gdy punkt należy do figury dopisywany jest do listy punktów podziału odcinka LP. - Jeżeli proste ai oraz b pokrywają się, wyznaczany jest wspólny fragment obu odcinków i jego końce dopisywane są do listy punktów podziału odcinka LP. - Po przeglądnięciu wszystkich krawędzi, z listy LP usuwane są powtarzające się punkty, a następnie lista jest porządkowana wg jednej ze współrzędnych punktów np. x dla odcinka niepionowego, y dla odcinka pionowego. 5 - Dla każdej kolejnej pary punktów z uporzadkowanej listy punktów podziału odcinka LP sprawdzana jest przynależność środka odcinka utworzonego przez tą parę punktów do obszaru figury F. - Jeśli środek tego odcinka należy do figury F, a lista odcinków LO jest pusta, dopisywany jest on do listy odcinków LO, - Jeśli środek odcinka należy do figury F, a lista odcinków LO nie jest pusta, sprawdzane jest, czy koniec ostatniego odcinka z listy LO pokrywa się z początkiem odcinka analizowanego. - Jeśli się pokrywa, modyfikowany jest koniec ostaniego odcinka listy LO przez wpisanie współrzednych końca odcinka analizowanego. - Jeśli się koniec ostaniego odcinka listy i początek analizowanego są różne, wówczas odcinek dopisywany jest do listy LO. 3.2 Procedura ustalania przynależności punktu do obszaru na płaszczyźnie. Niech obszar F będzie zdefiniowany jako wielokąt o k wierzchołkach. Na pytanie o przynależność punktu P do danego obszaru oczekiwana jest jedna z trzech odpowiedzi: - leży poza obszarem - należy do brzegu wielokąta - należy do wnętrza wielokąta. Każdy wielokąt o k wierzchołkach przekształcany jest na listę k krawędzi, dla każdej z nich znajdowane są współrzędne punktów końcowych oraz równanie opisujące prostą wyznaczoną przez te punkty. Można wyróżnić następujące przypadki: - Jeżeli jakakolwiek współrzędna punktu P leży poza zakresem zdefiniowanym przez najmniejsze i największe współrzędne zbioru wszystkich wierzchołków wielokąta wówczas punkt P nie należy do figury F. - Jeżeli współrzędne punktu P spełniają równanie prostej, na której leży i-ta krawędź oraz jeśli współrzędne tego punktu leżą w zakresie definiowanym przez współrzędne tej krawędzi, wówczas punkt należy do brzegu figury. - W pozostałych sytuacjach należy: - podzielić figurę na zakresy ze względu na położenie jednej ze współrzędnych np. x, tak aby zbiory numerów poszczególnych krawędzi przechodzących przez dany zakres były różne dla poszczególnych zakresów. - znaleźć zakres Zx do którego należy punkt P. - dla wszytkich niepionowych krawędzi przechodzących przez zakres Zx wyznaczyć przecięcie się tych krawędzi z prostą wyznaczoną przez współrzędną x punktu P. Zbiór tych przecięć będzie liczbą parzystą - z listy przecięć stworzyć uprządkowaną listę zakresów dla współrzędnej y. Jeśli współrzędna y punktu P należy do zakresu Zy o nieparzystym numerze wówczas punkt P należy do obszaru, w przeciwnym razie leży poza obszarem. 6 3.3 Procedura wyłączania segmentów niewidocznych Dany jest zbiór odcinków: [k1 ... kn], będących rzutami wszystkich krawędzi obiektów sceny na płaszczyznę obrazu oraz zbiór segmentów rzutu sceny zapisany w macierzy o postaci: [Xpo1,1 Ypo1,1 Xko1,1 Ypo1,1; Xpo1,2 Ypo1,2 Xko1,2 Yko1,2; ...; Xpo1,m1 Ypo1,m1 Xko1,m1 Yko1,m1; Xpo2,1 Ypo2,1 Xko2,1 Ypo2,1; Xpo2,2 Ypo2,2 Xko2,2 Yko2,2; ...; Xpo2,m2 Ypo2,m2 Xko2,m2 Yko2,m2; ... Xpon,1 Ypon,1 Xkon,1 Ypon,1; Xpon,2 Ypon,2 Xkon,2 Ykon,2; ...; Xpon,mn Ypon,mn Xkon,mn Ykon,mn], gdzie: pojedynczy segment opisany jest za pomoca współrzędnych początku i końca (Xpo i,j Ypo i,j Xko i,j Ypo i,j), natomiast [m1 ... mn] – wektor liczbności segmentów do wyłączenia dla poszczególnych odcinków (k1 ... kn). Wynikiem działania procedury jest zbiór [s1 ... sp] segmentów widocznych (nieprzesłoniętych) na płaszczyźnie obrazu. Algorytm wyłączania segmentów polega na usunięciu segmentów składowych uj:(Xpo j Ypo j Xko j Ypo j ) z poszczególnych odcinków obrazu ki:(Xpo i Ypo i Xko i Ypo i ). Opis działania algorytmu: - zapisanie zbioru odcinków [k1 ... kn] jako zbioru segmentów wyjściowych [s1 ... sp], wypełnienie wektora liczebności segmentów wyjściowych wartościami 1, - dla poszczególnych odcinków obrazu ki sprawdzenie odpowiadających im segmentów uj: - jeżeli początek segmentu uj jest jednocześnie początkiem segmentu si , to segment wyjściowy przyjmuje następującą postać si: (Xpo j Ypo j Xko i Ypo i ) - jeżeli koniec segmentu uj jest jednocześnie końcem segmentu si , to segment wyjściowy przyjmuje następującą postać si: (Xpo i Ypo i Xko j Ypo j ) - jeżeli segment uj zawiera segment si , to następuje podział segmentu wyjściowego na dwie części si: (Xpo j Ypo j Xko i Ypo i ) oraz si’: (Xpo i Ypo i Xko j Ypo j ), dodatkowo zwiększana jest odpowiednia składowa wektora określająca liczebność segmentów wyjściowych. - jeżeli segment uj jest zawarty w segmencie si , to segment si jest usuwany ze zbioru segmentów wyjściowych, dodatkowo zmniejszana jest odpowiednia składowa wektora określająca liczebność segmentów wyjściowych. 4 Opis techniczny Funkcje wykonujące opisane powyżej zadania zostały zaimplementowane w postaci przybornika Symulator działającego w systemie Matlab 5.1, a składającego się z zestawu różnorodnych makr i funkcji 3. 4.1 Moduł symulatora (symulator.m) Makro główne służące do generacji widokow sceny o zadanych parametrach. Zadaniem symulatora jest wyznaczenie rzutów sceny widzianych przez obie kamery głowicy stereowizualnej. Do użytkownika należy zdefiniowanie parametrów potrzebnych do działania tego programu, a mianowicie: - sceny – określenie listy wierzchołków oraz listy połączeń pomiędzy tymi wierzchołkami, - parametrów położenia głowicy na okręgu widokowym – odległości głowicy od środka sceny, położenia głowicy na okręgu widokowym (kąt obrotu po okręgu widokowym względem położenia początkowego głowicy), nachylenia głowicy, a także parametrów związanych z kamerami: ich ogniskowej oraz wzajemnej odległości. 3 Pakiet programowy symulatora widoków udostępniono http://www.iitis.gliwice.pl/zksw/symulator/index.htm. w sieci Internet pod adresem: 7 Postać funkcji: function [WW, NS, NS1] = symulator (pr, d, f, observarc, rotationarc, fnazwa_we, fnazwa_wy) Dane wejściowe: pr d f observarc rotationarc fnazwa_we fnazwa_wy – – – – – – – odległość głowicy od środka sceny, promień okręgu widokowego, odległość między kamerami, ogniskowa, kąt nachylenia kamer względem pionu, pozycja głowicy na okręgu widokowym. nazwa pliku z opisem sceny nazwa pliku wynikowego Dane wyjściowe: WW – macierz wierzchołków, NS – macierz odcinków widocznych dla lewej kamery NS1 – macierz odcinków widocznych dla prawej kamery Przykładowe wywołanie: Symulator(150, 10, 0.5, 0, [0, 30, 60],’ostroslup.out’) Wykonanie polecenia spowoduje wygenerowanie pliku ostroslup.out zawierającego trzy widoki sceny (różniące się pozycją obserwacji na okręgu widokowym: 0, 30 i 60 stopni) dla zadanej odległości obserwatora od sceny: 150 cm, odległości między kamerami 10 cm i ogniskowej kamer 0.5 cm. Działanie: - pobranie danych o strukturze przestrzennej sceny, - obliczenie położenia punktów w rzucie perspektywicznym o zadanych parametrach, - wywołanie procedur wskazujących obszary widoczne i przesłonięte (visib.m), - zapisanie wyników do pliku w postaci odcinków na płaszczyźnie. Funkcja wykorzystuje następujące makra pomocnicze: - polygoninterior.m – funkcja sprawdzająca przynależność punktu do obszaru figury, - sectorpolygonproduct.m – funkcja wyznaczająca cześci wspólne odcinka i obszaru , - testsectorpolygonproduct.m – funkcja testujaca funkcję sectorpolygonproduct. - wsplaszczyzny.m – funkcja odczytu współczynników równania płaszczyzny z równania płaszczyzny w postaci symbolicznej, - wsprostej.m –funkcja odczytu współczynników równania prostej z równania prostej w postaci symbolicznej, - visib.m – funkcja wyznaczająca widoczne segmenty obrazu sceny. 4.2 Moduł wizualizacji (wizualizacja.m) Funkcja do prezentacji wyników działania Symulatora Widoków na ekranie. Prezentowane są kolejno wszystkie zapisane w pliku widoki. 8 Postać funkcji: function n = wizualizacja(fnazwa) Dane wejsciowe: fnazwa – nazwa pliku danych wyjściowych Symulatora Dane wyjściowe: n – macierz segmentów ostatniego widoku. 4.3 Format pliku opisu sceny przestrzennej <liczba wierzchołków w scenie (n)> <współrzędne X1> ... <współrzędne Xn> <liczba ścian w scenie (k)> <maksymalna liczba krawędzi pojedynczej ściany w scenie (m)> <wierzchołki ściany S1> ... <wierzchołki ściany Sk> gdzie: <współrzędne Xi> ::= xi yi zi 1 <wierzchołki ściany Sj> ::= wj1 wj2 ... wjk 4 4.4 Format pliku danych wyjściowych Symulatora Widoków <liczba wierzchołków widocznych (n)> <liczba znaków przeznaczonych na opis pojedynczego wierzchołka (z)> <opis w1> ... <opis wn> <liczba segmentów (m)> <segment s1> ... <segment sm> gdzie: <segment si> ::= xpocz,i ypocz,i xkon,i ykon,i 5 Przykłady wyznaczania rzutów scen Działanie algorytmów przetestowano na przykładach scen złożonych z brył wielościennych. Na rys. 3 zaprezentowano widoki prostej sceny (prostopadłościan i ostrosłup) o następujących parametrach: odległość od środka sceny – 150 cm, rozstaw kamer – 10 cm, ogniskowa kamery – 0.5 cm, pionowy kąt obserwacji – 0 st., poziomy kąt ustawienia obserwatora – 30, 60, 120, 310 st. 4 Jeśli liczba wierzchołków ściany j, oznaczona jako e,jest mniejsza od k, to warości wje wynoszą 0. 9 widok lewy pion.kąt: 0; poz.kąt:30 widok prawy widok lewy pion.kąt: 0; poz.kąt:60 widok prawy widok lewy pion.kąt: 0; poz.kąt:120 widok prawy widok lewy pion.kąt: 0; poz.kąt:310 widok prawy Rysunek 3 Wybrane widoki perspektywiczne prostej sceny widok lewy pion.kąt: 0; poz.kąt:75 widok prawy widok lewy pion.kąt: 0; poz.kąt:165 widok prawy widok lewy pion.kąt: 0; poz.kąt:255 widok prawy widok lewy pion.kąt: 0; poz.kąt:345 widok prawy Rysunek 4 Wybrane widoki perspektywiczne sceny złożonej 10 Na rys. 4 zamieszczono wybrane widoki sceny testowej złożonej z ośmiu wielościanów. Dobrano następujące parametry obserwacyjne sceny: odległość od środka sceny – 200 cm, rozstaw kamer – 30 cm, ogniskowa kamery – 0.5 cm, pionowy kąt obserwacji – 0 st., poziomy kąt ustawienia obserwatora – 75, 165, 255, 345 st. 6 Zastosowania Najważniejszym zastosowaniem, będącym jednocześnie inspiracją do powstania, symulatora widoków jest testowanie algorytmów z dziedziny widzenia komputerowego. Są to m.in. algorytmy obliczania map głębi, wyznaczania optymalnej trajektorii ruchu platformy, bądź też składania widoków z różnych położeń obserwatora. Algorytmy wyznaczania map głębi na podstawie obrazów stereowizualnych [3] znajdują odpowiedniość pomiędzy punktami obu obrazów, a następnie dzięki znajomości parametrów toru wizualnego są w stanie wyznaczyć przybliżoną odległość danego elementu sceny od kamery. Sprawdzenie algorytmu polega na wyznaczeniu tych odległości i porównaniu ich z odległościami rzeczywistymi. Testowanie algorytmu na obrazach rzeczywistych może być utrudnione przez inne czynniki nie związane bezpośrednio z tymi algorytmami, a wynikające z niedoskonałości rzeczywistej platformy – trudności z kalibracją, konieczność wykonywania pomiarów i ich skończona dokładność dla każdego nowego położenia platformy; oraz wstępnego przetwarzania obrazów – algorytmów segmentacji itp. Sprawdzenie poprawności działania algorytmów wybierających kolejne położenia ruchomej platformy na podstawie widoku danej sceny z danego po łożenia [4] w rzeczywistych warunkach również obarczone jest niedokładnościami związanymi z kalibracją, błędami segmentacji, wyznaczania mapy głębi, nieznajomością dokładnego położenia głowicy względem sceny. Z kolei na działanie algorytmów składania widoków [5] mają wpływ wymienione powyżej czynniki a także niedokładności wszystkich powyższych algorytmów, co więcej, nie tylko nieznane jest dokładne położenie głowicy względem sceny, ale również wielkość przemieszczenia głowicy pomiędzy poszczególnymi punktami. Nasuwającym się zastosowaniem jest weryfikacja i korekcja położenia platformy obserwacyjnej na podstawie konfrontacji rzeczywistego obrazu z kamer z obrazami generowanymi za pomocą symulatora widoków. Możliwe staje się też oszacowanie błędu przemieszczenia platformy. W powyższych sytuacjach konieczne staje się sięgnięcie do danych testowych pochodzących z symulatora w celu ujawnienia rzeczywistej dokładnosci działania algorytmów, na podstawie nie obarczonych błędami danych, oraz oszacowanie wpływu błędów z poszczególnych etapów pomiarowych na system działający w warunkach rzeczywistych. Bibliografia [1] [2] [3] [4] Duda, R.O., Hart, P.E., Pattern Classification and Scene Analysis, John Willey & Sons, 1973. Foley, J.D., van Dam, A., Fundamentals of Interactive Computer Graphics, AddisonWesley Publishing Company, 1982. Philipp, M., Metoda aktywnych struktur w ustalaniu odpowiedniości obrazów stereoskopowych, Komputerowe Systemy Rozpoznawania, Wrocław 1999. Luchowski, L.(ed.), Kowalski, P., Tomaka, A., Philipp, M., Pojda, D., Skabek, K., Mobile Stereovision Strategies, II Krajowa Konferencja: Metody i systemy komputerowe w badaniach naukowych i projektowaniu inżynierskim, Kraków 1999. 11 [5] Skabek, K., Rozpoznawanie obiektów przestrzennych metodą pokryć stereogramów, II Krajowa Konferencja: Metody i systemy komputerowe w badaniach naukowych i projektowaniu inżynierskim, Kraków 1999. [6] Mohr, R., Triggs B., Projective Geometry for Image Analysis, ISPRS, Vienna, July 1996. [7] Kowalski, P., Oprogramowanie dla sterowania aktywną głowicą stereowizyjną, Zeszyty Naukowe Politechniki Śląskiej, Seria: Informatyka z. 38, Gliwice 2000. [8] Keltte, R., Schlüns, K., Koschan, A., Computer Vision: Three-Dimsional Data from Images, Springer-Verlag 1998. [9] Lo, S.H., Perspective Projection of Non-Convex Polyhedra, Internetional Journal For Numerical Methods in Engineering, John Wiley and Sons, Ltd, Vol. 26, 1988. [10] Attarwala, Y., Rendering Hidden Lines, Iris Universe, Sommer: 40-41, 1989. [11] Herrel, R., Baldwin, J., Wilcox, Ch., High Quality Polygon Edging, IEEE Computer Graphics and Applications, 15(4): 68-74, July 1995.