Title:
Verfahren zum optischen Abtasten und Vermessen einer Umgebung
Kind Code:
A1


Abstract:

Es wird ein Verfahren zum optischen Abtasten, Vermessen und Anzeigen einer Punktwolke bereitgestellt. Das Verfahren umfasst das Senden eines Sendelichtstrahls und das Empfangen eines Reflexionslichtstrahls, der von einem Objekt reflektiert wird, durch einen Laserscanner. Eine Steuereinrichtung bestimmt für Messpunkte, die entsprechend eines Bildschirms auf eine Ebene projiziert wurden, wobei mindestens einige Messpunkte auf einer Anzeigeeinrichtung angezeigt werden. Ein oder mehrere Pixel werden gefüllt, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen. Während das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte umfasst, folgt darauf eine zweite horizontale Suche in einer zweiten Richtung des ersten gemessenen Punkts. Das Lückenfüllen umfasst ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung. embedded image




Inventors:
Ossig, Martin (71732, Tamm, DE)
Flohr, Daniel (70191, Stuttgart, DE)
Frommhold, Dag (72639, Neuffen, DE)
Knörzer, Oliver (70825, Korntal-Münchingen, DE)
Heide, Martin (70825, Korntal-Münchingen, DE)
Application Number:
DE102018101935A
Publication Date:
08/02/2018
Filing Date:
01/29/2018
Assignee:
Faro Technologies, Inc. (Fla., Lake Mary, US)
International Classes:



Attorney, Agent or Firm:
Schiffer, Axel, Dipl.-Phys.Univ. Dr.rer.nat., 80335, München, DE
Claims:
Verfahren zum optischen Abtasten, Vermessen und Anzeigen einer Punktwolke, wobei das Verfahren umfasst:
Senden eines Sendelichtstrahls durch einen Lichtsender eines Laserscanners;
Empfangen eines Reflexionslichtstrahls durch einen Lichtempfänger, wobei ein Reflexionslichtstrahl des Sendelichtstrahls von einem Objekt reflektiert wird;
Bestimmen von mindestens der Distanz von dem Objekt zu einem Zentrum des Laserscanners, durch eine Steuer- und Auswerteeinrichtung für Messpunkte, die entsprechend eines Bildschirms auf einer Anzeigeeinrichtung auf eine Ebene projiziert wurden, wobei mindestens einige Messpunkte auf der Anzeigeeinrichtung angezeigt werden;
Bestimmen, welche Punkte auf der Anzeigeeinrichtung sichtbar sind, basierend zumindest auf einem Standpunkt der Anzeigeeinrichtung; und
Lückenfüllen von einem oder mehreren Pixeln, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen, wobei das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte, gefolgt von einer zweiten horizontalen Suche in einer zweiten Richtung des ersten gemessenen Punkts, umfasst, wobei die zweite Richtung der ersten Richtung entgegengesetzt ist, und wobei das Lückenfüllen ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts umfasst, wobei die dritte Richtung senkrecht zu der ersten Richtung ist, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung, wobei die vierte Richtung der dritten Richtung entgegengesetzt ist.

Verfahren nach Anspruch 1, das ferner umfasst:
Bestimmen, ob zusätzliche Pixel in einem horizontalen oder vertikalen Lückenfüllschritt gefüllt werden könnten; und
Wiederholen des Lückenfüllens von einem oder mehreren Pixeln, bis bestimmt wurde, das keine zusätzlichen Pixel gefüllt werden können.

Verfahren nach Anspruch 2, das ferner das Anzeigen eines Bildes, das die Oberfläche auf der Anzeige aufweist, umfasst.

Verfahren nach Anspruch 1, wobei die erste horizontale Suche ferner umfasst:
Identifizieren eines ersten Pixels, das entweder leer ist oder dem ersten gemessenen Punkt entspricht;
Bestimmen, wann sich ein zweites Pixel, das sich in der ersten Richtung befindet, in einem vorbestimmten Radius befindet;
Bestimmen eines adaptiven maximalen Suchradius, der zu einer ersten Distanz zu dem ersten gemessenen Punkt antiproportional ist;
Bestimmen, ob sich das zweite Pixel in dem adaptiven maximalen Suchradius befindet; und
Bestimmen einer zweiten Distanz des zweiten Pixels.

Verfahren nach Anspruch 4, wobei die zweite horizontale Suche ferner umfasst:
Identifizieren, dass sich ein drittes Pixel in dem vorbestimmten Radius befindet;
Bestimmen, ob sich das dritte Pixel in dem adaptiven maximalen Suchradius befindet; und
Bestimmen einer dritten Distanz des dritten Pixels.

Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst:
Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert;
Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz geringer ist als ein Schwellenwert; und
dem ersten Pixel Zuweisen einer Tiefe und einer Farbe durch Interpolieren von Tiefe und Farbe des zweiten Pixels und des dritten Pixels.

Verfahren nach Anspruch 6, wobei die Interpolation gewichtet ist.

Verfahren nach Anspruch 7, wobei die Gewichtung 1/r12 und 1/r22 ist, worin r1 die Distanz in Pixeleinheiten von dem zweiten zu dem ersten Pixel ist, und r2 die Distanz in Pixeleinheiten von dem dritten zu dem ersten Pixel ist.

Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst:
Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert;
Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz größer ist als ein Schwellenwert;
Bestimmen, dass die dritte Distanz größer ist als die zweite Distanz; und
dem ersten Pixel Zuweisen der Tiefe und der Farbe des dritten Pixels.

Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst:
Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert;
Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz größer ist als ein Schwellenwert;
Bestimmen, dass die dritte Distanz geringer ist als die zweite Distanz; und
dem ersten Pixel Zuweisen der Tiefe und der Farbe des zweiten Pixels.

Description:
GEBIET DER ERFINDUNG

Die Erfindung betrifft ein System und ein Verfahren zum optischen Abtasten und Vermessen einer Umgebung und im Besonderen ein System und ein Verfahren zum Erzeugen einer grafischen Darstellung einer Punktwolke.

ALLGEMEINER STAND DER TECHNIK

