Geometriekorrektur von Stereo

Transcription

Geometriekorrektur von Stereo
Fachbereich 4: Informatik
more3D
Geometriekorrektur von
Stereo-Projektionen
Diplomarbeit
zur Erlangung des Grades eines Diplom-Informatikers
im Studiengang Computervisualistik
vorgelegt von
Florian Limburg
Erstgutachter:
Prof. Dr. Stefan Müller
(Institut für Computervisualistik, AG Computergraphik)
Zweitgutachter:
Dipl. Inf. Matthias Biedermann
Koblenz, im März 2007
Erklärung
Ich versichere, dass ich die vorliegende Arbeit selbständig verfasst und
keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.
Ja Nein
Mit der Einstellung der Arbeit in die Bibliothek bin ich einverstanden.
Der Veröffentlichung dieser Arbeit im Internet stimme ich zu.
................................................................................
(Ort, Datum)
(Unterschrift)
i
ii
Inhaltsverzeichnis
1
Einleitung
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2
4
2
Stand der Technik
2.1 Bisherige Möglichkeiten mit Hardware . . . . . . . . . . . .
2.2 Bisherige Möglichkeiten ohne Hardware . . . . . . . . . . . .
6
6
8
3
Neue Ideen
3.1 Mittelpunktkonstruktion . . . . . . . . . . . . . . . . . . . . .
3.2 Re-Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
10
4
Scheimpflug’sche Bedingung
4.1 Historisches . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Technisches . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Anpassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
15
18
5
Details der Re-Projektion
5.1 Vorgehen . . . . . . . . . . . . . . . . . . . .
5.2 Eingabemethode: Manuelle Positionierung
5.3 Eingabemethode: Eckpunktrekonstruktion
5.4 Gewölbte Flächen . . . . . . . . . . . . . . .
5.5 Stereo . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
20
20
22
23
27
31
.
.
.
.
32
32
36
40
42
7
Auswertung
7.1 Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
47
8
Zusammenfassung
8.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
49
6
Versuche
6.1 Testprogramm
6.2 Planar 1 . . . .
6.3 Planar 2 . . . .
6.4 Gewölbt . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A Anhang
A.1 Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Code Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
50
50
52
1
1.1
Einleitung
Motivation
Bei dem Aufbau von Projektionssystemen, unabhängig von Einsatzzweck
und Projektionsart (Mono oder Stereo), gibt es stets ein Problem: Die
Ausrichtung zwischen Projektor und Leinwand. Weicht diese von der,
durch das Projektionsfrustum (engl. Kegel-/Pyramidenstumpf) des Projektors gegebenen, optimalen Position ab, ist das Bild verzerrt und liegt
nicht in Übereinstimmung mit der Leinwand. Dies kann entweder durch
verändern der Projektorposition oder der Leinwand behoben werden.
Um eine millimetergenaue Projektion zu erhalten ist jedoch ein erheblicher Planungs- und Einrichtungsaufwand vonnöten. Unter ungünstigen
Bedingungen ist ein zufriedenstellendes Ergebnis eventuell gar nicht
möglich. Zwar bieten hochwertige Geräte Funktionen wie Zoom, Lens
Shift, Tonnen- oder Kissenverzerrung an. Jedoch sind diese Projektoren
teuer und stoßen unter erschwerten Bedingungen ebenfalls schnell an
ihre Grenzen. Für kleine Betriebe und Heimanwender ist die optimale
Justierung der Geräte zu aufwendig. Bei mobilem Einsatz, z. B. für Tagungen oder Messen, ist keine Zeit dafür vorhanden. Durch sinkende Preise
für Projektoren und wachsende Anzahl an Verwendungsmöglichkeiten
werden auch größere und qualitativ hochwertigere Projektionssysteme
für mittelständische Betriebe und Heimanwender interessant. Darum ist
es sinnvoll eine einfache, effiziente und günstige Lösung für dieses Problem zu finden. Es sollte möglich sein, weiterhin neue Projektoren ohne
spezielle Korrektursysteme zu bauen und bestehende Geräte weiterzuverwenden. Daher beschäftigt sich diese Diplomarbeit mit der Möglichkeit
zur softwarebasierten geometrischen Korrektur von Projektionen.
Die Arbeit wurde in Kooperation mit der Firma more3D erstellt. more3D
ist spezialisiert auf Entwicklung und Vertrieb von 3D Präsentations Technologien. Das primäre Produkt ist more3D Stereo, mit dieser Software ist es
möglich aus beliebigen Direct3D und OpenGL quadbuffer Anwendungen sowie 3D-Bildern und 3D-Videos Stereobilder zu rendern und mit diversen Verfahren auszugeben. Von Anaglyph und Infitec über Shutterbrillen
und Headmounted Displays bis zu aktiven und passiven Stereo Projektionen
werden alle gängige Verfahren unterstützt. Im Zusammenhang mit den
Stereo-Projektionen wurde nach einer Lösung gesucht, um Bilder für suboptimal aufgestellte Leinwände zu korrigieren.
1
1.2
Problem
Geht man von einem idealen Projektionssystem1 aus, so lässt sich dieses wie
in Abbildung 1 skizzieren. Die Leinwand steht orthogonal zur optischen
Achse des Projektors. Das Bild ist leinwandfüllend.
Abbildung 1: Korrekt positionierter Projektor und Leinwand
Die Möglichkeit, Projektor und Leinwand entsprechend auszurichten
besteht aber in den seltensten Fällen, stattdessen findet man Gegebenheiten wie in Abbildung 2 gezeigt vor. Die Skizze verdeutlicht ebenfalls,
dass es unerheblich ist ob Projektor oder Leinwand von der optimalen
Position abweichen. Sämtliche Positionierungen lassen sich auf die Missplatzierung nur eines der beiden Objekte zurückführen. In dieser Arbeit
wird davon ausgegangen, dass die Leinwand falsch platziert ist.
Abbildung 2: Falsch positionierter Projektor oder Leinwand
1
Mit Projektionssystem soll in dieser Arbeit das komplette System vom zu projizierenden Bild über Projektor bis zur Leinwand und projiziertem Bild bezeichnet sein.
2
Die möglichen Abweichungen der optimalen Position sind entsprechend
der sechs Freiheitsgrade im dreidimensionalen Raum:
• Translation in X, Y und Z
• Rotation um X, Y und Z
Es wird vom üblichen Rechtshandsystem ausgegangen. X-Achse nach
rechts, Y-Achse nach oben und Z-Achse zum Betrachter hin.
Weiterhin kommen Verzerrungen durch nicht zentral projizierende
Projektoren hinzu, also Projektoren mit unsymmetrischem Projektionsfrustum.
Abbildung 3: korrekt positionierte Leinwand
Projiziert man ein Bild wie in Abbildung 3 zu sehen, auf eine Leinwand, welche um die eigene Y-Achse gedreht ist, so erhält man eine Projektion wie in Abbildung 4 auf Seite 4.
Eine Kombination aller drei Rotationen der Leinwand ist in Abbildung 5 auf Seite 4 zu sehen. Ein Beispiel einer realistischen Situation ist
in Abbildung 6 auf Seite 5 abgebildet.
Es geht also darum ein Verfahren zu finden, mit dem sich die Projektion exakt auf die Leinwand projizieren lässt. Dafür muss das zu projizierende Bild verzerrt werden, bevor es projiziert wird. Es muss vorverzerrt werden. Im Falle von Abbildung 6 muss das ganze Bild verkleinert
werden, die rechte Seite stärker als die linke. Eine leichte Rotation um die
Z-Achse, sowie eine Translation entlang der X-Achse sind ebenfalls nötig.
3
Abbildung 4: Leinwand um die Objektinterne Y-Achse rotiert
Abbildung 5: Leinwand um alle 3 internen Achsen rotiert
1.3
Aufbau
Dieses Kapitel hat sich mit der Motivation zur Arbeit befasst und
erläuterte das bestehende Problem näher. Im zweiten Kapitel werden verschiedene, bereits bestehende Lösungsverfahren vorgestellt und bewertet.
Es folgen in Kapitel 3 weitere eigene Ideen für mögliche Lösungsansätze.
Eine davon basiert auf der sogenannten Scheimpflugbedingung, welche
in Kapitel 4 erklärt wird. Das gewählte Verfahren wird anschließend in
Kapitel 5 erläutert. In Kapitel 6 werden die ausgeführten Versuchsreihen
beschrieben und in Kapitel 7 ausgewertet. Es folgen Fazit und Ausblick in
Kapitel 8.
4
Abbildung 6: Beispiel einer schiefen“ Projektion
”
5
2
Stand der Technik
Es bestehen bereits diverse Verfahren zur Geometriekorrektur von Projektionen. Manche unterstützen auch Farbkorrekturen. more3D stellte jedoch
recht spezielle Anforderungen an die Lösung, die so von existierenden
Lösungen nicht komplett unterstützt werden:
• Einfache Bedienung, auch für ungeschulte Anwender
• Gute bis sehr gute Genauigkeit
(von Home-Entertainment bis technischer Präsentation)
• Geeignet für übliche planare Projektionsleinwände
• Auch übliche nicht-planare Leinwände müssen unterstützt sein
– Zylinder/Tonne in beiden Richtungen (vertikal/horizontal)
– Sphären (kugelförmig)
• Günstig
• Keine zusätzliche Hardware
• Projektion über die komplette Leinwand
• Für viele Betrachter geeignet
2.1
Bisherige Möglichkeiten mit Hardware
2.1.1
Bisherige Arbeiten zu diesem Thema haben häufig denselben Nachteil,
sie benötigen zusätzliche Hardware. So verwendet [RB02] nicht nur eine
Kamera um die Verzerrung der Projektion zu erfassen, sondern auch einen
Neigungssensor zur Ermittlung der Lage des Projektors. Die hier verwendete zusätzliche Hardware benötigt eine Kalibrierung. Die Eckpunkte
der Leinwand werden durch eine Kamera erfasst und das Bild der unveränderten Projektion wird über Homographie2 mit den erfassten Eckpunkten in Übereinstimmung gebracht Jedoch ist das Verfahren nur auf
planare Oberflächen anwendbar.
2
Relation zwischen zwei Figuren, bei der jeder Punkt in der einen Figur genau mit
einem und nur auf einem Punkt in der anderen Figur korrespondiert.
6
2.1.2
Die Problematik der gekrümmten Oberflächen wird von Raskar et al in
[RvBW04] behandelt. Der hier verwendete, auf quadratischem Transfer
basierende, parametrische Ansatz ist in der Lage mehrere Projektoren
zu einem gemeinsamen Bild auf einer gekrümmten Oberfläche zusammen zu setzen. Jedoch ist wiederum zusätzliche Hardware nötig, in
diesem Fall zwei Kameras. Damit ist das Verfahren gut für große Institute oder zur Weiterentwicklung von Projektoren zur automatischen Selbstkorrektur geeignet. Es sind ebenfalls weiterführende Forschungen wie
[RvBB+ 03] möglich. Hier geht es um einen mobilen Projektor der situationsbedingt Anweisungen projiziert. Jedoch erfüllt das Verfahren, aufgrund der zusätzlichen Hardware, nicht die gestellten Bedingungen.
2.1.3
Ähnliches gilt für die Verfahren aus der Bauhaus Universität Weimar3 , so
benötigt [ZLO06] im ersten Schritt ebenfalls eine Kamera, um die zeitlich
kodierten Pixel einzulesen. Der Projektor sendet ein Bild, in dem jedes
Pixel eindeutig anhand seines Binärmusters über der Zeit identifizierbar
ist. Durch Erfassen jedes einzelnen Pixels ist es möglich auf jegliche Art
von Oberfläche4 zu projizieren.
Im zweiten Schritt von [ZLO06] ist es möglich mit einer am Kopf des
Betrachters angebrachten Kamera, durch Analyse des optical flows (engl.
optischer Fluss), ein für den Anwender ständig korrektes Bild zu liefern.
Da die in dieser Arbeit gesuchte Lösung aber für mehrere Anwender
geeignet sein soll und von normalen“ Projektionsflächen ausgegangen
”
werden kann, ist auch dieses Verfahren nicht geeignet.
2.1.4
Ein weiterer Ansatz unter Verwendung zusätzlicher Hardware liegt mit
[LDMA+ 04] vor. Für diesen Ansatz werden Lichtsensoren in die verwendete Projektionsoberfläche integriert, z. B. an den vier Eckpunkten der
Fläche. Mit Hilfe von in vertikaler und horizontaler Richtung schwarzweiß gestreiften Mustern zunehmender Frequenz wird die genaue Position eines Sensors ermittelt. Über Homographie wird nun eine Vorverzer3
Mit [GB06] existiert hier auch ein interessantes Verfahren zur radiometrischen Kompensation von ungewöhnlichen Projektionsflächen.
4
In den Veröffentlichungen werden unter anderem Stuck-, Rauputzwände, Raumecken aus Backsteinen und Gardinen erwähnt
7
rung des Bildes vorgenommen. Während die Kalibrierung zwar schnell
und robust ist, scheidet auch dieses Verfahren aufgrund zusätzlicher
Hardware aus.
2.2
Bisherige Möglichkeiten ohne Hardware
2.2.1
Es gibt aber auch Verfahren, die keine zusätzliche Hardware benötigen, so
z. B. [LOU+ 06]. Hier wird, basierend auf vom Anwender markierten Eckpunkten der Leinwand, eine Transformationsmatrix angenähert. Der Projektor wird in kurzer Zeit manuell so gut wie möglich eingestellt, in der
Projektion selbst werden mit einem Cursor die vier Eckpunkte der Leinwand angegeben.
Koordinaten und den originalen Koordina 1 1 Aus−1diesen
−1
ten 1 , 1 , −1 , −1 wird über ein Gradienten Verfahren eine Transformationsmatrix (ausgehend von der Einheitsmatrix) angenähert. Die erstellte Transformationsmatrix kann gespeichert werden und an die Projektionsmatrix anderer 3D-Applikationen anmultipliziert werden. Damit ist
[LOU+ 06] schnell in vorhandene Programme eingebunden, sofern Zugriff
auf dessen Quellcode möglich ist. Jedoch ist nur die Korrektur für planare
Flächen möglich, womit auch dieses Verfahren ausscheidet.
2.2.2
Grundsätzlich gilt, dass ein System genauere Angaben zum vorhandenen Aufbau der Projektion machen muss, um eine entsprechende Korrektur zu ermitteln. Dieses System ist in den meisten der hier vorgestellten
Verfahren eine Kamera, aber auch der Anwender kann hierfür herangezogen werden. Wenn sich die Projektionsbedingungen nicht kontinuierlich ändern, können zusätzliche Kosten, die durch Aufnahmesysteme
entstehen würden, durch Einbeziehung des Anwenders in den Korrekturprozess eingespart werden.
8
3
Neue Ideen
Da keines der in Kapitel 2 beschriebenen Verfahren die gestellten Anforderungen in befriedigender Weise erfüllt, mussten weitere Verfahren entwickelt werden. Es wurden zwei neue Ansätze entworfen und untersucht.
3.1
Mittelpunktkonstruktion
Dreht man eine Fläche schräg zum Betrachter, wie in Abbildung 4 auf Seite
4 gezeigt, wandert der Mittelpunkt in Richtung des Fluchtpunktes. Er
befindet sich weiterhin im Schnittpunkt der beiden Eckpunktdiagonalen.
Werden die vier Eckpunkte des Polygons durch den Anwender gegeben,
lässt sich somit auch der Mittelpunkt berechnen. Neben dem Mittelpunkt werden ebenfalls die Fluchtpunkte benötigt. Diese entsprechen den
Schnittpunkten der verlängerten gegenüberliegenden Kanten. Das Polygon wird in vier Quadranten aufgeteilt, indem es entlang der Geraden
durch Mittelpunkt und Fluchtpunkte geteilt wird. Wird dies rekursiv fortgesetzt kann jeder Punkt innerhalb der Fläche erreicht werden (Abbildung 8 auf Seite 11).
Diese Aufteilung entspricht zwei Binärbäumen wie in Abbildung 7 zu
sehen, einem für die X-Koordinate und einem für die Y-Koordinate. Die
Wurzel der Bäume ist jeweils 21 . Die Kinderknoten ergeben sich jeweils wie
folgt: Der Eintrag des Vaterknotens wird um 2 erweitert, für den Nenner
der linken Seite wird 1 subtrahiert und für die rechte Seite 1 addiert. Diese
Brüche stellen die Texturkoordinaten der Mittelpunkte der entsprechenden Quadranten dar. Damit kann eine Textur perspektivisch korrekt interpoliert werden.
Abbildung 7: Texturkoordinatenbaum
9
Die Texturkoordinaten der Punkte in Abbildung 8 auf Seite 11 ausgehend vom Ursprung unten links wären:
• 1 - 12 , 12
• 2 - 34 , 14
• 3 - 58 , 18
1
• 4 - 11
,
16 16
• ...
Das Verfahren zeichnet sich durch einfache Implementation, schnelle
Bedienung und intuitive Steuerung durch echtzeitfähige Rückmeldung
durch Darstellung eines viereckigen Polygons aus. Jedoch funktioniert es
wieder nur für planare Flächen. Eine Erweiterung für gewölbte Flächen
wäre sehr aufwendig und würde für den Anwender nur schwer einstellbare Parameter benötigen.
Im Verlauf weiterer Recherchen wurde festgestellt, dass dieses Verfahren bereits unter dem Namen projektive Netze bekannt ist, es wird unter
anderem in [KL84] erwähnt und ist ein Verfahren zur Entzerrung von
Luftaufnahmen in der Kartographie.
3.2
Re-Projektion
Die in Kapitel 3.1 erwähnte Mittelpunktkonstruktion (bzw. projektive Netze) ist in ihren Möglichkeiten limitiert, daher wurde eine Idee weiterverfolgt, nach der es eventuell möglich ist die benötigte Verzerrung alleine
durch Nachbildung und Projektion der Welt zu erreichen. Daher wurde
das Verfahren Re-Projektion genannt.
Das gewünschte Bild wird als Textur auf ein Rechteck, eine Repräsentation der reellen Leinwand im virtuellen Raum, gelegt. Dieses Rechteck
wird entsprechend der Situation in der realen Welt verschoben, um die
eigenen Achsen gedreht und z. B. mit OpenGL gerendert. Damit existiert
eine Repräsentation der Welt wie sie der Projektor sehen würde. Diese ist
im linken Teil der Abbildung 9 auf Seite 11 zu sehen. Würde der Projektor
das unkorrigierte Bild (siehe Abbildung 3 auf Seite 3) projizieren, würde
man ein Ergebnis, wie im rechten Teil der Abbildung 9 zu sehen, erhalten.
Aus Abbildung 3 entsteht also der rechte Teil von Abbildung 9. Das Bild,
welches projiziert werden muss um auf der Leinwandebene eine korrekte
Darstellung zu erhalten, könnte eben jenes sein, das im linken Teil von
Abbildung 9 dargestellt ist.
10
Abbildung 8: Konstruktion des Mittelpunktes
Abbildung 9: Links: Leinwand aus der Sicht des Projektors. Rechts: Projektion auf der Leinwandebene.
Die Re-Projektion funktioniert damit wie in Abbildung 10 auf Seite 12
skizziert. Die Strecke AD ist die virtuelle Leinwand, A0 D0 ist das gerenderte Bild das vom Projektor projiziert wird und A00 D00 ist das projizierte
auf der echten Leinwand. Das gesamte Projektionssystem besteht also aus
zwei Projektionen, AD nach A0 D0 nach A00 D00 . Es gilt Projektionen zu finden für die gilt:
11
Abbildung 10: Re-Projektion
AB = BC = CD ⇒ A00 B 00 = B 00 C 00 = C 00 D00
(1)
Das es solche Projektionen gibt kann anhand von zwei Gegebenheiten
belegt werden.
AC
AD
Erstens, das Doppelverhältnis: BC
: BD
. Dieses ist invariant gegenüber
projektiven Abbildungen. Siehe hierzu Abbildung 11 auf Seite 13 und
Formel 2, oder [KL84]:
AC AD
A0 C 0 A0 D 0
:
= 0 0 : 0 0
BC BD
BC BD
(2)
Nach Abbildung 10 wird diese zu:
AC AD
A 0 C 0 A0 D 0
A00 C 00 A00 D00
:
= 0 0 : 0 0 = 00 00 : 00 00
BC BD
BC BD
B C
B D
(3)
Setzt man in Formel 3 AC = AB + BC usw. ein, ergibt sich:
AC AD
AB + BC AB + BC + CD
:
=
:
BC BD
BC
BC + CD
(4)
Dies gilt ebenso für A0 D0 und A00 D00 . Zieht man den linken Teil aus Formel
1 hinzu, erhält man:
AB + AB AB + AB + AB
4
:
=
3
AB
AB + AB
12
(5)
Abbildung 11: Doppelverhältnis
Daraus folgt, dass
A00 C 00 A00 D00
A00 B 00 + B 00 C 00 A00 B 00 + B 00 C 00 + C 00 D00
4
= 00 00 : 00 00 =
:
3
B C
B D
B 00 C 00
B 00 C 00 + C 00 D00
(6)
gilt. Dies gilt unter anderem für A00 B 00 = B 00 C 00 = C 00 D00 . Würde man nur
AD und A0 D0 betrachten würde daraus folgen, dass die beiden Ebenen
parallel zueinander liegen (Abbildungen 12.1 und 12.2 auf Seite 14), wie
dies bei normalen Kameras der Fall ist. Denn nur unter dieser Bedingung
findet keine Verzerrung der Strecken statt. Das vorliegende Problem ist
aber gerade, dass die Ebenen nicht parallel zueinander liegen, siehe Abbildung 2 auf Seite 2. Es gilt also eine Kombination von Ebenenorientierungen und Brennpunkten zu finden, so dass die zweite Projektion aus beliebigen A0 B 0 , B 0 C 0 und C 0 D0 gerade wieder A00 B 00 = B 00 C 00 = C 00 D00 macht.
Dabei ist die exakte Länge von A00 D00 irrelevant. Sie braucht nicht gleich
der von AD zu sein. Um eine jener Kombinationen zu finden kann man
die Scheimpflug’sche Bedingung anwenden. Diese wird im nächsten Kapitel
erklärt.
13
Abbildung 12: Die 3 Ebenen des Projektionsmodells
14
4
Scheimpflug’sche Bedingung
4.1
Historisches
Die Scheimpflug’sche Bedingung wurde nach dem Österreicher Theodor
Scheimpflug benannt. Theodor Scheimpflug wurde am 7. Oktober 1865 in
Wien als Sohn eines Bankdirektors geboren. Im Verlaufe seines Lebens erhielt er das Kapitänspatent und war k. und k.5 Hauptmann. Er starb am
22. August 1911 in Vorderbrühl noch bevor er seine Arbeiten zur Aerophotogrammetrie6 abschließen konnte. Diese wurden durch das, von seinem
Bruder k. und k. Sektionsrat Dr. Karl Scheimpflug und dem Ingenieur
Gustav Kammerer gegründete, Institut Scheimpflug“ fortgeführt.
”
Merklinger schreibt in [Mer96], dass die Bezeichnung Scheim”
pflug’sche“ Regel nicht ganz korrekt wäre, da Scheimpflug sich in seiner Patentschrift von 1904 ([Sch04]) lediglich auf diese allgemein bekannte Tatsache bezieht um darauf aufbauend weitere Ausführungen zu
machen. Er spricht den Zusammenhang der Ebenen der Veröffentlichung
von Carpentier in 1901 zu, auf die sich Scheimpflug in seinem Patent
bezieht. Merklinger schreibt, dass während Carpentier den der Scheimpflug’schen Regel zugrunde liegende Zusammenhang der Ebenen als erster erwähnt hat, hat Scheimpflug diesen als erster empirisch belegt. Diese
Bedingung wurde von Scheimpflug bei der Übertragung von Luftaufnahmen in Kartenmaterial angewandt. Heute wird sie immer noch bei der Reproduktion von Landkarten und in der professionellen Photographie mit
Großformat-Kameras (z. B. zur Aufnahme von Hochhäusern) angewandt.
Sie findet ebenfalls reges Interesse in der Ophtalmologie, hier wird sie für
diverse Instrumente zur optischen Diagnose von Augenleiden verwendet.
4.2
Technisches
In der Photographie gibt es das Problem der Schärfenebene. Will man
z. B. ein hohes Gebäude ablichten, muss man die Kamera schräg nach
oben halten um das komplette Gebäude auf Film bannen zu können. Da
der Schärfebereich einer normalen Kamera aber parallel zur Filmebene
liegt werden Teile des Gebäudes aus dem Schärfebereich hinauslaufen.
Um dieses Problem zu umgehen wird eine nach Theodor Scheimpflug benannte Bedingung in professionellen Großformat-Kameras angewendet.
5
6
kaiserliche und königliche Monarchie, 1867 – 1914
Gewinnung von (Mess)daten aus Luftaufnahmen
15
Diese Bedingung besagt, dass man um eine scharfe Abbildung zu erhalten die Objekt-, Objektiv- und Bildebene so einstellen muss, dass sie sich
in einer gemeinsamen Geraden schneiden (Abbildung 13). Diese Bedingung muss stets erfüllt sein, sie gilt auch für normale Kameras. Denn hier
verlaufen die drei Ebenen parallel zueinander und schneiden sich damit
im Unendlichen.
Abbildung 13: Scheimpflug’sche Bedingung. Zeichnung7 von Joachim
Baecker aus [Wik07]
Obiges ist der Teil der Scheimpflugbedingung die im Bereich der Photographie allgemein bekannt ist. Für das hier vorliegende Problem wird
jedoch die komplette Scheimpflugbedingung benötigt, wie sie in der Photogrammetrie8 Anwendung findet. Sie ist z. B. in [Ber13] dargestellt. Hier
findet sich auf Seite 6 Fig 9.“wie in Abbildung 14 nachgezeichnet. Diese
”
Zeichnung dient zur Erklärung des Funktionsprinzips des Universaltransformators von Scheimpflug. Er funktioniert wie folgt: A0 B 0 ist die Abbildung des Objekts AB durch die Linse O. Legt man senkrecht zur optischen Achse dieser Linse eine Ebene erhält man o. b1 und b2 entstehen auf
gleichem Wege an den Brennpunkten der bikonvexen Linse. Die beliebig
gewählte Objektebene E1 wird verlängert bis sie b1 und o schneidet. Die
Schnittachse von E1 und o wird als Kollineationsachse K bezeichnet. Dies
ist die Schnittgerade der Objekt-, Objektiv- und Bildebene in obiger allgemeiner Schärfebedingung. Die zwischen E1 und b1 entstandene Gerade ist
7
http://de.wikipedia.org/wiki/Bild:Scheimpflug Bedingung.png Stand Februar
2007
8
In der Photogrammetrie werden Messdaten anhand von Photos gewonnen
16
Abbildung 14: Scheimpflug Geraden
die Gegenachse I. Die Ebene G1 zwischen I und O wird als Gegenebene bezeichnet. Damit lässt sich jetzt auch die Bildebene E2 bestimmen. Sie geht
durch die Achse K und ist parallel zur Ebene G1 .
Mit diesem Verfahren ist eine scharfe Abbildung unter beliebigen Winkeln zwischen E1 und o möglich. Der Winkel zwischen den beiden Ebenen E1 und E2 bestimmt dabei den Grad der Verzerrung der Geometrie
von AB. In der Aerophotogrammetrie wird dieses Verfahren verwendet
um Luftaufnahmen aus unterschiedlichen Winkeln so aneinander anzupassen als ob sie unter demselben Winkel aufgenommen worden wären.
Damit existiert, unter dem Namen der Scheimpflug’schen Bedingung,
eine Möglichkeit um das, dieser Arbeit zugrunde liegende, Problem der
Verzerrung zu lösen. Bei beiden Problemen geht es darum perspektivische
Projektionen zwischen nicht parallelen Ebenen so zu korrigieren, dass ein
Ergebnisbild erzielt wird, wie es auch bei einer Projektion zwischen parallelen Ebenen entstanden wäre. Es wird eine Luftaufnahme unter einem
17
falschen Winkel gemacht und anschließend mit Hilfe einer neuerlichen
Projektion korrigiert. Zur Lösung des vorliegenden Problems wird ein
Bild im virtuellen Raum projiziert und anschließend auf die reale Leinwand projiziert.
4.3
Anpassung
Um die Scheimpflug’sche Bedingung auf das vorliegende Problem anwenden zu können, müssen Bestandteile des Projektionssystems uminterpretiert werden. Aus einem Teil der Projektion in der virtuellen Welt,
dem Projektorbild und einem Teil dessen Projektion wird die bikonvexe
Linse aus Kapitel 4.2, des Weiteren wird die idealisierte Projektion des
Lochkamera-Modells angenommen. So entsteht aus Abbildung 14 die
Abbildung 15 auf Seite 19. Dabei ist lediglich die virtuelle Leinwand
veränderlich und der Rest des Systems ist beliebig, aber fest gegeben. Mit
der Scheimpflug’schen Bedingung wäre es möglich, genau jene Position
der virtuellen Leinwand zu finden, damit die Projektion das Ausgangsbild über die verzerrte Abbildung zurück in eine unverzerrte Abbildung
überführt. Jedoch existieren keine genauen Angaben zur Objektebene. Die
genaue Position und Orientierung der reellen Leinwand sind unbekannt.
Damit kann die Bildebene nicht nach Scheimpflug konstruiert werden. Es
gilt also eine andere Stelle im System zu finde an der man ansetzen kann.
18
Abbildung 15: Konstruktion der Bildebene nach Scheimpflug
19
5
Details der Re-Projektion
5.1
Vorgehen
In Abbildung 16 Seite 21 sind die prinzipiellen Projektionswege zu sehen.
Die mittlere Linie C stellt das verzerrte Bild dar, welches man auf einem
Monitor sehen würde. Auf der linken Seite, Bereich 1 und 2, ist die Projektion von Projektor C zur Leinwand A. Rechts die Virtuelle Leinwand E in
der Nachstellung, Bereich 3 und 4.
Dies ist eine vereinfachte Darstellung. Der Strahlengang verläuft in
Wirklichkeit anders. Im virtuellen Bereich findet keine Kreuzung der Projektionsstrahlen statt. Die Bildebene liegt, gemäß des OpenGL Viewfrustums9 , vor dem Brennpunkt. Der Projektor bekommt ein seitenrichtiges
Bild und überführt dieses selbst in eine seitenverkehrte Darstellung falls
dies durch die Optik des Projektors benötigt wird. Das Endergebnis
entspricht aber dem der Skizze. Diese Darstellung wurde gewählt, da
sie klarer strukturierbar ist und die Konstruktion der Bildebene nach der
Scheimpflug-Bedingung einen Brennpunkt D vor der Bildebene C voraussetzt.
• 1 + 2 Reelle Projektion
• 3 + 4 Virtuelle Nachbildung
• A Echte Leinwand; projiziertes Bild
• B Brennpunkt des Projektors
• C Objektiv Ebene; vorverzerrtes Bild; Kamera- Projektorbild
• D Brennpunkt der Virtuellen Kamera
• E Virtuelle Leinwand
Der primäre Aspekt, der in Kapitel 4.2 beschriebenen Scheimpflugbedingung, das Ermitteln des Schärfebereichs, kann im Zusammenhang mit
dem vorliegenden Problem ignoriert werden. Eine computergenerierte
Abbildung hat stets eine unendliche Schärfentiefe. Dies bedeutet, dass die
Bildebene nicht durch die Kollineationsachse K gehen muss. Nur die Parallelität zur Gegenebene muss beachtet werden. Dies ist auch in Kapitel
9
Jener von der Kamera ausgehende Kegelstumpf, der den von der Kamera abzubildenden Ausschnitt der Welt definiert
20
Abbildung 16: Projektionswege
5.3 ersichtlich, wenn auf die Lösungsmenge des dort angewendeten Gleichungssystem eingegangen wird.
Abbildung 17 auf Seite 22 zeigt die skizzenhafte Darstellung einer Projektion. Auf der linken Seite die optimale Betrachtersicht, rechts die des
Projektors. Die äußere Linie ist jeweils der Rand der Projektion, die innere
stellt den Rand der Leinwand dar. Der Inhalt des äußeren Rahmens ist das
Bild, welches man auf einem Monitor sehen würde. Das originale Bild des
äußeren Rahmens gilt es jetzt so zu verändern, dass es mit der inneren
Linie in Übereinstimmung gebracht wird. Dazu muss wie am Ende von
Kapitel 4.3 bereits erwähnt ein Einstieg in das Projektionssystem gefun21
Abbildung 17: Sicht auf die Leinwand
den werden, von dem aus man dieses verändern kann. Dafür gibt es zwei
verschiedene Ansätze.
5.2 Eingabemethode: Manuelle Positionierung
Bei der ersten Variante befindet sich der Ansatzpunkt am Ende des Projektionssystems, Ebene E in Abbildung 16. Der Anwender steuert direkt die
Lage der virtuellen Leinwand. Es wurde ein Programm erstellt mit dem
es möglich ist eine virtuelle Leinwand im Raum zu verschieben und zu
drehen. Nach einer gewissen Einarbeitungszeit sowie einer visuellen Hilfe in Form von Kreisen, die die Rotationswege der Eckpunkte anzeigen
(Abbildung 25 auf Seite 33), kann man das Bild in Übereinstimmung mit
der Leinwand bringen. Ebenfalls muss das Seitenverhältnis der Leinwand
angepasst werden können, sowie eine Korrektur für unterschiedliche Projektionsfrustums verschiedener Projektoren zur Verfügung stehen. Damit
kommt man, je nach Implementation und Kombination von Parametern,
auf einen Umfang von bis zu 10 Parametern, die vom Anwender gesteuert
werden müssen. Bedenkt man, dass sich die Parameter untereinander beeinflussen, wird deutlich, dass die Steuerung eines solchen Systems nicht
intuitiv ist und einiges vom Anwender abverlangt. Damit widerspricht
dieses Eingabeverfahren dem Kriterium der Einfache[n] Bedienung, auch
”
22
für ungeschulte Anwender“aus Kapitel 2. Daher wird für diese Arbeit ein
anderer Ansatz verwendet.
5.3
Eingabemethode: Eckpunktrekonstruktion
Nach diesem Ansatz gibt der Anwender ähnlich wie in [LOU+ 06] die Eckpunkte der Leinwand durch Auswahl mit dem Mauszeiger im projizierten
Bild an. Dieses Vorgehen verlangt nach einem Weg mit dem es möglich
ist aus der Anwendereingabe von vier 2D-Punkten eine Fläche im dreidimensionalen Raum zu bestimmen. Mit zusätzlichen Angaben kann ein
Ergebnis erzielt werden, welches das gegebene Problem der Entzerrung in
angemessener Weise löst. Es wird die Position der virtuellen Kamera (z. B.
aus gluLookAt()) sowie die Z-near-Ebene10 (z. B. aus glFrustum())
benötigt. Die durch den Anwender angegebenen 2D-Koordinaten werden
als Projektion der 3D-Koordinaten der virtuellen Leinwand auf die Z-nearEbene interpretiert. Zusammen mit dem Augpunkt ergeben sich vier Geraden, die grauen Linien in Abbildung 18.
Damit sind die Punkte A0 und D0 in Abbildung 10 auf Seite 12 bekannt. An dem reellen Bereich des Projektionssystems können keine Eingriffe vorgenommen werden. Aber mit den vom Anwender angegebenen
Punkten ist es möglich im virtuellen Bereich des Systems zu arbeiten. Es
gilt eine Leinwand bzw. Rechteck zu finden, dessen Eckpunkte auf diesen
Geraden liegen. Um dieses Problem mit einem linearen Gleichungssystem zu lösen, müssen folgende Annahmen getroffen werden. Man kann
davon ausgehen, dass die obere und untere Kante der Leinwand parallel zueinander sind. Daraus ergeben sich im 3D-Raum bereits drei Gleichungen (Formel 7), mit den vier unbekannten Geradenparametern s, t, u
und v. Diese Gleichung sagt aus, dass der Vektor der oberen Kante gleich
dem Vektor der unteren Kante ist. Stellt man diese nach 0 um und nimmt
für jede Koordinate eine Gleichung für sich, erhält man bereits das Gleichungssystem 8.
−
→
−
→ ~a + u · −~a + T r − ~a + t · −~a + T l
−
→
−
→ = ~a + v · −~a + Br − ~a + s · −~a + Bl
10
Die Ebene des Kamera-Frustums, auf die die Welt projiziert wird.
23
(7)
Abbildung 18: Projektion (virtuell)
u · (−ax + T rx ) − t · (−ax + T lx ) − v · (−ax + Brx ) + s · (−ax + Blx ) = 0 u · (−ay + T ry ) − t · (−ay + T ly ) − v · (−ay + Bry ) + s · (−ay + Bly ) = 0 u · (−az + T rz ) − t · (−az + T lz ) − v · (−az + Brz ) + s · (−az + Blz ) = 0 (8)
Die Orthogonalität der Leinwand kann in diesem Fall nicht ausgenutzt werden. Dies funktioniert nicht, da man hier eine unendliche
Lösungsmenge erhalten würde. Das gesuchte Rechteck ist beliebig skalierbar, kann also entlang der vier Geraden verschoben werden. Hieraus
ergibt sich das Erfordernis einer Größenvorgabe für das Rechteck, um
ein einziges, bestimmtes Rechteck zu berechnen. An dieser Stelle stellt
sich dann die Frage, welcher Wert einem Anwender am ehesten oder
am schnellsten zugänglich ist? Es sollte sich dabei um einen konstanten
Wert handeln, der auch bei verschiedenen Konfigurationen verwendbar
ist. Damit fällt z. B. die Entfernung zwischen Projektor und Leinwand
weg. Es bleiben Dinge wie Seitenlänge oder Fläche der Leinwand übrig.
Zum Zwecke der Einfachheit der Programmbedienung sollen dem An24
wender so wenig Wahlmöglichkeiten wie irgendmöglich zur Verfügung
gestellt werden. Größenangaben sind aber von Leinwand zu Leinwand
unterschiedlich. So wurde sich für das Seitenverhältnis der Leinwand
entschieden. Dieses wird jedoch nicht als Seitenverhältnis verwendet, sondern als Seitenlängen, mit denen der Flächeninhalt x berechnet wird. Aus
dem Verhältnis 5 : 4 wird so x = 20 für die Formel 9.
−
→ −
→
x = ~a + v · −~a + Br − ~a + u · −~a + T r (9)
−
→
−
→ · ~a + v · −~a + Br − ~a + s · −~a + Bl Eine detaillierte Liste der einzelnen Schritte zur Lösung des Gleichungssystems ist im Anhang A.1 zu finden.
Die Vorteile dieser Vorgehensweise sind die hohe Stabilität und ein
Ergebnis, das für den Anwender in den meisten Fällen nachvollziehbar ist.
Solange der Anwender auf die Eckpunkte der echten Leinwand klickt ist
das Ergebnis exakt das was gebraucht wird. Mit diesen Formeln wird ein
Rechteck mit zwei parallelen Kanten und einem bestimmten Flächeninhalt
bestimmt. Die Seitenlängen sind beliebig und hängen direkt von der Anwendereingabe ab. So kann es zu den folgenden drei Ergebnistypen kommen:
Alle drei Beispiele wurden für ein Seitenverhältnis“ von 5 : 4 berech”
net. Bedingt durch den entstandenen Programmcode wird der Bequemlichkeit wegen mit den Seitenlängen von 2,5 und 2 gerechnet, da das
Weltkoordinatensystem im Zentrum des Bildschirms liegt, also einer
Fläche von 5. Dabei liegen die Abweichungen für die Fläche, sowie die
Entfernung des vierten Punktes zur Ebene der drei anderen, stets im Bereich der Fließkomma-Ungenauigkeit der double-Variable. Bei korrekter
Eingabe erhält man ein Bild wie beispielsweise in Abbildung 19 (1) auf
Seite 26 zu sehen. Beispiele für falsche Eingaben sind in den Abbildungen 20 (2) und 21 (3) auf den Seiten 26 und 27 zu finden. Die nachstehende
Tabelle zeigt die Fehler in den Seitenlängen für diese drei Beispiele.
Beispiel
Fehler oben
Fehler rechts
Fehler in Prozent11
11
(1)
-0,000754
0,000604
0,03%
(2)
0,847241
1,025244
42,58%
(3)
2,54624
-1,00916
76,15%
(101.85% für (3) oben alleine)
Prozentangabe als Durchschnitt von oben und rechts.
25
Abbildung 19: Ergebnis bei korrekter Eingabe (1)
Abbildung 20: Ergebnis bei falscher Eingabe (2)
26
Abbildung 21: Ergebnis bei falscher Eingabe (3)
5.4
Gewölbte Flächen
Es wurde bereits gezeigt, dass die Re-Projektion für planare Flächen funktioniert. Dies wird in Kapitel 6.2 später noch einmal experimentell gezeigt.
In Kapitel 2 wurde jedoch auch die Bedingung gestellt, dass das Verfahren für gewölbte Leinwände funktionieren muss. Standardmäßige, nicht
planare Leinwände sind in zwei grundsätzliche Arten einteilbar:
• Zylindrische
• Sphärische
Hierbei können die Zylindrischen entweder um die horizontale oder
vertikale Achse gewölbt sein. Ersteres tritt jedoch weniger häufig auf.
Die Form einer zylindrischen Leinwand ist durch einen Kreisbogen mit
beliebigem Radius beschreibbar. Die Frage, welche in diesem Kapitel
beantwortet werden soll, ist: Kann die Re-Projektion auf nicht planare
Leinwände genauso angewendet werden wie auf planare? Die Antwort
wird Ja – fast“ lauten.
”
Dabei sind sphärische Leinwände direkt auf zylindrische zurückführbar.
Ein Zylinder ist ein Stapel“ von gleichen Kreisscheiben. Eine Sphäre ist
”
ein Stapel“ von unterschiedlichen Kreisscheiben. Wenn im Verlauf dieses
”
Kapitels gezeigt wird, dass die Re-Projektion für Zylinder unterschiedlicher Radien funktioniert, ist damit auch gezeigt, dass sie für Sphären funktioniert. Denn eine Sphäre kann als Kombination von unterschiedlichen
Zylindern oder als Kombination gleicher Zylinder mit unterschiedlicher Rotation angesehen werden. Eine zylindrische Leinwand kann ebenso wie eine sphärische durch Teilsegmente approximiert werden. Diese
können so gewählt werden, dass sie für beide Arten von Leinwänden anwendbar sind und wenn die einzelnen Teilsegmente korrigierbar sind, gilt
das auch für die kompletten Leinwände. Daher wird im folgenden die
Frage ob die Re-Projektion für nicht planare Leinwände anwendbar ist,
nur anhand von zylindrischen Leinwänden untersucht. Um diese Frage
27
zu beantworten, muss man die Konstruktion der Bildebene nach Scheimpflug noch einmal genauer betrachten. Nach Abbildung 15 auf Seite 19
kann die Lage der Bildebene durch Brennweite f des linken Teils, der Distanz d zwischen Objekt- und Objektivebene entlang der optischen Achse
des Systems sowie des Winkels α zwischen Objektebene und optischer
Achse berechnet werden. Aus diesen drei Werten lässt sich die Distanz d0
der Bildebene und der Winkel β bestimmen. Dabei ist, wie in Kapitel 5.1
erwähnt, die Distanz irrelevant. Die Formel zu ihrer Berechnung kann im
Anhang gefunden werden (A.1 Seite 51). Sei Ix der Abstand zwischen der
Achse I und der optischen Achse, dann berechnet sich der Winkel wie
folgt:
Ix
β = arctan
(10)
f
mit
Ix = (d − f ) · tan α
(11)
ergibt sich:
β = arctan
(d − f ) · tan α
f
(12)
Als nächstes gilt es herauszufinden wie diese Formel auf einen Zylinder angewendet werden kann. Formel 12 ist auf Ebenen ausgelegt. Wie
lässt sich also ein Zylinder auf eine oder mehrere Ebenen reduzieren?
Der Zylinder muss in mehrere Teilsegmente zerlegt werden, welche dann
einzeln in ihre entsprechenden Bildebenen überführt werden. Dazu gibt
es drei verschiedene Möglichkeiten der Unterteilung. Wie in Abbildung 22
auf Seite 29 zu sehen sind dies:
• Als Teilkreissegmente. Der Kreis wird mit Linien approximiert und
die einzelnen Linien werden projiziert.
• Als Tangentenstücke. Der Kreis wird mit außerhalb liegenden Linien
approximiert.
• Als Punkte. Die Endpunkte aller Kreisdurchmesser.
Um die Steuerung für den Anwender so intuitiv wie möglich zu gestalten, sollen ihm so wenig Parameter wie möglich zur Verfügung gestellt
werden. Deswegen soll die Entzerrung lediglich durch Projektion eines
Zylinders erfolgen. Hier müsste der Anwender lediglich wie gehabt die
Eckpunkte angeben und dann den Radius des Zylinders durch Ziehen
mit der Maus einstellen. Dafür muss es aber möglich sein einen Zylinder
28
Abbildung 22: Zylinder unter Scheimpflug
durch Konstruktion mit der Scheimpflug’schen Bedingung in einen Zylinder zu überführen. Um den approximierten Zylinder über die Projektionen zu erhalten müssen die Winkel der Teilsegmente erhalten bleiben.
Die Winkel βi zwischen den Teilsegmenten und der optischen Achse im
virtuellen muss gleich den Winkel αi zwischen der optischen Achse und
den Teilsegmenten der echten Leinwand sein. Ist dies nicht der Fall wird
aus dem Kreis eine Parabel. Diese Winkelerhaltung ist aber nur in zwei
Fällen möglich.
Der erste Fall ergibt sich aus Formel 12 und Abbildung 22. Damit α = β
gilt, muss gelten:
d−f
=1
(13)
f
Dies is erfüllt für
⇒d=2·f
(14)
Dabei ist d konstant, was wiederum nur durch die Aufteilung des Zylinders in seine Durchmesser erfüllt ist, Abbildung 22.3.
Der zweite Fall entsteht aus einem gänzlich anderen Ansatz. Hier wird
C (Abbildung 16 Seite 21) als Spiegelachse interpretiert. Die echte Projektion 1 + 2 wird über C in die virtuelle Nachbildung 3 + 4 gespiegelt. Dabei
ist die Position des virtuellen Brennpunktes D entscheidend. Dieser muss
in derselben Entfernung zu C liegen wie B. Damit die benötigte Verzerrung eingestellt werden kann, muss der virtuelle Brennpunkt veränderlich
sein. Wird er entsprechend dem echten gewählt, ist das gesamte Projek29
tionssystem in sich gespiegelt, wobei wiederrum die Spiegelung nur bis
zur Stelle des virtuellen Brennpunktes relevant ist. Durch die unendliche
Schärfentiefe kann die virtuelle Leinwand beliebig entlang der Z-Achse
verschoben und entsprechend in der Größe verändert werden. Dabei
reicht die unspezifische Angabe des Seitenverhältnisses wie in Kapitel 5.3
beschrieben aus.
Da aber wie bereits erwähnt kein Einfluss auf die realen Gegebenheiten genommen werden kann und so gut wie keine Daten über diese zur
Verfügung stehen, kann der erste Fall nicht angewendet werden und der
zweite Fall findet im Programm Verwendung. Der Anwender kann nicht
die Leinwand oder den Brennpunkt des Projektors verändern aber er kann
den Brennpunkt der virtuellen Projektion steuern.
Im Verlauf des in Kapitel 6.4 beschriebenen Versuchs ist ein aus den
ersten Versuchen mit manuellem Einstellen der virtuellen Leinwand bekanntes Problem aufgetreten. Die Projektion der Krümmung ist abhängig
von der Position der optischen Achse zum Frustum. Befindet sich die untere Kante der gekrümmten Leinwand auf der selben Höhe wie die optische Achse des Projektors, dann sieht die Kante der Leinwand vom Projektor betrachtet gerade aus und nicht gekrümmt (Abbildung 23 Seite 31). Daher muss auch die untere Kante des projizierten Bildes gerade verlaufen.
Um diesen Effekt im virtuellen Raum zu erreichen wird dem Anwender
eine Methode zur Verfügung gestellt um das Viewfrustum zu verändern.
Dazu wird z. B. die obere und untere Begrenzung der Z-near Ebene um
jeweils den selben Betrag nach oben verschoben, während die Kameraposition und der point of interest12 um den gleichen Betrag nach unten verschoben wird. Dadurch wird ein Frustum erzeugt wie es häufig von Projektoren verwendet wird, die z. B. auf Tischen aufgestellt werden. Damit
muss der Anwender drei Parameter steuern: Radius, Brennpunkt und
Frustum. Hierbei sind insbesondere die letzten beiden Parameter nicht intuitiv verständlich.
12
Der Punkt auf den die Kamera ausgerichtet ist
30
5.5
Stereo
Bei einer Stereo-Projektion wird das linke und rechte Bild entweder abwechselnd mit einem Projektor projiziert (aktive Stereo-Projektion) oder
gleichzeitig mit zwei Verschiedenen (passive Stereo-Projektion). Im ersten
Fall ist das Vorgehen identisch zur Korrektur einer normalen Projektion.
Im Falle eines passiven Stereo-Systems wird genauso vorgegangen wie bei
aktiven Systemen. Man muss die Justierung lediglich zweimal ausführen,
einmal für jeden Projektor.
Abbildung 23: Abhängigkeit der Krümmung, der Projektion der Wölbung,
vom Abstand zum optischen Zentrum.
31
6
Versuche
6.1
Testprogramm
Zum Testen der verschiedenen Verfahren wurde ein C++ / OpenGL
Programm geschrieben. Nach dem Programmstart wird ein Fenster
angezeigt, um verschiedene Parameter einzustellen. Diese sind (wie auch
in Abbildung 24 zu sehen):
• Auflösung:
– 800 x 600
– 1024 x 768
– 1280 x 1024
• Wölbungsart:
– Keine
– Zylindrisch um X
– Zylindrisch um Y
– Sphärisch
• Seitenverhältnis:
– 1:1
– 4:3
– 5:4
– 16 : 9
• Mono/Stereo
Zum Aufruf aus der more3D Software heraus können diese Parameter
auch über die Kommandozeile übergeben werden, dabei soll das in Abbildung 24 dargestellte Menü durch Einträge im Optionsmenü der more3D
Software ersetzt.
Zum ersten Test der Scheimpflug’schen Bedingung musste die
virtuelle Leinwand noch manuell“ eingestellt werden. Die in Kapitel 5.1
”
beschriebene Hilfestellung in Form von Kreisen zur Vorhersage der Rotation ist durch einfaches Zeichnen eines Kreises um die Achsen der Leinwand durch die Ecken, wie in Abbildung 25 zu sehen, gegeben.
32
Abbildung 24: Optionsmenü GeoKor.exe
Abbildung 25: Manuelle Positionierung der virtuellen Leinwand
33
Zur Eingabe der Leinwand-Eckpunkte werden die in Abbildung 26
dargestellten Eckpunktmarkierungen verwendet. Der Standard SystemCursor ist alleine nicht geeignet, da er nicht in allen Ecken des Bildschirms
komplett dargestellt wird.
Abbildung 26: Eckpunktmarkierungen
Zur Unterscheidung des linken und rechten Projektorbildes wird für
jeden Projektor eine andere Farbe verwendet. Alles was auf dem linken
Projektor ausgegeben wird, ist in grün gehalten. Die Bilder auf dem rechten sind dagegen rot. Im Programm besteht weiterhin die Möglichkeit
die Gittertextur mit der Taste F2 durch RGB-Balken zu ersetzen, um eine
manuelle Farbkalibrierung der Projektoren vorzunehmen.
Mit den vom Anwender angegebenen Daten wird gemäß Kapitel 5.3
eine Szene erstellt. Dabei liegt die Z-near-Ebene für glFrustum() bei
Z = 0. Das Verhältnis von Höhe zu Breite wird gemäß der eingestellten Auflösung gewählt. Die Kamera wird zu Beginn auf Z = 2 gesetzt. Die Szene, die sich aus diesen Angaben und der berechneten Position
für die virtuelle Leinwand ergibt, wird als VRML-Datei13 gespeichert, um
dann in einer anderen Anwendung anwendbar zu sein. Eventuelle Anwendungen welche die Korrektur-Vorgaben verwenden sollen, müssen
um ein paar Programmzeilen erweitert werden. Um das existierende Programm muss eine weitere Schicht gelegt werden, das von der Anwendung
berechnete Bild wird in eine Textur gerendert und dann in einer Szene
gemäß der VRML-Datei verwendet. Die Entscheidung für dieses Vorgehen fiel aufgrund der hierfür bereits bestehenden Funktionalität innerhalb
der more3D Software. Da VRML keine unsymmetrischen Frustums unterstützt, werden die Parameter für glFrustum() und gluLookAt() als
Kommentar in der zweiten und dritten Zeile der Datei angegeben. Ein
13
Virtual Reality Modeling Language
34
Ausschnitt einer solchen Datei kann im Anhang A.2 auf Seite 52 gefunden
werden.
Zylindrische Leinwände werden wie folgt gezeichnet: Einer der aus
den Eckpunktmarkierungen bekannten Eckpunkte wird segmentweise
auf den gegenüberliegenden rotiert. Der Winkel α wird dabei anhand des
durch den Anwender bestimmbaren Radius r, sowie durch die, durch das
Seitenverhältnis bestimmte, Bogenlänge b berechnet:
α = 2 · arcsin
b
2·r
(15)
Die Fläche ist also um ihre Vertikale gewölbt und die Rotation findet daher um den zur Mitte verschobenen Vektor der Höhe der Leinwand statt.
Der Rest der Leinwand wird durch Verschieben der ersten Reihe entlang
der Höhe bestimmt. Der Anwender kann den Radius durch Ziehen der
Maus verändern. Als Metapher dient hier der gewölbte Rand der Projektion. Für den Anwender erscheint es, als ob er diesen ändern würde. Zur
Einstellung der Brennweite wird die Kameraposition entlang der Z-Achse
verschoben wobei der point of interest gleich bleibt, dies geschieht mit der
Tastatur.
Abbildung 27: Eine zylindrische, um die Y-Achse gekrümmte, Leinwand.
35
Zur Bewertung der Genauigkeit wurden zwei Versuche an planaren
Leinwänden und einer an einer Gewölbten gemacht. Diese werden im Folgenden beschrieben.
6.2
Planar 1
Abbildung 28: Versuchsaufbau
In einer Entfernung von 2 – 3 Meter zur Tafel wurde folgender Projektor aufgebaut (Abbildung 28):
• Typ: Liesegang Piccadilly Pro
• Auflösung: XGA, 1024 x 768
• Keystone Korrektur: ± 15◦ vertikal
• Objektiv: F = 2,4 / f = 22 – 26 mm
• 1,2fach Zoom, manuell
• Projektionsabstand: 1,5 – 10 m
• Projektionsverhältnis: 1,5 – 1,8
• Bilddiagonale: 1 – 7,8 m
36
An der Tafel wurde eine Leinwand in Form einer Pappe mit den Maßen
800 x 640 mm mit Magneten (die schwarzen Kreise in den Abbildungen)
angebracht. Hierauf wurde ein Gitternetz mit einem Linienabstand von
40 mm aufgezeichnet (20 mal 16 Quadrate). Die Anzahl der Quadrate
entspricht der Anzahl im projizierten Testbild (Abbildung 29). Die Projektion sieht dann aus wie in Abbildung 30 auf Seite 38 zu sehen.
Abbildung 29: Kalibrierungsmuster
Nach der Korrektur wurde dann die Abweichung zwischen projizierter und gezeichneter Linie gemessen. Bei der Auswertung der Daten sind
die nachstehend aufgelisteten Fehler zu beachten. Bedingt durch die Projektion, wellige Pappe, Verschiebungen durch das Anlegen des Lineals
und Schärfebereich des Projektors, treten bereits erhebliche Fehlerspannen
auf (geschätzte Fehler)):
• Projizierte Linienstärke: 2 – 5 mm
• Messgitter Linienstärke: 0,5 – 1 mm
• Messgitter Abweichung: 0 – 0,6 mm
• Messgitter Abweichung: 0 – 0,5 Grad
• Verschiebung durch Messung: 0 – 2 mm
• Messfehler: 0 – 0,1 mm
• Fehler durch ungewollte Wölbung: 0 – 1 mm
37
Abbildung 30: unkorrigierte Projektion
Gemessen wurde die Abweichung (Abbildung 32 Seite 39) in X- und
Y-Richtung vom Soll in Millimeter, für sechs verschiedene Ausrichtungen des Projektionssystems, den vier Eckpunkten, der Mitte und einem
zufällig gewählten Punkt. Dabei ist zu beachten, dass die nicht so guten
Werte der ersten vier Reihen durch einmaliges positionieren der Eckpunktmarkierungen entstanden. Bei genauerer Positionierung wie bei den
beiden letzten Reihen sind deutlich bessere Ergebnisse möglich. Die folgende Tabelle zeigt die Messungen der sechs Aufbauten. Die Werte für
die Eckpunkte wurden im Abstand von 8 cm vom Rand aufgenommen.
Die Gitterkoordinate des zufälligen Messpunktes steht hinter dem Fehler.
38
Abbildung 31: korrigierte Projektion
Abbildung 32: Abweichung von korrigierter Projektion und gewolltem
Ergebnis
39
Position
Fehler M1
Fehler M2
Fehler M3
Fehler M4
Fehler M5
Fehler M6
Oben
Unten
Links Rechts Links Rechts
(2, 2) (18,2) (2, 14)
(18, 14)
−1
0
0
1
−0,8
1
1
0,6
1
0,4
−0,5
0
0 2,4
1
0,4
−1
0
0
1
2 0 0 0 −0,2
−0,2
0,5
0
−0,2
1 0,5
0,5
0
−0,2
0
0
0
0
0
0
0
0
0
0
0
0
0
Mitte
(10, 8)
1
0,5
0
1,4
1
0 0,5
1
0
0
0
0
0
Zufall
(x, y)
0,5
(13,13)
0,5 0
(7,9)
0,5
−1
(6,3)
−1
0
(5,6)
0
0
(16,8)
0,3
0
(8,12)
0,1
Die durchschnittliche Ungenauigkeit beträgt
damit, nur unter Berück0,016
sichtigung der letzten beiden Reihen, 0,03̄ mm. In Relation zur 640
mm hohen Leinwand ist das ein Fehler von 0, 0052% in der Höhe bzw.
0, 002% in der Breite. Rechnet man lediglich mit den Werten aus der
schnellen“
Einstellung kommt man auf einen durchschnittlichen Fehler
”
0,45
von 0,683̄ mm (0,056% und 0,107%).
6.3
Planar 2
Der Zweite Versuch wurde im Computergrafik-Labor der Universität Koblenz-Landau an der dortigen Stereo-Rückprojektions-Leinwand
vorgenommen:
• Leinwand 2 x 2,5 m
• Abstand 2 – 3 m über einen Spiegel
• 2 Projektoren des Typs
– Typ: EIKI LCSX3A
– Auflösung: 1280 x 1024
– Bildgröße: 30 – 600 Zoll
– Extras: Zoom, Fokus, Lens Shift, Keystone
Das Ergebnis war jedoch nicht komplett wertbar, da die Leinwand stellenweise stark durchhängt. Es wurde versucht die beiden Projektoren so
zu korrigieren, dass beide Gitter exakt übereinander liegen. Ein Projektor
erhielt ein grünes Gitter der andere ein rotes. Nach Korrekturen an den
Ecken gelang es sämtliche Vertikalen in Übereinstimmung zu bringen. Die
horizontalen Linien konnten nur an den Rändern übereinander gebracht
werden. In der Mitte laufen sie, aufgrund der unsymmetrischen Wölbung,
40
bis zu 5mm auseinander. Dies entspricht 0,025% der 2 Meter hohen Leinwand (siehe hierzu die Abbildungen 33 und 34). Da die Leinwand nicht
symmetrisch durchhängt, war es auch nicht möglich mit der sphärischen
Korrektur ein besseres Ergebnis zu erzielen.
Abbildung 33: Test Planar 2
Abbildung 34: Test Planar 2, Detail
41
6.4
Gewölbt
Die Versuche mit gewölbten Leinwänden sollten an einer neuen Leinwand
bei more3D durchgeführt werden. Der Hersteller der Leinwand hatte jedoch Lieferschwierigkeiten und so wurden die Versuche an einer selbstgebauten Leinwand unternommen. Bedingt durch diese Improvisation sind
die Ergebnisse jedoch nicht so sauber wie erhofft.
Um die aus dem ersten planaren Versuch (Kapitel 6.2) bekannte Leinwand in eine stabile gewölbte Form zu bringen, wurde in eine alte Druckplatte14 der Größe 100 x 75 cm je drei Löcher in die kurzen Seiten gebohrt.
Durch diese wurde Kordel gezogen um so die kurzen Enden zusammenzubiegen. In diese so entstandene Wölbung wurde dann die Pappleinwand eingehängt. Zwar ist die endgültige Wölbung nicht exakt Kreisförmig, aber solange die Wölbung konstant ist sollte sich die Abweichung in
einem vertretbaren Rahmen bewegen.
Zu dieser improvisierten Leinwand wurde im Abstand von ungefähr
2,20 m folgender Projektor aufgestellt:
• Typ: Liesegang DV 365
• Auflösung: XGA, 1024 x 768 (max. darstellbar 1600 x 1200)
• Keystone Korrektur: ± 15◦ vert. / ± 5◦ hor.
• Objektiv: F = 1,7 – 2,0 / f = 27,3 – 32,8 mm
• 1,2fach Zoom, manuell
• Projektionsabstand: 0,9 – 9,1 m (wide); 1,1 – 10,9 m (tele)
• Projektionsverhältnis: 1,94 – 2,57
• Bilddiagonale: 0,77 – 7,7 m
Durch den instabilen Stand von Projektor und Leinwand kommen
neben den in Kapitel 6.2 aufgelisteten Fehlern noch eventuelle Fehler
durch Erschütterungen hinzu. Da es an der gekrümmten und instabilen
Leinwand nicht möglich war ein Lineal anzulegen wurde an fünf Punkten
eine Millimeterskala aufgezeichnet und die Abweichung abgelesen. Dies
führte zu Ergebnissen wie:
14
0,05 mm dickes Blech, das im Offsetdruck verwendet wird.
42
Oben
Unten
Links Rechts Links Rechts Mitte
Position (2, 2) (18,2) (2, 14)
(10, 8)
(18,−314)
2
0
1
0
Fehler 1
0
3 −1
2 −1,5
2
−2,5
5
−3,5
−2
Fehler 2
1
−1,5
−2
−7
0
Daraus ergibt sich ein durchschnittlicher Fehler von 2,1
mm. Dies
1,9
entspricht 0, 26% in der Horizontalen und 0, 297% in der Vertikalen.
Abbildung 35: Test gewölbt 1, Detailansicht der Mitte
Ein Vorverzerrtes Muster, welches Ergebnisse wie auf Seite 44 zu sehen
erzielt, ist in Abbildung 40 auf Seite 45 dargestellt. Die Abweichungen in
der Vertikalen (Abbildung 39 Seite 44) von stellenweise über einem Zentimeter entsteht teilweise durch die nicht Kreisförmige Grundfläche der
Leinwand, die unterschiedlich starke Wölbung entlang der Höhe sowie
ungenaue Justierung der Parameter durch den Anwender.
43
Abbildung
37:
Testaufbau
gewölbt 1, Detailansicht der
linken oberen Ecke
Abbildung
36:
Testaufbau
gewölbt 1; der Projektor befindet
sich auf der gleichen Höhe wie
die Unterkante der Leinwand
Abbildung 39: Test gewölbt 2 ,
Detailansicht des unteren Randes
Abbildung
38:
Testaufbau
gewölbt 2; der Projektor befindet
sich auf der gleichen Höhe wie
die Oberkante der Leinwand
44
Abbildung 40: Vorverzerrtes Testmuster
45
7
Auswertung
Aus den Tests ist ersichtlich, dass das Verfahren eine hohe Genauigkeit
aufweist, wobei gekrümmte Oberflächen nicht so gute Ergebnisse
Erzielt haben. Je genauer der Anwender arbeitet, um die Einstellungen vorzunehmen, desto genauer wird das Ergebnis. Die korrigierbaren
Winkel zwischen planarer Leinwand und Projektor sind lediglich durch
den Schärfebereich des verwendeten Projektors limitiert. Denn bei großen
Winkeln kann es passieren, dass die Leinwand aus dem Schärfebereich
hinausläuft und damit der hintere oder vordere Teil der Projektion unscharf ist. Darauf kann von der Softwareseite aber keinerlei Einfluss
genommen werden.
Die Steuerung der Korrektur für planare Leinwände ist einfach und
schnell. Die Eckpunkte können schnell mit der Maus verschoben werden
und mit der Tastatur pixelgenau positioniert werden. Bei gekrümmten
Leinwänden ist die Korrektur dagegen nicht mehr so einfach und schnell.
Während der Radius verhältnismäßig intuitiv einstellbar ist, gilt dies
für Brennpunkt und Frustum nicht. Der Anwender benötigt eine Einarbeitungsphase um herauszufinden wie sich das verändern der Parameter
auf die Projektion auswirkt. Durch Rückmeldung in Echtzeit an den Anwender, wie sich der soeben veränderte Parameter auswirkt, nimmt die
Einarbeitungsphase jedoch nicht zu viel Zeit in Anspruch. Dennoch wäre
das Problem der gekrümmten Leinwände ein Grund um über den Einsatz
einer Kamera für eine vollautomatische Justierung in späteren Arbeiten
nachzudenken.
Beim Aufbau von Leinwand und Projektor gilt es zu beachten, dass
sie nicht zu weit auseinander stehen. Je mehr der Projektion nicht auf die
Leinwand trifft, desto weniger Pixel stehen zur Verfügung um das Bild
darzustellen. Ist z. B. die Leinwand nur halb so hoch wie das normal projizierte Bild, steht bereits nur noch ein viertel der Fläche zur Verfügung,
statt 1280 x 1024 nur noch 640 x 512.
46
7.1
Vergleich
Stellt man die in Kapitel 5 vorgestellte Re-Projektion den in Kapitel 2
beschriebenen bekannten Verfahren gegenüber, so zeigt sich der erste
Vorteil der Re-Projektion durch die nicht notwendige zusätzliche Hardware. Im Hinblick auf die nachträgliche Anwendbarkeit in anderen Programmen ist das Verfahren [LOU+ 06] von Lancelle besser, da hier die
Integration in bestehenden Programmcode weniger Zeilen benötigt und
im Endprogramm weniger Rechenkapazität in Anspruch nimmt. Es muss
lediglich die errechnete Transformationsmatrix an die Projektionsmatrix
des Programmes anmultipliziert werden. Für diese Arbeit sollte aber eine
Lösung gefunden werden die kompatibel mit der bestehenden more3D
Software ist, so ist dies nur bedingt ein Nachteil. Die Anwendbarkeit
auf gewölbte Leinwände, wenn auch nicht so intuitiv steuerbar wie bei
planaren, ist ebenfalls ein entscheidender Vorteil. Betrachtet man die in
Kapitel 5.4 erwähnte Spiegelung der realen Welt im virtuellen Raum,
entsteht sogar die Möglichkeit, dass die Re-Projektion auf jede Oberflächenstruktur anwendbar ist, sofern die Oberflächenstruktur bekannt
ist. Würde man also einen Weg finden sämtliche Details der Oberfläche
zu bestimmen, wäre die Re-Projektion gleich mächtig wie das im ersten
Teil von [ZLO06] beschriebene Verfahren. Diesem ist es ebenfalls möglich
auf beliebige Oberflächen zu projizieren.
47
8
Zusammenfassung
Im Verlauf der Arbeit wurde das zugrunde liegende Problem erläutert.
Die schlechte Positionierung von Projektor oder Leinwand wurde auf
die falsche Ausrichtung der Leinwand reduziert und dann nach einem
Weg gesucht für diese Gegebenheit ein korrektes Bild zu liefern. Die in
Kapitel 2.1 vorgestellten Verfahren zeigen Stärken in verschiedenen Bereichen, erfüllen aber insbesondere die Kriterien Keine zusätzliche Hard”
ware“ und gewölbte Flächen“ nicht. Deswegen wurde das Verfahren
”
der Re-Projektion entwickelt. Mit diesem ist es möglich, ohne zusätzliche
Hardware die Projektionen für planare Flächen lediglich unter Angabe
der Eckpunkte und des Seitenverhältnisses zu korrigieren. Die erreichbare
Genauigkeit liegt dabei weit unterhalb der Fehlerspannen, die durch hardwarebasierte Gegebenheiten auftreten. Unter Angabe von Radius und
Abbildung 41: Ausschnitt einer korrigierten Projektion
Brennweite ist es ebenfalls möglich, mit diesem Verfahren das Bild korrekt für gewölbte, zylindrische und sphärische Leinwände vorzuverzerren. Dabei ist, insbesondere durch die sich gegenseitig beeinflussenden
48
Parameter der Brennweite und des Radius, die Steuerung der Korrektur
nicht mehr so intuitiv wie erhofft.
Während das Verfahren der Re-Projektion bereits sehr früh als die erfolgversprechendste Lösung feststand, waren vor allem Detailfragen bei
der Anpassung an gewölbte Leinwände und das Finden einer anwenderfreundlichen Steuerung die Hauptprobleme der Arbeit. Nach ein paar geringfügigen Anpassungen soll das im Verlauf der Arbeit entstandene Programm der more3D Software beigefügt werden.
8.1
Ausblick
Wichtig wäre es weitergehende Praxiserfahrungen für planare Leinwände
und insbesondere gekrümmte Leinwände zu sammeln. Auch Erfahrungen in aufwendigeren Projektionsumgebungen, wie z. B. einer Cave,
wären nützlich. Desweiteren könnte man nach besseren Eingabemethoden suchen.
Darüber hinaus wäre es interessant die Re-Projektion hinsichtlich
vollständiger Automation, mit Hilfe von zusätzlicher Hardware zur
Erkennung der Gegebenheiten, weiterzuentwickeln. Bei exakter Erkennung aller Details der Projektionsfläche sollte es auch möglich sein,
jegliche Art von Oberflächen zu verwenden, wie dies bereits mit [ZLO06]
möglich ist.
Das entwickelte Verfahren kann trotz der durchhängenden Leinwand im Computergrafik-Labor angewandt werden. Programme müssen
lediglich um eine VRML-Lese-Methode und eine Render to Texture Funktion erweitert werden.
Ein weiteres Gedankenspiel wäre die Untersuchung des in 5.3
beschriebenen Verfahrens zur Eingabe hinsichtlich der Anwendbarkeit im
Bereich der Markererkennung. Bei bekannten Markergrößen und Abbildungsparametern der Kamera ließe sich daraus unter Umständen ein Algorithmus zur Erkennung von Markern herleiten.
49
A
Anhang
A.1
Formeln
Berechnung der Geradenparameter zur Bestimmung der Position der
Leinwand.
r
4 f laeche
(16)
v=
X
s=v·
(17)
− (v · I) − (s · J)
H
(18)
v · (−az + Brz ) − s · (−az + Blz ) − u · (−az + T rz )
az − T lz
(19)
u=
t=
K
L
Teilformeln im Verlauf der Rechnungen zur Lösung des Gleichungssystems bestehend aus den Formeln 8 und 9.
(−az + T rz ) · (−ay + T ly )
+ (−ay + T ry )
az − T lz
(20)
I=
− (−az + Brz ) · (−ay + T ly )
− (−ay + Bry )
az − T lz
(21)
J=
(−az + Blz ) · (−ay + T ly T lz )
+ (−ay + Bly )
az − T lz
(22)
(I · (−ax + T rx )) (−az + Brz ) · (−ax + T lx )
+
H
az − T lz
(I · (−az + T rz ) · (−ax + T lx ))
+
+ (−ax + Brx )
H · (az − T lz )
(23)
−J · (−ax + T rx ) (−az + Blz ) · (−ax + T lx )
+
H
az − T lz
J · (−az + T rz ) · (−ax + T lx )
−
+ (−ax + Blx )
H · (az − T lz )
(24)
H=
K=
L=
50
M = (−ax + Brx ) · (−ax + Brx ) + (−ay + Bry ) · (−ay + Bry )
+ (−az + Brz ) · (−az + Brz )
(25)
N = − 2 · (−ax + Brx ) · (−ax + T rx ) − 2 · (−ay + Bry ) · (−ay + T ry )
(26)
− 2 · (−az + Brz ) · (−az + T rz )
O = (−ax + T rx ) · (−ax + T rx ) + (−ay + T ry ) · (−ay + T ry ) +
(−az + T rz ) · (−az + T rz )
(27)
P = (−ax + Blx ) · (−ax + Blx ) + (−ay + Bly ) · (−ay + Bly ) +
(−az + Blz ) · (−az + Blz )
(28)
Q = − 2 · (−ax + Brx ) · (−ax + Blx ) − 2 · (−ay + Bry ) · (−ay + Bly )
(29)
− 2 · (−az + Brz ) · (−az + Blz )
R=
−I −
K
L
·J
H
(30)
2
K
K
K
·M ·Q+
·N ·Q
X =M +
·M ·P +R·M ·N +R·
L
L
L
2
2
K
K
2
2 K
2
+R·
·N ·P +R ·O·M +R ·
·O·Q+R ·
·O·P
L
L
L
(31)
2
Formel zur Berechnung der Distanz zwischen Bild- und Objektivebene:
d0 =
Kx
d · tan α
f · d · tan α
f ·d
=
=
=
Ix
tan β
(d − f ) · tan α
d−f
tan arctan f
51
(32)
mit
A.2
Kx = d · tan α
(33)
Ix = (d − f ) · tan α
(34)
Code Beispiele
Beispiel einer VRML-Datei zur Verwendung in anderen Programmen.
#VRML V2.0 utf8
#glFrustum(-1.2500, 1.2500, 1.0000, -1.0000, 2.0000, 12.0000)
#gluLookAt(0.0000, 0.0000, 2.0000, 0.0000, 0.0000, ...
...0.0000, 0.0000, 1.0000, 0.0000)
Viewpoint
{
description "links.wrl"
orientation 0.00000 0.00000 0.00000 0.0
position 0.00000 0.00000 2.00000
}
Shape
{
appearance Appearance
{
texture ImageTexture
{
url "pattern1-1280x1024.png"
}
}
geometry IndexedFaceSet
{
solid FALSE
coord Coordinate
{
52
point
[
-1.25000 1.00000 0.00000, #
0
-1.24605 1.00000 -0.09800, #
1
-1.23442 1.00000 -0.19539, #
2
[...]
1.23442 -1.00000 -0.19539, #1678
1.24605 -1.00000 -0.09800, #1679
1.25000 -1.00000 0.00000, #1680
]
}
coordIndex
[
0,
1,
42,
41, -1,
1,
2,
43,
42, -1,
2,
3,
44,
43, -1,
[...]
1636, 1637, 1678, 1677, -1,
1637, 1638, 1679, 1678, -1,
1638, 1639, 1680, 1679, -1,
]
texCoord TextureCoordinate
{
point
[
0.00000 1.00000, #0
0.02500 1.00000, #1
0.05000 1.00000, #2
[...]
0.95000 0.00000, #1678
0.97500 0.00000, #1679
1.00000 0.00000, #1680
] } } }
53
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Korrekt positionierter Projektor und Leinwand . . . . . . .
Falsch positionierter Projektor oder Leinwand . . . . . . .
korrekt positionierte Leinwand . . . . . . . . . . . . . . . .
Leinwand um die Objektinterne Y-Achse rotiert . . . . . .
Leinwand um alle 3 internen Achsen rotiert . . . . . . . . .
Beispiel einer schiefen“ Projektion . . . . . . . . . . . . . .
”
Texturkoordinatenbaum . . . . . . . . . . . . . . . . . . . .
Konstruktion des Mittelpunktes . . . . . . . . . . . . . . . .
Leinwandansicht und Projektion . . . . . . . . . . . . . . .
Re-Projektion . . . . . . . . . . . . . . . . . . . . . . . . . .
Doppelverhältnis . . . . . . . . . . . . . . . . . . . . . . . .
Die 3 Ebenen des Projektionsmodells . . . . . . . . . . . . .
Scheimpflug’sche Bedingung . . . . . . . . . . . . . . . . .
Scheimpflug Geraden . . . . . . . . . . . . . . . . . . . . . .
Scheimpflugbedingung . . . . . . . . . . . . . . . . . . . . .
Projektionswege . . . . . . . . . . . . . . . . . . . . . . . . .
Sicht auf die Leinwand . . . . . . . . . . . . . . . . . . . . .
Projektion (virtuell) . . . . . . . . . . . . . . . . . . . . . . .
Ergebnis bei korrekter Eingabe (1) . . . . . . . . . . . . . .
Ergebnis bei falscher Eingabe (2) . . . . . . . . . . . . . . .
Ergebnis bei falscher Eingabe (3) . . . . . . . . . . . . . . .
Zylinder unter Scheimpflug . . . . . . . . . . . . . . . . . .
Krümmung der Projektion . . . . . . . . . . . . . . . . . . .
Optionsmenü GeoKor.exe . . . . . . . . . . . . . . . . . . .
Manuelle Positionierung der virtuellen Leinwand . . . . .
Eckpunktmarkierungen . . . . . . . . . . . . . . . . . . . .
Eine zylindrische, um die Y-Achse gekrümmte, Leinwand.
Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . .
Kalibrierungsmuster . . . . . . . . . . . . . . . . . . . . . .
unkorrigierte Projektion . . . . . . . . . . . . . . . . . . . .
korrigierte Projektion . . . . . . . . . . . . . . . . . . . . . .
Fehler in der Korrektur . . . . . . . . . . . . . . . . . . . . .
Test Planar 2 . . . . . . . . . . . . . . . . . . . . . . . . . . .
Test Planar 2, Detail . . . . . . . . . . . . . . . . . . . . . . .
Test gewölbt 1, Detailansicht der Mitte . . . . . . . . . . . .
Testaufbau gewölbt 1 . . . . . . . . . . . . . . . . . . . . . .
Testaufbau gewölbt 1, Detailansicht der linken oberen Ecke
Testaufbau gewölbt 2 . . . . . . . . . . . . . . . . . . . . . .
Test gewölbt 2 , Detailansicht des unteren Randes . . . . .
54
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
3
4
4
5
9
11
11
12
13
14
16
17
19
21
22
24
26
26
27
29
31
33
33
34
35
36
37
38
39
39
41
41
43
44
44
44
44
40
41
Vorverzerrtes Testmuster . . . . . . . . . . . . . . . . . . . . .
Ausschnitt einer korrigierten Projektion . . . . . . . . . . . .
55
45
48
Literatur
[Ber13]
Josef Viktor Berger. Hauptmann Theodor Scheimpflugs Aerophotogrammetrie. Sieger, Wien, 1913. Fest-Schrift des k. u.
k. Flugtechnischen Vereins anlässlich der Enthüllung der
Gedenktafel für Weiland k. und k. Hauptman des Ruhestandes und Kapitän langer Fahrt Theodor Scheimpflug
welche am 6. Dezember 1913 11 1/2 Uhr Vormittag in Wien
XVIII, Sternwartestrasse 39 stattgefunden hat.
[GB06]
A. Grundhoefer and O Bimber.
Real-time adaptive
radiometric compensation, 2006.
http://e-pub.uniweimar.de/volltexte/2006/823/ (Stand Januar 2007).
[KL84]
Gottfried Konecny and Gerhard Lehman. Photogrammetrie.
de Gruyter, 4 edition, 1984.
[LDMA+ 04] J. C. Lee, P. H. Dietz, D. Maynes-Aminzade, R. Raskar, and
S. Hudson. Automatic projector calibration with embedded
light sensors. Technical report, Mitsubishi Electric Research
Laboratories, 2004. http://www.merl.com/publications/TR2004-036/ (Stand Januar 2007).
[LOU+ 06]
M. Lancelle, L. Offen, T. Ullrich, T. Techman, and D. W.
Fellner. Minimally invasive projector calibration for 3d
applications.
Technical report, Institute of Computer
Graphics and Knowledge Visualization University of
Technology, Graz, 2006. http://www.cgv.tugraz.at/CGV/DigitalLibrary/publications/TechnicalReports/graz/TRtugraz-cgv-2006-01.pdf (Stand Januar 2007).
[Mer96]
Harold M. Merklinger.
Scheimpflug’s patent.
Photo Techniques, November / December 1996, 1996.
http://www.trenholm.org/hmmerk/SHSPAT.pdf
(Stand
Januar 2007).
[RB02]
R. Raskar and P. Beardsley. A self correcting projector.
Technical report, Mitsubishi Electric Research Laboratories,
January 2002. http://www.merl.com/publications/TR2001046/ (Stand Januar 2007).
[RvBB+ 03]
R. Raskar, J. van Baar, P. Beardsley, T. Willwacher, S. Rao, and C. Forlines.
ilamps: Geometrically aware and self-configuring projectors, 2003.
56
https://www.merl.com/publications/TR2003-023/ (Stand
Januar 2007).
[RvBW04]
R. Raskar, J. van Baar, and T. Willwacher.
Quadric
transfer for immersive curved display.
Technical report, Mitsubishi Electric Research Laboratories, 2004.
http://www.merl.com/publications/TR2004-034/ (Stand
Januar 2007).
[Sch04]
Theodor Scheimpflug.
Improved method and apparatus for the systematic alteration or distortion of plane
pictures and images by means of lenses and mirrors for
photography and for other purposes.
OCR Nachbildung als .pdf von Harold M. Merklinger, Februar 2000,
1904.
http://web.archive.org/web/20000818162057/http://fox.nstn.ca/ hmmerk/TSBP.pdf (Stand Januar
2007).
[Wik07]
WikiPedia.
Scheimpflugsche
Regel.
2007.
http://de.wikipedia.org/w/index.php?title=Scheimpflugsche Regel&oldid=25058120.
[ZLO06]
Stefanie Zollmann, Tobias Langlotz, and Bimber Oliver.
Passive-active geometric calibration for view-dependent
projections onto arbitrary surfaces, 2006. http://www.uniweimar.de/ bimber/Pub/PAGC final.pdf (Stand Januar
2007).
57