Messgeräte, wie beispielsweise Laserscanner, können große Volumina von Koordinatendaten von Punkten, die sich an den Oberflächen der abgetasteten Fläche befinden, erzeugen. Diese Gerätearten können benutzt werden, um dreidimensionale Modelle einer Fläche, z. B. eines Hauses oder Gebäudes, eines Tatorts oder zum Beispiel einer archäologischen Stätte zu erzeugen. Oft können bei diesen Scan-Formen die Daten aus mehreren Positionen aufgenommen werden, um alle gewünschten Oberflächen einzufangen und leere Flächen zu vermeiden, bei denen eine Oberfläche im „Schatten“ eines anderen Objekts lag. Infolgedessen werden mehrere Datensätze von Koordinatendaten erzeugt, die zusammen registriert werden, um einen einzigen Datensatz zu definieren, manchmal umgangssprachlich als eine „Punktwolke“ bezeichnet, da die Daten als eine Gruppe von Punkten im Raum ohne Oberflächen dargestellt werden.

Man wird verstehen, dass es schwierig sein kann, sich aus einer grafischen Darstellung einer Punktwolke die Oberflächen der abgetasteten Fläche bildlich vorzustellen. Das liegt an der unmittelbaren Nähe der Punkte (aus beliebiger Benutzersicht) innerhalb der Punktwolke, die auf verschiedenen Ebenen liegen können. Wenn zum Beispiel die Benutzersicht der Punktwolke nach unten auf einen Tisch blickt, wird es Punkte innerhalb des Blickfelds von der Tischoberfläche geben, nebst dem Boden unterhalb der Tischoberfläche oder sogar der Oberfläche auf der Unterseite des Tischs.

Dort, wo die Punktwolke relativ dicht ist, was bedeutet, dass die Punkte auf einer Oberfläche dicht gelagert sind, ist die Erzeugung von Oberflächen in dem angezeigten Bild zum Visualisieren der abgetasteten Fläche möglich, wenngleich rechenintensiv. Jedoch kann in einigen Anwendungen die Punktwolke eine geringere Punktdichte aufweisen, was zu Lücken in dem Datensatz zwischen den Punkten der Punktwolke führt. Infolgedessen kann es schwierig sein, eine gewünschte grafische Darstellung zu erzeugen.

Dementsprechend bleibt, obwohl bestehende Messgeräte und Punktwolkenanzeigesysteme für ihre vorgesehenen Zwecke geeignet sind, der Bedarf nach Verbesserung bestehen, insbesondere in der Bereitstellung eines Systems zum Füllen von Pixeln auf einer grafischen Darstellung, um eine Anzeige einer Punktwolke zu erzeugen.

KURZDARSTELLUNG DER ERFINDUNG

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum optischen Abtasten, Vermessen und Darstellen einer Punktwolke bereitgestellt. Das Verfahren umfasst das Senden eines Sendelichtstrahls durch einen Lichtsender eines Laserscanners. Ein Lichtempfänger empfängt einen Reflexionslichtstrahl, wobei ein Reflexionslichtstrahl des Sendelichtstrahls von einem Objekt reflektiert wird. Eine Steuer- und Auswerteeinrichtung bestimmt für Messpunkte, die entsprechend einem Bildschirm auf einer Anzeigeeinrichtung auf eine Ebene projiziert wurden, mindestens die Distanz von dem Objekt zu einem Zentrum des Laserscanners, wobei mindestens einige Messpunkte auf der Anzeigeeinrichtung angezeigt werden. Die Punkte sind auf der Anzeigeeinrichtung sichtbar und werden zumindest teilweise basierend auf einem Standpunkt der Anzeigeeinrichtung bestimmt. Ein oder mehrere Pixel werden gefüllt, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen. Während das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte, gefolgt von einer zweiten horizontalen Suche in einer zweiten Richtung des ersten gemessenen Punkts, umfasst, ist die zweite Richtung der ersten Richtung entgegengesetzt. Das Lückenfüllen umfasst ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts, wobei die dritte Richtung senkrecht zur ersten Richtung ist, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung, wobei die vierte Richtung der dritten Richtung entgegengesetzt ist.

Figurenliste

Die Ausführungsformen der vorliegenden Erfindung werden nachstehend auf der Grundlage von in den Zeichnungen dargestellten Ausführungsbeispielen ausführlicher erläutert, in denen

  • 1 eine schematische Darstellung eines Laserscanners in der Umgebung ist, der eine Anzeigeeinrichtung umfasst, und
  • 2 eine partielle Schnittdarstellung des Laserscanners ist;
  • 3 eine schematische Darstellung einer abgetasteten Fläche mit auf den Oberflächen angezeigten gemessenen Punkten ist;
  • 4 eine schematische Darstellung der Zuweisung und des Füllens der Pixel mit einer Sicht auf die Ebene ist, wobei die benachbarten Pixel auf derselben Oberfläche liegen;
  • 5 eine schematische Darstellung der Zuweisung und des Füllens der Pixel gemäß 4 mit einer Sicht auf die Ebene ist, gemäß einer Ausführungsform;
  • 6 eine schematische Darstellung der Zuweisung und des Füllens der Pixel mit einer Sicht auf die Ebene ist, wobei die benachbarten Pixel auf unterschiedlichen Oberflächen liegen, gemäß einer Ausführungsform;
  • 7 eine schematische Darstellung der Zuweisung und des Füllens der Pixel gemäß 3 mit einer Sicht auf die Ebene ist, gemäß einer Ausführungsform;
  • 8 ein Flussdiagramm eines Verfahrens zum Füllen von Pixeln gemäß einer Ausführungsform ist;
  • 9 - 11 Flussdiagramme eines Verfahrens zum Durchführen des Pixelfüllens in einer horizontalen Reihe gemäß einer Ausführungsform ist;
  • 12 - 16 schematische Darstellungen einer Folge horizontaler und vertikaler Pixelfüllschritte sind, die mithilfe der Verfahren von 6 durchgeführt werden.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG

Mit Bezug auf 1 und 2 wird ein Laserscanner 10 als eine Vorrichtung zum optischen Abtasten und Vermessen der Umgebung des Laserscanners 10 bereitgestellt. Der Laserscanner 10 hat einen Messkopf 12 und einen Fuß 14. Der Messkopf 12 ist als eine Einheit, die um eine vertikale Achse gedreht werden kann, auf dem Fuß 14 montiert. Der Messkopf 12 weist einen Drehspiegel 16 auf, der um eine vertikale Achse gedreht werden kann. Der Schnittpunkt zwischen den zwei Drehachsen wird als das Zentrum C10 des Laserscanners 10 bezeichnet.

Der Messkopf 12 weist ebenfalls einen Lichtsender 17 zum Senden eines Sendelichtstrahls 18 auf. Der Sendelichtstrahl 18 kann ein Laserstrahl im Wellenlängenbereich von ungefähr 300 bis 1600 nm, zum Beispiel 790 nm, 905 nm oder weniger als 400 nm sein, doch es können auch andere elektromagnetische Wellen mit zum Beispiel einer größeren Wellenlänge genutzt werden. Der Sendelichtstrahl 18 kann zum Beispiel mit einem sinusförmigen oder rechteckwellenförmigen Modulationssignal amplitudenmoduliert werden. Der Sendelichtstrahl 18 wird von dem Lichtsender 17 an den Drehspiegel 16 übertragen, wo er gebeugt und anschließend in die Umgebung gesendet wird. Ein Empfangslichtstrahl 20, der von einem Objekt reflektiert oder anderweitig gestreut wird, wird von dem Drehspiegel 16 wieder eingefangen, gebeugt und an einen Lichtempfänger 21 übertragen. Die Richtung des Sendelichtstrahls 18 und des Empfangslichtstrahls 20 ergibt sich aus den Winkelpositionen des Drehspiegels 16 und des Messkopfs 12, die von den Positionen ihrer jeweiligen Drehantriebe abhängen, die wiederum von einem entsprechenden Winkelschrittgeber erfasst werden.

Eine Steuer- und Auswerteeinrichtung 22 weist eine Datenverbindung mit dem Lichtsender 17 und dem Lichtempfänger 21 im Messkopf 12 auf, wobei Teile davon auch außerhalb des Messkopfs 12 angeordnet sind, zum Beispiel als ein mit dem Fuß 14 verbundener Computer. Die Steuer- und Auswerteeinrichtung 22 bestimmt, für eine Vielzahl von Messpunkten X, die Distanz d des Laserscanners 10 aus dem beleuchteten Punkt auf dem Objekt O (z. B. dem Tisch T, 3) und aus den Laufzeiten des Sendelichtstrahls 18 und des Empfangslichtstrahls 20. In einer Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung 22 basierend auf der Phasenverschiebung zwischen den zwei Lichtstrahlen 18 und 20 bestimmt. In einer anderen Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung basierend auf einer gemessenen Umlaufzeit zwischen einem ausgehenden Sendeimpuls des Lichts 18 und einem zurückkehrenden Empfangsimpuls des Lichts 20 bestimmt. In einer anderen Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung basierend auf einer Änderung in der optischen Wellenlänge eines Empfangsstrahls des Lichts 20 bezüglich einem Sendestrahl des Lichts bestimmt, wobei der Emissionsstrahl des Lichts eine optische Wellenlänge aufweist, die zeitlich nahezu linear gesweept (gechirpt) wird. Viele andere Verfahren sind in der Technik bekannt und können genutzt werden, um die Distanz d zu bestimmen.

Durch die Nutzung der relativ schnellen Drehung des Spiegels 16 erfolgt das Abtasten entlang einer Kreislinie. Auch wird durch die Nutzung der relativ langsamen Drehung des Messkopfs 12 relativ zum Fuß 14 mit der Kreislinie nach und nach der gesamte Raum abgetastet. Die Gesamtheit der Messpunkte X einer solchen Messung kann als ein Scan bezeichnet werden. Das Zentrum C10 des Laserscanners 10 definiert für solch einen Scan den Ursprung des lokalen stationären Bezugssystems. Der Fuß 14 ist in diesem lokalen stationären Bezugssystem stationär. In anderen Ausführungsformen wird eine andere Art Strahlablenkungsverfahren genutzt, um den Sendestrahl 18 auf verschiedene Punkte X in der Umgebung zu richten. In einer Ausführungsform wird ein Paar Galvanometer-Lenkspiegel genutzt, um den Sendestrahl 18 schnell auf die gewünschten Punkte X zu richten. In einer anderen Ausführungsform dreht sich der Sendestrahl 18 zusammen mit dem gesamten Messkopf 12. Viele Arten von Strahllenkmechanismen sind in der Technik bekannt und können genutzt werden.

Neben dem Abstand d zum Zentrum C10 des Laserscanners 10 umfasst jeder Messpunkt X einen Helligkeitswert, der auch von der Steuer- und Auswerteeinrichtung 22 bestimmt werden kann. Hier ist der Begriff Helligkeit so zu verstehen, dass er eine optische Leistungsstufe oder eine Strahlungsstufe bezeichnet (optische Leistung pro Flächeneinheit). Die Helligkeit ist ein Grautonwert, der zum Beispiel bestimmt wird durch die Integration des bandpassgefilterten und amplifizierten Signals des Lichtempfängers 21 über einen Messzeitraum, der dem Messpunkt X zugewiesen ist. Durch die Nutzung einer Farbkamera ist es optional möglich, Bilder zu erzeugen, durch welche die Farben (R, G, B) den Messpunkten X als ein Wert zugewiesen werden können, zusätzlich zur Helligkeit oder die Helligkeit umfassend.

Eine Anzeigeeinrichtung 30 ist mit der Steuer- und Auswerteeinrichtung 22 verbunden. Die Anzeigeeinrichtung 30 kann in den Laserscanner 10, zum Beispiel in den Messkopf 12 oder in den Fuß 14, integriert werden, oder kann eine externe Einheit sein, zum Beispiel Teil eines Computers, der mit dem Fuß 14 verbunden ist. Die Anzeigeeinrichtung 30 weist eine Grafikkarte 32 und einen Bildschirm 34 auf, die getrennt voneinander oder als Baueinheit angeordnet werden können. Die Steuer- und Auswerteeinrichtung 22 stellt 3D-Daten der Abtastung bereit.

Man wird verstehen, dass, wenn die Messpunkte X, die in einem dreidimensionalen Raum positioniert sind, auf einer zweidimensionalen Anzeigeeinrichtung 30 angezeigt werden, es für den Benutzer schwierig sein kann, sich das Objekt O auf der Anzeige bildlich vorzustellen. Mit Bezug auf 3 zum Beispiel wurde ein Tisch T mit dem Laserscanner 10 abgetastet und die Messpunkte X wurden aufgenommen. Wenn der Benutzer die Messpunkte X von einem Standpunkt V aus anzeigt, wird der Benutzer nicht nur die Messpunkte XT von der Tischplatte sehen, sondern auch die Messpunkte XF. Infolgedessen wird es, ohne einen visuellen Bezug, wie eine Oberfläche des Tischs T oder die Oberflächen der Beine des Tischs, für den Benutzer schwer, zwischen den Messpunkten XT und den Messpunkten XF zu unterscheiden. Man wird verstehen, dass in einer Ausführungsform, in der das gemessene Objekt O eine Struktur ist, z. B. das Innere eines Gebäudes, die gemessenen Punkte auf gegenüberliegenden Seiten einer Wand liegen können.

Dementsprechend stellen die Ausführungsformen hierin Vorteile bereit, die auf der Anzeigeeinrichtung 30 ein Bild erzeugen, das Oberflächen auf dem Objekt O darstellt, indem die Pixel zwischen den gemessenen Punkten gefüllt werden. Das Verfahren zum Füllen der Pixel zwischen den gemessenen Punkten wird manchmal als Lückenfüllen oder Pixelfüllen bezeichnet.

In vielen Fällen werden Objekte in einer Umgebung mit einem in mehreren Positionen platzierten Laserscanner 10 abgetastet. Dies ist in 3 dargestellt, in der sich ein Scanner 10A in einer ersten Position zu einer ersten Zeit und derselbe oder ein anderer Scanner 10B sich in einer anderen Position zu einer zweiten Zeit befindet. In einigen Ausführungsformen werden mehrere Scanner wie 10A, 10B gleichzeitig genutzt. In einer Ausführungsform wird der Scanner 10A positioniert, um die Oberseite des Tischs T und weniger Bodenpunkte an der Seite des Tischs abzutasten. Der Scanner 10B ist positioniert, um hauptsächlich Punkte unterhalb des Tischs T statt auf dem Tisch abzutasten. Wenn die Messpunkte XT mit den Messpunkten XF registriert werden, ist das Ergebnis eine Punktwolke, die über einen dreidimensionalen Raum verteilte Punkte aufweist. Aus der Perspektive eines Betrachters V wird solch eine Sammlung spärlich angeordneter Punkte eventuell nicht eindeutig anzeigen, welche Punkte näher am Betrachter liegen und welche weiter vom Betrachter weg liegen. Somit kann eine Anzeige der gesammelten Punkte in der Punktwolke die Bodenpunkte und die Tischplattenpunkte vermischen, wobei die Oberflächen für den Betrachter V nicht eindeutig zu unterscheiden sind.

Mit Bezug auf die 4 - 7, mit weiterem Bezug auf 1 und 2 konvertiert die Grafikkarte 32 die 3D-Daten in 2D-Daten (z. B. Rendern von Daten), die auf dem Bildschirm 34 angezeigt werden. Die 3D-Daten sind die Messpunkte X, wobei mehrere Scans aus verschiedenen Positionen des Laserscanners 10 zu einer Szene zusammengefügt werden können. Zum Darstellen der 2D-Daten gibt es Pixel P, d. h. benachbarte, kleine polygonale Oberflächen (z. B. Quadrate oder Sechsecke), die in einer zweidimensionalen Ebene E angeordnet sind, die dem Bildschirm 34 entspricht. In einer Ausführungsform ist die Projektion der Messpunkte X auf eine Ebene E mit einem Betrachtungsgerät (z. B. Auge, Kamera) ein Startpunkt für die Darstellung auf dem Bildschirm 34 an einem bestimmten Standpunkt V. Die Projektion erscheint perspektivisch (d. h., der Standpunkt V liegt im Finiten) oder orthografisch (d. h., der Standpunkt V liegt im Infiniten). In einer Ausführungsform werden die projizierten Messpunkte X einzelnen Pixeln P0, P1, P2 zugewiesen. Ein Z-Puffer ist ein zweidimensionales Array (Feld) aus Werten für die Pixel P. In diesem Z-Puffer wird jedem Pixel P ein Feldelement (Tiefe z) zugewiesen. Die Tiefe z eines jeden projizierten Messpunkts X entspricht der Distanz des Messpunkts X zu der Ebene E mit Bezug auf den Standpunkt V. Das Feld der Pixel P und der Z-Puffer können genauso behandelt werden wie die Bilder.

Der Standpunkt V kann an sich beliebig sein und wird normalerweise mehrere Male im Hinblick auf den Scan und/oder die Szene geändert. Mit anderen Worten kann sich der Benutzer dafür entscheiden, die Messpunktdaten aus einer Vielfalt von Perspektiven zu betrachten, mit erneut gerenderten Änderungen an den angezeigten Messpunkten X.

Da die Messpunkte X punktförmig sind und Lücken dazwischen aufweisen, und die Pixel P normalerweise, im Falle nahegelegener Objekte O, eine höhere Dichte in der Ebene E aufweisen als die Projektionen der Messpunkte X, wird ein Lückenfüllverfahren ausgeführt, um für eine verbesserte visuelle Darstellung für den Benutzer so viele Pixel wie möglich zu füllen. In einer Ausführungsform führt die Grafikkarte 32 dieses Verfahren durch Verarbeitung der 3D-Daten nach einem parallelen Verfahren aus, das später hierin weiter beschrieben wird, wobei das parallele Verarbeitungsverfahren zumindest in Teilen auf der Angabe des Standpunkts V und der Ebene E basiert.

In einer Ausführungsform werden anfänglich nur jene Pixel P gefüllt, denen die Projektion eines Messpunktes X zugewiesen ist, d. h. die einen Messpunkt X genau abdecken, z. B. die Pixel P0, P1, P2. Diese Pixel P werden mit dem Wert des zugewiesenen Messpunktes X, d. h. der Helligkeit (Grauskalenwert) und, gegebenenfalls, der Farbe gefüllt. Alle anderen Pixel P, die nicht genau einer Projektion eines Messpunkts X entsprechen, d. h. die „dazwischen“ liegen und zunächst leer sind, werden zum Beispiel auf einen Wert von null (z. B. leer oder ungefüllt) gesetzt. Jede der Tiefen z, d. h. der Feldelemente des Z-Puffers, die den anfänglich gefüllten Pixeln P zugewiesen sind, wird auf die Tiefe z0, z1, z2 festgelegt, die der Distanz des zugewiesenen Messpunkts X zur Ebene E entspricht. In einer Ausführungsform, manchmal als perspektivische Projektion bezeichnet, ist die Distanz z1 von einem Objektpunkt zu einem Punkt P1 auf einer Ebene E entlang einer Linie markiert, die auf einen Betrachterstandpunkt V gerichtet ist. In dieser Ausführungsform ist die Distanz z1 die Distanz von dem Obj ektpunkt zu dem Punkt P1. In einer anderen Ausführungsform, manchmal als orthografische Projektion bezeichnet, ist die Distanz eine senkrechte Distanz von dem Objektpunkt zu dem Punkt P1 anstelle der auf V gerichteten Linie.

Alle anderen Feldelemente des Z-Puffers (z. B. die Tiefen z) werden auf einen sehr großen Wert eingestellt (bezüglich der Größenordnung der gemessenen Punkte), zum Beispiel ungefähr auf eine infinite Tiefe. Wenn sich, sofern die Projektion der gemessenen Punkte X erfolgt ist, herausstellt, dass zwei Messpunkte X für ein Pixel P verfügbar sind, wird der Messpunkt mit der kleinen Tiefe z ausgewählt und der andere verworfen, damit die abgedeckten Oberflächen und abgedeckten Ränder, wie solche Messpunkte XF auf dem Boden von 3, nicht sichtbar sind.

Gemäß einer Ausführung wird das Lückenfüllverfahren in Abhängigkeit von der Tiefe z0, z1, z2, d. h. von der Distanz zur Ebene E durchgeführt. Die Grafikkarte 32 wählt alle Pixel P parallel in Bezug auf die Zeit aus. Als Beispiel wird nun ein ausgewähltes Pixel P0 betrachtet. Die zugewiesene Tiefe z, d. h. das Feldelement des Z-Puffers, enthält die Tiefe z0. Bei jedem ausgewählten Pixel P0 werden die benachbarten Pixel P1, P2, nacheinander gesucht, d. h. abwechselnd nach links und rechts und nach oben und unten. Wenn das benachbarte Pixel P1 noch nicht gefüllt ist oder wenn seine Tiefe z größer ist als die Tiefe z0 des ausgewählten Pixels P0, wird es übersprungen und das zweitnächste Pixel P wird als das benachbarte Pixel P1 angesehen, wenn nötig iterativ. Wenn ein benachbartes Pixel P1, dessen Tiefe z1 kleiner ist als die Tiefe z0 des ausgewählten Pixels P0, in einer der Richtungen gefunden wurde, erfolgt eine Änderung in die nächste Richtung, und es wird nach dem nächsten benachbarten Pixel P2 gesucht (dessen Tiefe z2 z. B. kleiner ist als die Tiefe z0 des ausgewählten Pixels P0). Es ist möglich, eine Höchstzahl an übersprungenen Pixeln zu definieren, d. h. wenn das benachbarte Pixel P1 oder P2 nach Überspringen der Höchstzahl an übersprungenen Pixeln noch nicht gefunden wurde, wird die Suche nach P1 oder P2 abgebrochen. In einer Ausführungsform wird die Suche nach Pixeln zum Füllen eines Anfangspixels P0 auf jene Pixel innerhalb eines Radius R des Pixels P0 auf dem zweidimensionalen Pixel-Array begrenzt. In einer anderen Ausführungsform wird die Suche auch durch einen anderen Radius in den 3D-Koordinaten, senkrecht zur Blickrichtung, begrenzt.

Wenn die benachbarten Pixel P1 und P2 für das ausgewählte Pixel P0 in entgegengesetzten Richtungen gefunden wurden, wobei die Tiefen z1 und z2 der benachbarten Pixel P1 und P2 kleiner sind als die Tiefe z0, wird geprüft, ob P1 und P2 auf derselben Ebene liegen, d. h. ob der Differenzbetrag von z2 und z1 unterhalb eines Schwellenwertes für die Tiefe zcrit liegt, d. h. |z2z1|<zcritembedded imagezutrifft. In solch einem Fall wird das ausgewählte Pixel P0 mit dem Wert gefüllt, der zwischen P1 und P2, d. h. Helligkeit (Grauskalenstufe) und, gegebenenfalls Farbe, interpoliert wurde. Das zugewiesene Feldelement des Z-Puffers wird gleichermaßen auf die interpolierte Tiefe zwischen z1 und z2 festgelegt. Die Interpolationsgewichte hängen von der Distanz des ausgewählten Pixels P0 von P1 und P2 in Ebene E ab.

Wenn die Differenz der Tiefen zu groß ist, d. h. die Bedingung |z2z1|<zcritembedded imagezutrifft, wird angenommen, dass P1 und P2 auf verschiedenen Ebenen liegen. Das ausgewählte Pixel P0 wird dann mit dem Wert, d. h. der Helligkeit, und, gegebenenfalls der Farbe, von zum Beispiel dem entfernteren Pixel P1 oder P2 und dem zugewiesenen Feldelement des Z-Puffers mit der größeren Tiefe z1 oder z2 gefüllt. In einer anderen Ausführungsform werden der Wert und die Tiefe von Pixel P1 oder P2, die eine größere Tiefe z1 oder z2 aufweisen, an das andere Pixel übertragen oder dem anderen Pixel zugewiesen. Im Falle von mehr als zwei benachbarten Pixeln P1, P2 kann der Mittelwert der Mehrheit, d. h. der benachbarten Pixel P1, P2, die sich auf derselben Oberfläche befinden, übertragen werden.

Ausgewählte Pixel P0, die bereits mit Werten der Messpunkte gefüllt wurden, werden durch die Interpolation der Werte der benachbarten Pixel P1 und P2 überschrieben. In einer anderen Ausführungsform bleibt ein ausgewähltes Pixel P0, das bereits gefüllt ist, unverändert, wenn |z0 - z1| kleiner ist als ein Schwellenwert, d. h. wenn P0 und P1 bereits zu derselben Oberfläche gehören.

Wenn die Pixel P beim Finden der Pixel P1 und P2 übersprungen wurden, weil sie nicht gefüllt wurden oder weil ihre Tiefe z zu groß war, sind ihre benachbarten Pixel P1, P2 dieselben wie bei dem ausgewählten Pixel P0, sodass die übersprungenen Pixel PF und die zugewiesenen Feldelemente des Z-Puffers, im Rahmens der parallel erfolgenden Auswahl, gleichermaßen gefüllt werden, entweder mit einem Wert, der zwischen den Pixeln P1 und P2 und/oder den Tiefen z1 und z2 interpoliert wird (abhängig von der Distanz des ausgewählten Pixels P0 von P1 und P2 in Ebene E) oder mit dem Wert und/oder den Tiefen z1 oder z2 des entfernteren unter den Pixeln P1 oder P2 (oder dem Mittelwert der Mehrheit), wie in 7 dargestellt.

Aufgrund der parallel erfolgenden Auswahl führt das Füllen mit dem Wert und/oder der Tiefe z1 oder z2 des entfernteren der Pixel P1 oder P2 wegen einer zu großen Differenz der Tiefen dazu, dass das benachbarte Pixel P1 oder P2 einen Rand bildet. Auch wenn kein benachbartes Pixel P1 oder P2 gefunden wird, dessen Tiefe z1 oder z2 kleiner ist als die Tiefe z0 des ausgewählten Pixels P0, wird, da das ausgewählte Pixel P0 an der Seite des Bildschirms 34 liegt, ein Rand erzeugt, da diese ausgewählten Pixel P0 an dem Rand dann nicht gefüllt sind.

Sobald die Pixel entlang einer horizontalen Reihe gefüllt sind, kann derselbe Prozess genutzt werden, um die vertikalen Lücken zwischen den Messpunkten P3, P4 auf ähnliche Weise wie der für das horizontale Lückenfüllen beschriebenen zu füllen. Wie nachstehend ausführlicher erläutert wird, kann der Lückenfüllprozess iterativ durchgeführt werden, bis das Bild erzeugt ist.

Das Lückenfüllen kann in der Steuer- und Auswerteeinrichtung 22 oder mithilfe von auf einem externen Computer laufender Software durchgeführt werden. Aufgrund der Zeitersparnis durch die parallele Auswahl kann das auf Hardware basierte Lückenfüllen auf der Grafikkarte 32 zusammen mit der Programmierschnittstelle der Letzteren genutzt werden.

Mit Bezug auf 8 wird eine Ausführungsform eines Verfahrens 100 zum Aufnehmen von Messpunkten und Anzeigen der Punktwolke mittels Lückenfüllen von Pixeln dargestellt. Das Verfahren 100 beginnt in Block 102, wo das Objekt O mit einem Messgerät, zum Beispiel, jedoch nicht darauf beschränkt, einem Laser, abgetastet wird. Man wird verstehen, dass das abgetastete Objekt O mehrere Objekte, zum Beispiel die Innenräume und Flure eines Gebäudes umfassen kann. Der Schritt des Abtastens des Objekts O führt zur Erzeugung einer Punktwolke, die die gemessenen Punkte X auf den Oberflächen des Objekts O darstellt.

Das Verfahren 100 schreitet dann zu Block 104 fort, in dem bestimmt wird, welche der gemessenen Punkte X auf der Anzeigeeinrichtung 30 sichtbar sind. Wie hierin oben erläutert, wird die dreidimensionale Punktwolke auf den zweidimensionalen Bildschirm 34 der Anzeigeeinrichtung 30 projiziert, um es dem Benutzer zu ermöglichen, sich die Punktwolke anzusehen. Das Verfahren schreitet dann zu Block 106 fort, in dem die Pixel lückengefüllt werden, um das visuelle Erscheinungsbild der Oberflächen in der Anzeigeeinrichtung 30 bereitzustellen. In einer Ausführungsform umfasst der Schritt des Lückenfüllens in Block 106 eine horizontale Suche nach links eines einen Messpunkt enthaltenden Pixels in Block 108 und dann eine Suche nach rechts des Pixels in Block 110. Der Schritt des Lückenfüllens in Block 106 umfasst ferner die Schritte einer vertikalen Suche über (z. B. in Richtung Oberseite der Anzeigeeinrichtung 34) dem Pixel, das den gemessenen Punkt in Block 112 enthält, und dann eine Suche unter dem Pixel in Block 114. In einer Ausführungsform, in der die vertikale Suche der Blöcke 112, 114 der horizontalen Suche der Blöcke 108, 110 folgt, wird man jedoch verstehen, dass dies zu Beispielzwecken erfolgt und die Ansprüche nicht darauf zu begrenzen sind. In anderen Ausführungsformen geht die vertikale Suche der horizontalen Suche voraus. In einer Ausführungsform wird die vertikale nach der horizontalen Suche durchgeführt. In einer anderen Ausführungsform werden die horizontale und die vertikale Suche gleichzeitig in beide Richtungen durchgeführt.

Die Lückenfüllschritte können für alle einen gemessenen Punkt enthaltenden Pixel durchgeführt werden, die auf der Anzeigeeinrichtung angezeigt werden. In einer Ausführungsform sind die Pixelfüllschritte dieselben wie jene, die hierin oben mit Bezug auf 4 - 7 beschrieben wurden. Sobald das Lückenfüllen durchgeführt ist, schreitet das Verfahren 100 dann zum Abfrageblock 116 fort, in dem bestimmt wird, ob alle Pixel für das Lückenfüllen ausgewertet wurden. Wie nachstehend ausführlicher erläutert wird, können in einigen Fällen Lücken oder leere Pixel auftreten, in denen das Pixel nicht von einem Pixel, das einen gemessenen Punkt enthält, oder einem zuvor gefüllten Pixel begrenzt ist. Zum Lösen dieses Problems kann das Lückenfüllen von Block 106 ein iterativer Prozess sein. In einer Ausführungsform läuft der Prozess für eine feste Anzahl an Iterationen. In einer anderen Ausführungsform läuft der Prozess, bis eine Stoppbedingung erreicht ist. In einer Ausführungsform besteht die Stoppbedingung darin, dass keine zusätzlichen Pixel in der vorherigen Iteration gefüllt werden können.

Wenn der Abfrageblock 116 mit Ja antwortet, was bedeutet, dass es nichtausgewertete Pixel gibt, kehrt das Verfahren zu Block 106 zurück. Wenn der Abfrageblock 116 mit Nein antwortet, schreitet das Verfahren 100 zu Block 118 fort, in dem das Bild auf der Anzeigeeinrichtung 30 angezeigt wird.

Mit Bezug auf 9 - 11 wird eine Ausführungsform eines Verfahrens 200 für die Lückenfüllschritte der Blöcke 108-110 angezeigt. Man wird verstehen, dass, während das Verfahren 200 mit Bezug auf das horizontale Lückenfüllen beschrieben wird, dies zu Beispielzwecken dient und die Schritte des Verfahrens 200 auch für das vertikale Lückenfüllen durchgeführt werden können.

Das Verfahren 200 beginnt in Block 202, in dem ein Pixel P0 identifiziert wird. Das Pixel P0 ist ein Pixel, das ein Bild des gemessenen Punkts X enthält, der aus der dreidimensionalen Punktwolke auf die zweidimensionale Anzeigeeinrichtung 30 projiziert wird. Das Verfahren 200 schreitet dann zu Block 204 fort, in dem eine Suche nach Pixeln links von Pixel P0 durchgeführt wird. Wie hierin genutzt, zeigen die Begriffe „links“ und „rechts“ entgegengesetzte Seiten in der Reihe von Pixel P0 an, dies erfolgt der Klarheit halber und es wird keine vorgesehene Ausrichtung der Anzeigeeinrichtung 34 oder der Punktwolkendaten vorgesehen.

Das Verfahren 200 schreitet dann zu Abfrageblock 206 fort, in dem bestimmt wird, ob ein Pixel P1 innerhalb eines Radius R (7) gefunden wurde. In dem Ausführungsbeispiel ist der Radius R anfangs ein vom Benutzer definierter, vorbestimmter Wert, zum Beispiel fünf Pixel. Wenn der Abfrageblock 206 mit Nein (kein Pixel P1 gefunden) antwortet, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 206 mit Ja (ein Pixel P1 wurde gefunden) antwortet, schreitet das Verfahren zu Block 210 fort, in dem ein maximaler Suchradius an Pixeln bestimmt wird, in dem der Radius nichtproportional oder antiproportional zu einer Distanz d1 ist, in dem die Distanz d1 dieselbe ist wie z1 von 4. Die Suche wird im Pixelraum durchgeführt. Man wird verstehen, dass jedes Pixel eine andere Größe im 3D-Raum darstellen kann. Wenn sich zum Beispiel ein Strahl durch jedes Pixel vom Standpunkt in den Raum erstreckt, wird die Distanz zwischen den Strahlen mit der Distanz oder Tiefe vom Standpunkt zunehmen (perspektivische Projektion). In einer Ausführungsform reprojiziert die Suche die Pixel in den 3D-Raum und die Objekte innerhalb einer vorbestimmten Distanz.

Das Verfahren 200 schreitet dann zu Abfrageblock 211 fort, in dem bestimmt wird, ob die Distanz (x0, y0), (x1,y1) zwischen den gemessenen Punkten der Pixel P0, P1 liegt. Wenn diese Distanz nicht innerhalb des in Block 210 bestimmten Radius liegt, antwortet der Abfrageblock 212 mit Nein und schreitet zu Block 214 fort, in dem das unmittelbar benachbarte Pixel P1 links von (x0, y0) im Abfrageblock 216 ausgewertet wird. Im Abfrageblock 216 wird bestimmt, ob das Pixel nicht leer ist und eine Tiefe von weniger als der Tiefe zum gemessenen Punkt X von P0 aufweist. Wenn der Abfrageblock 216 mit Nein antwortet, was bedeutet, dass das Pixel entweder leer ist oder eine Tiefe größer als des gemessenen Punkts von P0 aufweist, kehrt das Verfahren 200 zu Block 208 zurück. Wenn der Abfrageblock 216 mit Ja antwortet, schreitet das Verfahren 200 zu Block 218 fort, in dem die Werte von (x1, y1) und d1 auf dieses Pixel (z. B. Pixel P1) festgelegt werden. Sobald die Werte von Block 218 festgelegt sind, oder wenn der Abfrageblock 212 mit Ja antwortet, schreitet das Verfahren 200 zu Block 211 (10) fort.

In Block 211 wird eine Suche nach den Pixeln rechts des Pixels P0 durchgeführt. Das Verfahren schreitet dann zu Abfrageblock 213 fort, in dem bestimmt wird, ob ein Pixel P2 innerhalb des Radius R (z. B. 5 Pixel) liegt. Wenn der Abfrageblock 213 mit Nein (kein Pixel P1 gefunden) antwortet, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 213 mit Ja antwortet, wird ein maximaler Suchradius in Block 215 bestimmt, der nichtproportional oder antiproportional zu der Distanz d2 ist, wobei die Distanz d2 zu der Distanz z2 von 4 äquivalent ist. Das Verfahren 200 schreitet dann zu Abfrageblock 217 fort, in dem bestimmt wird, ob die Distanz (x0, y0), (x2,y2) innerhalb des in Block 215 bestimmten Radius liegt.

Wenn der Abfrageblock 217 mit Nein antwortet, schreitet das Verfahren 200 zu Block 219 fort, in dem das unmittelbar benachbarte Pixel rechts von (x0, y0) ausgewertet wird. Dies sorgt für ein gleichmäßigeres Lückenfüllen, selbst wenn die Suchkriterien nicht erfüllt sind. In einer Ausführungsform werden für unmittelbar benachbarte Pixel die 3D-Kriterien ignoriert, es sei denn, es werden bessere Pixel identifiziert. Im Abfrageblock 221 wird bestimmt, ob das Pixel nichtleer ist und eine Tiefe von weniger als der Tiefe zum gemessenen Punkt X von P0 aufweist. Wenn der Abfrageblock 221 mit Nein antwortet, was bedeutet, dass das Pixel entweder leer ist oder eine Tiefe größer als der gemessene Punkt von P0 aufweist, kehrt das Verfahren 200 zu Block 208 zurück und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 221 mit Ja antwortet, schreitet das Verfahren 200 zu Block 222 fort, in dem die Werte von (x2, y2) und d2 auf dieses Pixel (z. B. Pixel P2) festgelegt werden. Sobald die Werte von Block 222 festgelegt sind, oder wenn der Abfrageblock 217 mit Ja antwortet, schreitet das Verfahren 200 zu Block 224 (11) fort.

Im Abfrageblock 224 wird bestimmt, ob die Differenz zwischen den Distanzen d0 und d1 (z. B. die Distanz vom Standpunkt V zu den gemessenen Punkten x0 und x1 von 6) größer ist als ein Schwellenwert (z. B. Zcrit). In einer Ausführungsform beträgt der Schwellenwert 2,5 Zentimeter. Wenn der Abfrageblock 224 mit Nein antwortet, was anzeigt, dass die gemessenen Punkte bereits auf derselben Ebene liegen, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 224 mit Ja antwortet, schreitet das Verfahren 200 zu Abfrageblock 226 fort, in dem bestimmt wird, ob die Differenz zwischen den Distanzen d1 und d2 (z. B. die Distanz vom Standpunkt V zu den gemessenen Punkten x1 und x2 von 6) kleiner ist als ein Schwellenwert. In einer Ausführungsform beträgt der Schwellenwert von Block 22610 Zentimeter.

Wenn der Abfrageblock 226 mit Ja antwortet, was bedeutet, dass die Differenz in den Tiefen geringer ist als der Schwellenwert und dass die Punkte auf derselben Ebene liegen, schreitet das Verfahren 200 zu Block 228 fort, in dem die Tiefe und die Farbe der Pixel P1 und P2 in das dazwischenliegende oder das intervenierende Pixel interpoliert oder diesem zugewiesen werden. In einer Ausführungsform wird die Tiefen- und Farbinterpolation mit Gewichten (1/r12) und (1/r22) gewichtet, worin r1 die Distanz in Pixeleinheiten von P1 bis P0 ist, und r2 die Distanz in Pixeleinheiten von P2 bis P0 ist.

Wenn der Abfrageblock 226 mit Nein antwortet, schreitet das Verfahren 200 zu Block 230 fort, in dem das Bild auf der Anzeigeeinrichtung 30 angezeigt wird. Wenn der Abfrageblock 230 mit Ja antwortet, werden die Farb- und Tiefenwerte des Pixels P2 zum Lückenfüllen der leeren Pixel zwischen den Pixeln P1 und P2 genutzt. Wenn der Abfrageblock 230 mit Nein antwortet, werden die Farb- und Tiefenwerte des Pixels P1 zum Lückenfüllen der leeren Pixel zwischen den Pixeln P1 und P2 genutzt. Der Zweck von Block 230 liegt darin, das Erweitern von Objekten durch zusätzliche Pixel an ihren Rändern zu vermeiden.

Man wird verstehen, dass das Verfahren 200 auch für das vertikale Lückenfüllen wiederholt werden kann.

Mit Bezug auf 12 - 16 wird ein Beispiel des Iterationsschritts für das Lückenfüllen dargestellt, wie zum Beispiel durch den Abfrageblock 116 (8) bereitgestellt. 12 stellt das horizontale Lückenfüllen dar, das in der ersten Iteration auftritt, wobei die Blöcke mit dem „x“ Pixel kennzeichnen, das einen gemessenen Punkt enthält. Die Zahl „1‟ kennzeichnet leere Pixel, die in der ersten Iteration gefüllt werden, zum Beispiel durch das Verfahren 100. Sobald das horizontale Lückenfüllen abgeschlossen ist, wird das in 13 dargestellte vertikale Lückenfüllen durchgeführt. Die Zahl „2“ kennzeichnet die Pixel, die während der ersten Iteration durch vertikales Lückenfüllen gefüllt wurden. Es wird darauf hingewiesen, dass leere Pixel nur dann gefüllt werden, wenn sie auf entgegengesetzten Seiten durch entweder ein Pixel mit einem Messpunkt X oder durch ein zuvor gefülltes Pixel begrenzt sind, zum Beispiel wird Pixel 300 gefüllt, weil es von den Pixeln 302, 304 begrenzt ist. Es wird ferner darauf hingewiesen, dass sobald die erste Iteration abgeschlossen ist, es eine Anzahl von Pixeln gibt, wie Pixel 306, 308, die nicht für das Lückenfüllen ausgewertet wurden, weil mindestens eine Seite der Reihe, in der sich das Pixel befindet, zu Beginn der ersten Iteration des vertikalen Lückenfüllens nicht begrenzt war.

Mit Bezug auf 14 wird eine zweite Lückenfülliteration ausgelöst. Die zweite Iteration beginnt mit einem horizontalen Lückenfüllen. Bei dieser Iteration wird das Pixel 306 basierend auf Begrenzungs- oder Endpixeln 310, 312 ausgewertet und gefüllt. Die Zahl „3“ kennzeichnet die Pixel, die während der zweiten Iteration beim horizontalen vertikalen Lückenfüllen gefüllt wurden. Es wird darauf hingewiesen, dass in einer Ausführungsform die lückengefüllten Pixel eine verknüpfte Tiefe und Farbe aufweisen, die während der Blöcke 228, 232 oder 234 von 11 zugewiesen wurden. Diese zugewiesene Tiefe und die zugewiesene Farbe ermöglichen es, dass die Zwischenpixel ausgewertet und gefüllt werden können. Mit dem abgeschlossenen horizontalen Lückenfüllen der zweiten Iteration wird das vertikale Lückenfüllen der zweiten Iteration durchgeführt, wie in 15 dargestellt. Hier werden die zusätzlichen Pixel ausgewertet und gefüllt (wo zutreffend), basierend auf gefüllten Pixeln, die jene Pixel umfassen, die während des horizontalen Lückenfüllens der zweiten Iteration gefüllt wurden. Zum Beispiel wird Pixel 308 basierend auf den Endpixeln 306 (beim horizontalen Lückenfüllen der zweiten Iteration gefüllt) und Pixel 312 (beim Lückenfüllen der ersten Iteration gefüllt) ausgewertet und gefüllt.

In der dargestellten Ausführungsform bleiben, wenn das vertikale Lückenfüllen der ersten Iteration abgeschlossen ist, keine nichtausgewerteten begrenzten Pixel übrig. Deshalb würde der Abfrageblock 116 mit Nein antworten und das Verfahren mit dem Anzeigen des Bildes auf der Anzeigeeinrichtung 34 fortschreiten. Man wird verstehen, dass in anderen Ausführungsformen mehr oder weniger Iterationen durchgeführt werden können.

Man wird verstehen, dass, während die Ausführungsformen hierin die Erzeugung einer grafischen Darstellung durch einen Lückenfüllprozess in Bezug auf von einer Laserabtastvorrichtung erfassten Daten beschreibt, dies zu Beispielzwecken dient und die Ansprüche nicht derart zu begrenzen sind. In anderen Ausführungsformen kann die grafische Darstellung mithilfe von Punktwolkendaten erzeugt werden, die von einem beliebigen Messgerät, wie zum Beispiel einer triangulationsartigen Laserscannereinrichtung, einer triangulationsartige Strukturlichtscannereinrichtung oder einer Time-of-Flight-basierten Scannereinrichtung erzeugt wurden.