DE69232403T2 - Dreidimensionales Modellverarbeitungsverfahren und -gerät - Google Patents
Dreidimensionales Modellverarbeitungsverfahren und -gerätInfo
- Publication number
- DE69232403T2 DE69232403T2 DE69232403T DE69232403T DE69232403T2 DE 69232403 T2 DE69232403 T2 DE 69232403T2 DE 69232403 T DE69232403 T DE 69232403T DE 69232403 T DE69232403 T DE 69232403T DE 69232403 T2 DE69232403 T2 DE 69232403T2
- Authority
- DE
- Germany
- Prior art keywords
- image
- dimensional
- calculating
- polygon
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000003672 processing method Methods 0.000 title claims description 15
- 238000012545 processing Methods 0.000 claims description 103
- 239000013598 vector Substances 0.000 claims description 67
- 238000000034 method Methods 0.000 claims description 62
- 230000009466 transformation Effects 0.000 claims description 34
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims description 5
- 230000001788 irregular Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 2
- MFYFNUKUXIRYFV-JSGCOSHPSA-N Polygonone Natural products O=CC=1C(=O)C[C@H]2C(C)(C)CCC[C@@]2(C)C=1 MFYFNUKUXIRYFV-JSGCOSHPSA-N 0.000 claims 2
- 238000005282 brightening Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 38
- 238000004422 calculation algorithm Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 238000005259 measurement Methods 0.000 description 12
- 238000000605 extraction Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000010606 normalization Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000010237 hybrid technique Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 239000004927 clay Substances 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101150018444 sub2 gene Proteins 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000029777 axis specification Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Description
- Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Verarbeitung eines dreidimensionalen Modells zum Erzeugen eines dreidimensionalen Modells eines Objekts, Editieren des Objekts, Hinzufügen von Schattierung oder dergleichen, und Anzeigen des Modells, ohne sich auf das Datenformat eingegebener dreidimensionaler Daten zu stützen.
- Verschiedene Vorrichtungen zur Verarbeitung dreidimensionaler Modelle wurden bisher offenbart. In einem Beispiel einer solchen Vorrichtung werden dreidimensionale Positionsdaten, die die Oberfläche eines tatsächlichen Objekts, beispielsweise eines Tonmodells, angeben, durch eine nach dem Berührungsprinzip arbeitende Meßeinheit für dreidimensionale Koordinaten bzw. dreidimensionale Meßeinheit, beispielsweise einen dreidimensionalen Digitalisierer, eingegeben, und wird ein dreidimensionales Modell aus den eingegebenen dreidimensionalen Daten erzeugt. In einem anderen Beispiel werden die vorstehend erwähnten dreidimensionalen Positionsdaten durch eine nach dem Raumteilungsprinzip arbeitende dreidimensionale Meßeinheit eingegeben, und wird ein dreidimensionales Modell aus diesen dreidimensionalen Daten erzeugt.
- Eine Verarbeitungsvorrichtung für dreidimensionale Modelle dieser Art ermöglicht es, ein dreidimensionales Modell aus dreidimensionalen Daten zu erzeugen.
- In Übereinstimmung mit der konventionellen Verarbeitungsvorrichtung für dreidimensionale Modelle werden jedoch die dreidimensionalen Daten in einem Datenformat eingegeben, das von der dreidimensionalen Meßeinheit abhängig ist, so daß daher ein dreidimensionales Modell durch Verarbeiten von Daten mit einem anderen Datenformat nicht erzeugt werden kann. Darüber hinaus können dann, wenn ein dreidimensionales Modell erzeugt worden ist, die dreidimensionalen Daten nicht in dreidimensionale Daten mit einem anderen Format umgewandelt werden.
- Nachstehend werden einige bestimmte Beispiele beschrieben.
- Ein Bereichbildverarbeitungsverfahren, in welchem ein Bereichbild das Ziel der Verarbeitung ist und Informationen, die die Eigenschaften der Oberflächenform eines dreidimensionalen Objekts in dem Bild anzeigen, erfaßt werden, ist in "A Hybrid Approach to Range Image Segmentation Based on Differential Geometry" von Naokazu Yokoya und Martin D. Levine, Joho Shori Gakkai Ronbunshi, Band 30, Nr. 8, S. 944-953 (1989), beschrieben.
- In diesem konventionellen Verfahren zum Verarbeiten von Bereichbildern ist jedoch die Beziehung zwischen dem Koordinatensystem, in welchem ein Objekt angeordnet ist, und dem Koordinatensystem des Bilds nicht definiert, so daß es notwendig ist, Parameter wie beispielsweise den Abbildungsmaßstab entlang jeder der Koordinatenachsen jedesmal dann, wenn die Verarbeitung durchgeführt wird, anzugeben.
- Verschiedene Arten von berührungslosen Anordnungen wurden erwogen. Zum Beispiel gibt es ein Verfahren zum Messen der Laufzeit von Licht oder ein Verfahren, bei welchem Entfernungsdaten durch eine dreidimensionale Meßeinheit wie beispielsweise einen auf Triangulation basierenden Bereichfinder eingegeben werden und ein dreidimensionales Modell aus den erhaltenen dreidimensionalen Daten erzeugt wird.
- In einer Vorrichtung zum Erzeugen eines dreidimensionalen Modells, welche eine solche dreidimensionale Meßeinheit nutzt, wird ein Eingabesensor in bezug auf das eingegebene Objekt ausgerichtet und können Punkte, die nicht durch andere Objekte verdeckt werden, präzise eingegeben werden. Jedoch besteht ein Nachteil darin, daß Entfernungsdaten betreffend Teile hinter dem Sensor und Punkte, die verborgen sind, nicht eingegeben werden können.
- In einem Versuch, diesen Nachteil zu beseitigen, wird im Stand der Technik ein dreidimensionales Modell durch eines der folgenden Verfahren erhalten: (1) Der Sensor steht fest und das Objekt dreht sich um eine Hauptachse, in Synchronisation mit welchem ein Bereichbild gemessen wird. (2) Der Sensor wird um das Objekt gedreht, in Synchronisation mit welchem ein Bereichbild gemessen wird.
- Allerdings benötigen beide dieser Verfahren einen Mechanismus zum Drehen des Objekts oder des Sensors. Darüber hinaus ist es nicht leicht, eine dreidimensionale Form durch Beurteilen entsprechender Bildelemente bzw. Pixel einer Vielzahl von Bereichbildern zu rekonstruieren.
- Im allgemeinen wird dann, wenn ein Bild, in welchem ein Objekt im dreidimensionalem Raum in den zweidimensionalen Raum projiziert wird, ausgegeben wird, eine Schattierung bzw. Abblendung hinzugefügt. Dann werden, wenn das Bild zum Beispiel angezeigt wird, Bilder, in welchen das Objekt aus einer Vielzahl von Richtungen betrachtet wird, auf kontinuierliche Art und Weise angezeigt, wodurch die Orientierung der Objektoberfläche ausgegeben wird, so daß das Objekt im dreidimensionalem Raum im zweidimensionalem Raum ausgedrückt wird.
- Mit diesem konventionellen Verfahren kann jedoch nicht immer die Gesamtheit der Oberflächenform des Objekts in einem gewissen dreidimensionalen Raum in der Form eines einzelnen zweidimensionalen Bilds ausgegeben werden.
- In einem anderen Beispiel einer konventionellen Vorrichtung zur Verarbeitung dreidimensionaler Modelle wurde versucht, die Oberfläche eines Objekts angebende dreidimensionale Koordinatendaten durch eine Einheit zur Messung dreidimensionaler Daten, wie beispielsweise einen Laserbereichfinder, einzugeben und ein dreidimensionales Modell mittels dreieckiger Flecken zu erzeugen, in welchen alle der dreidimensionalen Koordinatendaten als Scheitel bzw. Spitzen dienen. Alternativ wurde versucht, ein dreidimensionales Modell auf der Grundlage dreieckiger Flecken zu erzeugen, in welchen einige der ursprünglichen Daten als Spitzen angenommen werden, wie beispielsweise durch Erweitern des Abstands zwischen Nachbarpunkten der als die Spitzen dienenden dreidimensionalen Koordinaten. Ein dreidimensionales Modell kann aus dreidimensionalen Daten in einer Vorrichtung zur Verarbeitung dreidimensionaler Modelle dieser Art erzeugt zu werden.
- Ferner wurde in einem anderen Beispiel einer konventionellen Vorrichtung zur Verarbeitung dreidimensionaler Modelle versucht, die Oberfläche eines tatsächlichen Objekts, wie beispielsweise eines Tonmodells, angebende dreidimensionale Daten durch eine nach dem Berührungsprinzip arbeitende dreidimensionale Meßeinheit, wie beispielsweise einen dreidimensionalen Digitalisierer, einzugeben und ein dreidimensionales Modell aus diesen dreidimensionalen Daten zu erzeugen. Ferner wurde versucht, die dreidimensionalen Positionsdaten durch eine nach dem Raumteilungsprinzip arbeitende Meßeinheit einzugeben und ein dreidimensionales Modell aus diesen dreidimensionalen Daten zu erzeugen.
- Darüber hinaus bestanden Versuche darin, die erhaltenen dreidimensionalen Objekte in verschiedener Animations- oder CAD/CAM-Verfahren zu nutzen.
- Bei der konventionellen Vorrichtung zur Verarbeitung dreidimensionaler Modelle wird jedoch das dreidimensionale Modell durch einheitliches Wählen von repräsentativen Punkten aus den dreidimensionalen Koordinatendaten der Objektoberfläche, die durch die dreidimensionale Koordinatenmeßeinheit wie beispielsweise den vorstehend erwähnten Laserbereichfinder eingegeben wurden, über die gesamte Fläche der Objektoberfläche und Erzeugen des Modells auf der Grundlage von polygonalen Flecken bzw. Polygonflecken, in welchen die einheitlichen Repräsentativpunkte als die Spitzen dienen, erzeugt. Ein auftretendes Problem besteht darin, daß die das Modell darstellende Datenmenge äußerst groß wird, wenn versucht wird, die Genauigkeit zu erhöhen.
- Die Datenmenge kann in dem Fall des durch die dreieckigen Flecken, in welchen manche der Daten als die Spitzen dienen, erzeugten dreidimensionalen Modells etwas reduziert werden, wobei der Abstand zwischen Nachbarpunkten der dreidimensionalen Koordinaten, die als die Spitzen dienen, verbreitert wird. An komplizierten Abschnitten oder gekrümmten Oberflächen, wo die Form sehr unregelmäßig ist, kann jedoch die Oberfläche des Objekts nicht richtig beschrieben werden. Andererseits sind die Spitzen von Polygonflecken auch bei großen planaren Flächen in Abständen plaziert, die gleich denen anderer Abschnitte sind, so daß daher auch unnötige Daten vorhanden sind.
- Ferner ist im Stand der Technik die Erzeugung eines 3-D-animierten Videos nur möglich, wenn ein Spezialist oder ein Computergraphik- bzw. CG- Animator ein teures System verwendet. Ein Amateur stößt bei der Beschreibung der Modellierung und der Bewegung von 3-D-Formen auf große Schwierigkeiten. Diese Systeme können verwendet werden, wenn auf manuelle Betriebsabläufe oder die künstlerische Sachkenntnis von Handwerkern zurückgegriffen wird, so daß viele Betriebsabläufe, wie beispielsweise die Modellierung und die Bestimmung von Bewegungen, nicht automatisch durchgeführt werden können.
- J. P. Cosmas et al.: "The generation of 3-dimensional object representations from range images", FOURTH INTERNATIONAL CONFERENCE ON ADVANCED INFRARED DETECTORS AND SYSTEMS, UK, Seiten 152-157, offenbart ein Bildverarbeitungsverfahren gemäß dem Oberbegriff der Ansprüche 1 und 28, bei dem aus Bereichbildern erhaltene Oberflächen segmentiert werden. Die Orientierung und die Form der Oberflächen werden dann erkannt, und ihre Konnektivität wird ermittelt, um eine modellbasierte Darstellung polygonaler Objekte zu erzeugen.
- Ferner offenbart T. Fan et al.: "Segmented Descriptions of 3-D Surfaces", IEEE JOURNAL OF ROBOTICS AND AUTOMATIONS, Band. RA-3, Nr. 6, USA, Seiten 527-538, ein Bildverarbeitungsverfahren zum Segmentieren sichtbarer Oberflächen in einfache Oberflächenflecken und dann Verwenden dieser Flecken und ihrer Grenzen zur Beschreibung der 3-D-Oberflächen. Unterschiedene Punkte, welche die Ränder von segmentierten Oberflächenflecken umfassen werden, werden extrahiert und in Kurven gruppiert, welche in verschiedene Klassen klassifiziert werden, um die Oberflächen in Oberflächenflecken zu segmentieren. Dann wird eine einfache Oberfläche an jeden Flecken angepaßt, um die ursprünglichen Objekte zu rekonstruieren.
- Zusätzlich offenbart T. Kasvand: "Step or jump edge detection by extrapolation", EIGHTH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION PROCEEDINGS, FRANCE, Seiten 374-377, ein Bildverarbeitungsverfahren, bei dem eine Korrektur nach der Erzeugung von Bereichbildern durchgeführt wird, um eine Form zu erhalten, welche eine Tiefe oder eine Entfernung von einer Kamera oder einer Referenzebene in Abhängigkeit von den Pixelkoordinaten definiert.
- Ferner offenbart S. Z. Li: "Invariant Surface Segmentation Through Energy Minimization with Discontinuities", INTERNATIONAL JOURNAL OF COMPUTER VISION, Band. 5, Nr. 2, NL, Seiten 161-194, ein Bildverarbeitungsverfahren, bei dem eine Segmentierung von Bereichdaten in Oberflächenflecken als Auffinden von Minimierungslösungen von Diskontinuitäten beinhaltenden Energiefunktionen formuliert wird. Insbesondere wird eine Schätzung der Oberflächenkrümmung eines eingegebenen Bereichbilds durch Wählen geeigneter Energiefunktionen zum Messen der Glattheit einer Lösung in bezug auf eine durch die Diskontinuitäten rekonstruierter Oberflächen und die Nähe der Lösung zu den Eingangsdaten kontrollierte Nachbarschaft durchgeführt. Das Minimum repräsentiert eine Lösung für diskontinuitätsbewahrendes Glätten.
- Schließlich offenbart G. D. Godin et al.: "Structured Edge Map of Curved Objects in a Range Image", PROCEEDINGS CVPR'89, IEEE COMPUTER SOCIETY CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 4.-8. Juni, 1989, San Diego, CA, USA, Seiten 276-281, ein Bildverarbeitungsverfahren, bei dem eine Differenz zwischen axialen Koordinaten des Abtastgitters eines Abtastmechanismus und den kartesischen Koordinaten bei der Verarbeitung eines eingegebenen Bereichbilds berücksichtigt wird, um ein Modell oder eine Beschreibung des abgebildeten Objekts zu bestimmen.
- Der Erfindung liegt die Aufgabe zugrunde, ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung zu schaffen, mittels welchen dreidimensionale Modelle unabhängig von der Art eingegebener Eingangsbereichdaten erzeugt und angezeigt werden können.
- Diese Aufgabe wird durch ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung, wie sie in den Ansprüchen 1 bzw. 28 definiert sind, gelöst.
- Andere Eigenschaften und Vorteile der Erfindung sind der folgenden Beschreibung in Verbindung mit den begleitenden Zeichnungen entnehmbar, in welchen gleiche Bezugszeichen durchgehend dieselben oder ähnliche Teile bezeichnen.
- Fig. 1 ist ein Blockdiagramm, das den Aufbau einer Vorrichtung zur Verarbeitung dreidimensionaler Modelle in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt;
- Fig. 2 ist ein Blockdiagramm, das die Anordnung von Hardware zeigt, die die Vorrichtung zur Verarbeitung dreidimensionaler Modelle in Übereinstimmung mit diesem Ausführungsbeispiel bildet;
- Fig. 3 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem ersten Ausführungsbeispiel zeigt;
- Fig. 4 ist ein Ablaufdiagramm, das die gesamte Verarbeitung des ersten Ausführungsbeispiels zeigt;
- Fig. 5 ist ein Diagramm, das ein Beispiel eines Fensters in Übereinstimmung mit dem ersten Ausführungsbeispiel zeigt;
- Fig. 6 ist ein Diagramm, das ein Beispiel von Operatoren zum direkten Erhalten linearer partieller Differentiale und quadratischer partieller Differentiale aus Koeffizienten einer quadratischen Oberfläche, die einer Anpassung unterzogen wurde, in Übereinstimmung mit dem ersten Ausführungsbeispiel zeigt;
- Fig. 7 ist ein Diagramm, das ein Beispiel eines Operators zum direkten Erhalten linearer partieller Differentiale und quadratischer partieller Differentiale aus einem ursprünglichen Bereichbild in Übereinstimmung mit dem ersten Ausführungsbeispiel zeigt;
- Fig. 8 ist ein Diagramm zum Beschreiben der Schätzung einer selektiven lokalen Ebene;
- Fig. 9 ist ein Diagramm, das ein Beispiel von Arten von Ebenen in Übereinstimmung mit dem ersten Ausführungsbeispiel zeigt;
- Fig. 10 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem zweiten Ausführungsbeispiel zeigt;
- Fig. 11 ist ein Ablaufdiagramm, das einen grundlegenden Algorithmus in Übereinstimmung mit dem zweiten Ausführungsbeispiel zeigt;
- Fig. 12 ist ein Diagramm, das ein Verfahren zum Festlegen einer Hauptachse aus Zeichnungen dreier Oberflächen in Übereinstimmung mit dem zweiten Ausführungsbeispiel zeigt;
- Fig. 13 ist ein Ablaufdiagramm, das einen Algorithmus für den Aufbau eines dreidimensionalen Modells in Übereinstimmung mit dem zweiten Ausführungsbeispiel zeigt;
- Fig. 14 ist ein Diagramm, das ein Beispiel der Beschreibung eines dreidimensionalen (polygonalen) Modells sowie einer kubischen Form zeigt;
- Fig. 15 ist ein Diagramm, das den Abtast zustand eines gemessenen Bereichbilds zeigt;
- Fig. 16 ist ein Ablaufdiagramm, das einen Algorithmus zur Berechnung von Phaseninformationen einer Rückenlinie zeigt;
- Fig. 17 ist ein Diagramm, das eine Pseudocodierung eines Algorithmus zur Berechnung von Phaseninformationen einer Rückenlinie veranschaulicht;
- Fig. 18 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem dritten Ausführungsbeispiel zeigt;
- Fig. 19 ist ein Ablaufdiagramm, das einen grundlegenden Algorithmus in Übereinstimmung mit dem dritten Ausführungsbeispiel zeigt;
- Fig. 20 zeigt Beispiele, in welchen der Sinn der Oberfläche einer Objektoberfläche als Längen und Richtungen von Zeilensegmenten angezeigt wird;
- Fig. 21A zeigt Beispiele, in welchen der Sinn der Oberfläche einer Objektoberfläche als die Farbe jedes Punkts angezeigt wird;
- Fig. 21B zeigt ursprüngliche Farbbilder entsprechend Fig. 21A;
- Fig. 22 ist ein Ablaufdiagramm, das einen Algorithmus zum Umwandeln eines Einheitsnormalenvektors in eine Farbe zeigt;
- Fig. 23 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem vierten Ausführungsbeispiel zeigt;
- Fig. 24 ist ein Ablaufdiagramm, das die gesamte Verarbeitung des vierten Ausführungsbeispiels zeigt;
- Fig. 25 ist ein Ablaufdiagramm einer Oberflächenklassifizierungsverarbeitung in Übereinstimmung mit dem vierten Ausführungsbeispiel;
- Fig. 26 ist eine Tabelle, die die Oberflächenklassen und die Codes derselben zeigt;
- Fig. 27 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur zum Erzeugen eines Polygonalfleckmodells in Übereinstimmung mit dem vierten Ausführungsbeispiel zeigt;
- Fig. 28 ist ein Diagramm, das schematisch ein Beispiel der Verarbeitung von Bereichbilddaten in Übereinstimmung mit dem vierten Ausführungsbeispiel zeigt;
- Fig. 29 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur zur Umrißextraktion in Übereinstimmung mit dem vierten Ausführungsbeispiel zeigt;
- Fig. 30 ist ein Diagramm, das eine Polygonalfleck-Datentabelle in Übereinstimmung mit dem vierten Ausführungsbeispiel zeigt;
- Fig. 31 ist eine erläuternde Aussicht zum Erzeugen eines Polygonfleckmodells jeder Fläche;
- Fig. 32 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem fünften Ausführungsbeispiel zeigt;
- Fig. 33 ist ein Ablaufdiagramm, das die gesamte Verarbeitung des fünften Ausführungsbeispiels zeigt;
- Fig. 34 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur zum Erzeugen eines Polygonfleckmodells in Übereinstimmung mit dem fünften Ausführungsbeispiel zeigt;
- Fig. 35 ist ein Diagramm zum Beschreiben der Abtastung eines Bereichbilds;
- Fig. 36 ist ein Diagramm zum Beschreiben eines Verfahrens zum Auswählen von charakteristischen Punkten;
- Fig. 37 ist ein Diagramm zum Beschreiben eines Beispiels von Punkten auf einer zu überprüfenden Seite;
- Fig. 38 ist ein Diagramm, das ein Beispiel von Daten zeigt, die ein Polygonmodells angeben;
- Fig. 39 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem sechsten Ausführungsbeispiel zeigt;
- Fig. 40 ist ein Ablaufdiagramm, das die gesamte Verarbeitung des sechsten Ausführungsbeispiels zeigt;
- Fig. 41 ist ein Diagramm, das ein Beispiel von Daten zeigt, die ein Polygonmodell angeben;
- Fig. 42 ist ein Diagramm zum Beschreiben eines Beispiels von Transformationsoperationen in Übereinstimmung mit dem sechsten Ausführungsbeispiel;
- Fig. 43A ist ein Diagramm, das ein Beispiel der Ergebnisse der Transformation in Übereinstimmung mit dem sechsten Ausführungsbeispiel zeigt;
- Fig. 43B zeigt ein ursprüngliches Farbbild entsprechend Fig. 43A;
- Fig. 44 ist ein Diagramm zum Beschreiben eines Beispiels der Interpolation von Transformationsparametern in Übereinstimmung mit dem sechsten Ausführungsbeispiel; und
- Fig. 45 ist ein Diagramm, das ein Beispiel einer Pseudocodierung zum Erzeugen von Rückenlinien-Phaseninformationen zeigt.
- Vor der Beschreibung von Ausführungsbeispielen der Erfindung im Einzelnen werden die hierin verwendeten technischen Begriffe auf einfache Art und Weise definiert.
- Ein "Bereichbild" bezieht sich auf ein Bild, in dem die vertikale Entfernung (parallele Projektion) zwischen jedem Punkt auf der Oberfläche eines durch einen Bereichmeßsensor gemessenen Objekts und einer Referenzebene gegeben ist. Was das Datenformat anbelangt, wird die Entfernung bzw. der Abstand (Z-Wert) an jedem Punkt eines quadratischen zweidimensionalen (X, Y)-Gitters gespeichert. Dieses sind Daten, die seit kurzem auf dem Gebiet der Computervision und der Computergraphik verwendet werden.
- Sodann wird ein "Formmodell", im Gegensatz zu einem Bereichbild, als geometrische Informationen wie beispielsweise die Spitzen und die Seiten eines 3-D-Objekts ausgedrückt. Zum Beispiel gibt es Maschenmodelle, Polygonmodelle, Modelle mit quadratischer Oberfläche und Modelle mit frei gekrümmter Oberfläche, erwähnt in der Reihenfolge beginnend mit denjenigen mit einer niedrigen Beschreibungsebene. Dies ist ein Datenformat, wie es häufig in CG- und CAD-Systemen verwendet wird.
- Ein "Maschenmodell" ist ein dreieckiges Gittermodell, in welchem die x- und y-Koordinaten äquidistant zueinander beabstandet sind. Wie in den Zeichnungen gezeigt ist, können geometrische 3-D-Daten durch Verbinden der Diagonalen einer Gitterform und Umwandeln von Entfernungsdaten in eine Reihe dreieckiger Polygone erzeugt werden. Im wesentlichen kann dieses Modell leicht durch ein einfaches Filterprogramm realisiert werden.
- Ein "Polygonmodell" besteht aus beliebigen Punktfolgen und ist ein Polygon in einer identischen Ebene. Die Struktur der Polygondaten ist in den Zeichnungen gezeigt. Die Datenstruktur ist grob in zwei Abschnitte eingeteilt. Die erste Hälfte ist ein Abschnitt, in dem ein Polygon bildende Spitzeninformationen vorgegeben sind. Dies ist ein (x,y,z)-Wert von Spitzeninformationen und einem (Nx,Ny,Nz)-Normalenvektorwert an einer optionalen Spitze; diese Werte sind wesentliche Daten. Was die zweite Hälfte anbelangt, sind Verbindungsinformationen von ein Polygon bildenden Rückenlinien in bezug auf die vorgegebenen Spitzeninformationen angegeben. Es gibt anfänglich n ein Polygon darstellende Rückenlinien, und diesen folgen n ein Polygon darstellende Indexwerte.
- Ein "Oberflächenmodell mit freier Krümmung" ist ein Modell mit der höchsten Beschreibungsleistung und wird in CAD und dergleichen weitreichend benutzt. Eine Bezier- oder NURBS (nonrational B-spline-surface)-gekrümmte Oberfläche ist als eine frei gekrümmte Oberfläche bekannt. Eine detaillierte Beschreibung des Verfahrens ist in "An Adaptive Subdivision Method For Surface Fitting from Sampled Data ", Francis Schm Computer Graphics, Band 20, Nummer 4, 1986, zu finden.
- Nachstehend werden bevorzugte Ausführungsbeispiele der Erfindung im Einzelnen unter Bezugnahme auf die begleitenden Zeichnungen beschrieben.
- Fig. 1 ist ein Blockdiagramm, das den Aufbau einer Vorrichtung zur Verarbeitung dreidimensionaler Modelle in Übereinstimmung mit diesem Ausführungsbeispiel zeigt.
- In Fig. 1 bezeichnet das Bezugszeichen 11 einen Umwandler für dreidimensionales Datenformat zum Umwandeln des Datenformats von dreidimensionalen Daten 12, die von einer Eingabeeinheit für dreidimensionale Daten zugeführt wurden. Das Bezugszeichen 13 bezeichnet einen Prozessor für dreidimensionale Daten bzw. dreidimensionalen Prozessor zum Verarbeiten der durch den Umwandler 11 umgewandelten dreidimensionalen Daten. Eine Meßeinheit für dreidimensionale Daten 14 führt verschiedene Messungen in bezug auf durch den Umwandler 11 umgewandelter dreidimensionaler Daten 11 durch. Eine Erzeugungseinheit für dreidimensionale Modelle 15 erzeugt ein dreidimensionales Modell aus den durch den dreidimensionalen Prozessor 13 verarbeiteten Daten. Eine Bearbeitungseinrichtung für dreidimensionale Modelle 16 editiert das durch die Erzeugungseinheit 15 erzeugte dreidimensionale Modell und wendet Operationen auf die Formdaten an. Eine Anzeigeeinheit für dreidimensionale Modelle 17 wendet eine Schattierung auf das durch die Erzeugungseinheit 15 erzeugte oder durch die Bearbeitungseinrichtung 16 editierte dreidimensionale Modell an und zeigt das resultierende Modell an. Ein Umkehrumwandler für dreidimensionale Modelle 18 wandelt das durch die Erzeugungseinheit 15 erzeugte oder durch die Bearbeitungseinrichtung 16 editierte dreidimensionale Modell in dreidimensionale Daten 12' mit einem anderen Format zurück.
- Fig. 2 ist ein Blockdiagramm, das den grundlegenden Aufbau der Hardware zeigt, aus der die Vorrichtung zur Verarbeitung dreidimensionaler Modell besteht. Diese Hardware ist für alle nachfolgenden Ausführungsbeispiele einschließlich dieses Ausführungsbeispiel dieselbe.
- Gezeigt in Fig. 2 sind ein Programmspeicher 1 zum Speichern verschiedene Verarbeitungsprozeduren, ein Datenspeicher 2, welcher Informationen, die zur Verarbeitung in diesem System notwendig sind, sowie Eingangs-/Ausgangsdaten speichert, eine CPU 3 zum Durchführen verschiedener Verarbeitungen und Steuern verschiedener Elemente der Vorrichtung in Übereinstimmung mit den in dem Programmspeicher 1 gespeicherten Verarbeitungsprozeduren, und eine Anzeigeeinheit 4 zum Anzeigen von durch das System erhaltenen 3-D-Formmodellen sowie zum interaktiven Anzeigen von Anweisungen von dem Benutzer. In diesem Ausführungsbeispiel arbeitet die Anzeige nach dem Mehrfachfensterprinzip. Das Bezugszeichen 5 bezeichnet eine Maus zum Eingeben von Befehlen von dem Benutzer, 6 bezeichnet eine Tastatur (KB), die der Benutzer dazu verwendet, ein Programm zu erzeugen und Befehle in das System einzugeben, und 7 bezeichnet einen Laserbereichfinder zum Messen der vertikalen Entfernung zwischen jedem Punkt auf einer Objektoberfläche und einer Referenzebene und zum Eingeben eines Bereichbilds.
- Nachstehend wird ein Beispiel des Betriebsablaufs der vorangehenden Anordnung beschrieben.
- Wenn die dreidimensionalen Daten 12 in den Umwandler 11 für dreidimensionale Daten 11 eingegeben werden, wandelt der letztgenannte das Datenformat in Übereinstimmung mit dem Datenformat der dreidimensionalen Daten 12 in ein Standard- Datenformat um.
- Ein Beispiel der Verarbeitung wird in bezug auf einen speziellen Fall beschrieben.
- Es sei angenommen, daß ein Laserstrahl, in welchem die Stärke des Laserlichts moduliert worden ist, von dem Laserbereichfinder ausgesandt wird, und daß der Phasenunterschied zwischen den von dem Objekt reflektierten Wellen und den ursprünglichen Wellen erfaßt wird, wodurch die Laufzeit des Lichts gemessen wird, um dreidimensionale Daten bereitzustellen.
- Der Formatumwandler 11 für dreidimensionale Daten 11 wandelt die dreidimensionalen Daten in das Format eines Bereichbilds um, welches ein "Standard-Datenformat" des Systems ist. Im Einzelnen führt der Umwandler 11 eine Umwandlung von Phasenunterschied nach Entfernung durch, transformiert das Koordinatensystem und führt Normalisierung entlang jeder Achse durch. Hier bezieht sich das Bereichbild auf ein Bild, in dem die vertikalen Entfernungen zwischen visuellen Punkten und der Oberfläche des Objekts als Werte von Pixeln gegeben sind.
- Der Prozessor für die Verarbeitung dreidimensionaler Daten 13 führt eine Segmentierung durch, wie beispielsweise die Extraktion von Ebenen und verschiedenen Krümmungsoberflächenregionen und die Extraktion von Rückenlinien usw. aus dem Bereichbild, und berechnet Attribut- bzw. Merkmalswerte von Pixeln, einer Krümmung usw. Sodann wird eine Kennzeichenbildverarbeitung wie beispielsweise die Eliminierung sehr kleiner Regionen, das Verbinden von Regionen und das Wachsen von Regionen auf der Grundlage der Merkmalswerte ausgeführt.
- Auf der Grundlage der Ergebnisse der durch den Prozessor für die Verarbeitung dreidimensionaler Daten 13 durchgeführten Verarbeitung erzeugt die Einheit zur Erzeugung dreidimensionaler Modelle 15 ein dreidimensionales Modell, wie beispielsweise ein Polygonmodell, ein parametrisches Modell, ein auf Grenzdarstellung basierendes Modell, oder ein Festmodell.
- Ein Verfahren zum Erzeugen eines Polygonmodells wird nachstehend mit allgemeinen Begriffen als ein Beispiel beschrieben. Ein Polygon mit Spitzen auf der Grenzlinie einer planaren Region wird an der planaren Region befestigt, welche durch den Prozessor für die Verarbeitung dreidimensionaler Daten 13 extrahiert wird, und ein Polygon mit Spitzen, welche Punkte sind, die mit einem bestimmten Abstand auf der Grundlage des Typs der gekrümmten Oberfläche und dem Maß ihrer Krümmung ausgewählt werden, wird an einer extrahierten Krümmungsoberflächenregion befestigt. Die Koordinaten der Spitzen jedes der so erzeugten Polygone sowie die Konnektivität dieser Punkte werden aufgezeichnet, und ein Polygonmodell wird erzeugt.
- Die Anzeigeeinheit für dreidimensionale Modelle 17 stellt durch Bereitstellen von Parametern wie beispielsweise Standpunkten, Lagen von Lichtquellen, Spiegelungen und Transparenz der Objektoberfläche sowie Farbe eine realistische Anzeige des dreidimensionalen Modells dar, welches durch die Erzeugungseinheit für dreidimensionale Modelle 15 oder die Bearbeitungseinheit für dreidimensionale Modelle 16 erhalten wurde.
- Die Meßeinheit für dreidimensionale Daten 14 führt verschiedene Messungen in bezug auf das durch den Formatumwandler für dreidimensionale Daten 11 erzeugte Standard-Datenformat durch. Zum Beispiel ermittelt in dem Fall des vorstehend genannten Bereichbilds die Meßeinheit 14 die Entfernung zwischen zwei wahlfrei vorgegebenen Punkten auf dem Bild im dreidimensionalen Raum und berechnet die Fläche und das Volumen einer beliebigen in dem Bild gezeichneten geschlossenen Region im dreidimensionalen Raum.
- Der Umkehrumwandler für dreidimensionale Modelle 18 wandelt die Daten des dreidimensionalen Modells, welches von der Erzeugungseinheit für dreidimensionale Modelle 15 oder der Bearbeitungseinheit für dreidimensionale Modelle 16 erhalten wurde, in dreidimensionale Daten mit einem anderen Format um.
- Nachstehend wird ein Verfahren zum Umwandeln des vorstehend genannten Polygonmodells in ein Bereichbild als ein Beispiel beschrieben. Die Umwandlung kann durch Aufzeichnen des Z-Werts jedes Punkts unter Verwendung eines Z-Puffer-Algorithmus erfolgen, welches eine Art der Verarbeitung zum Eliminieren verborgener Oberflächen ist.
- Nachstehend wird ein anderes Beispiel der Verarbeitung in bezug auf einen speziellen Fall beschrieben.
- Es sei angenommen, daß mehrere durch Röntgenstrahlen oder NMR erhaltene Computertomographien (CT-Bilder) als dreidimensionale Daten zur Verfügung stehen.
- Der Formatumwandler für dreidimensionale Daten 11 wandelt die dreidimensionalen Daten in das Format eines dreidimensionalen Bilds um, welches ein "Standard-Datenformat" des Systems ist. Im Einzelnen führt der Umwandler 11 eine Umwandlung des Abtastintervalls (Auflösung) durch. Das hier erwähnte dreidimensionale Bild bezieht sich auf ein Bild, in welchem der dreidimensionale Raum in kubische Gitter segmentiert und ein Dichtewert jedem kleinen Kubus zugewiesen ist.
- Der Verarbeitungsprozessor für dreidimensionale Daten 13 führt eine Segmentierungsverarbeitung durch, wie beispielsweise die Extraktion von charakteristischen Regionen, die Extraktion von Oberflächen, die Extraktion von Ebenen und verschiedenen Krümmungsoberflächenregionen, und die Extraktion von Rückenlinien usw. aus dem dreidimensionalen Bild.
- Auf der Grundlage der Ergebnisse der von dem Verarbeitungsprozessor für dreidimensionale Daten 13 durchgeführten Verarbeitung erzeugt die Erzeugungseinheit für dreidimensionale Modelle 15 ein dreidimensionales Modell, wie beispielsweise ein Polygonmodell, ein parametrisches Modell, ein auf Grenzdarstellung basierendes Modell oder ein Festmodell.
- Nachstehend wird ein Verfahren zum Erzeugen eines Festmodells mit allgemeinen Begriffen als ein Beispiel beschrieben. In Bezug auf eine durch den Verarbeitungsprozessor für dreidimensionale Daten 13 extrahierte charakteristische Region wird ein "Belegt"-Code auf die kleinen Kuben im Innern angewandt, wird ein "Unbelegt"-Code auf kleine Regionen angewandt, welche andere Regionen als die vorstehenden sind, und wird ein Festmodell des Objekts als eine Gruppe der kleinen, das Innere füllenden Kuben erzeugt.
- Die Bearbeitungseinheit für dreidimensionale Modelle 16 führt Operationen durch wie beispielsweise das Ändern der Formparameter des durch die Erzeugungseinheit für dreidimensionale Modelle 15 erhaltenen dreidimensionalen Modells und das Kombinieren der Formmodelle einer Vielzahl von Objekten, die im voraus gespeichert worden waren.
- Die Anzeigeeinheit für dreidimensionale Modelle 17 stellt eine realistische Anzeige des dreidimensionalen Modells dar, welches durch die Erzeugungseinheit für dreidimensionale Modelle 15 oder die Bearbeitungseinheit für dreidimensionale Modelle 16 erhalten wurde, durch Bereitstellen von Parametern wie beispielsweise Standpunkten, Lagen von Lichtquellen, Spiegelungen und Transparenz der Objektoberfläche sowie Farbe. Die Anzeigeeinheit 17 ruft Anzeigeroutinen auf, die den Arten von jeweiligen Formmodellen entsprechen.
- Die Meßeinheit für dreidimensionale Daten 14 führt verschiedene Messungen in bezug auf das durch den Formatumwandler für dreidimensionale Daten 11 erzeugte Standard-Datenformat durch. Zum Beispiel ermittelt in dem Fall des vorstehend genannten dreidimensionalen Bilds die Meßeinheit 14 die Entfernung zwischen zwei wahlfrei vorgegebenen Punkten auf dem Bild im dreidimensionalen Raum und berechnet die Fläche und das Volumen einer beliebigen in dem Bild gezeichneten geschlossenen Region im dreidimensionalen Raum.
- Der Umkehrumwandler für dreidimensionale Modelle 18 wandelt die Daten des dreidimensionalen Modells, welches durch die Erzeugungseinheit für dreidimensionale Modelle 15 oder die Bearbeitungseinheit für dreidimensionale Modelle 16 erhalten wurde, in dreidimensionale Daten mit einem anderen Format um.
- Nachstehend wird ein Verfahren zum Umwandeln des vorstehend genannten Festmodells in ein Bereichbild als ein Beispiel beschrieben. Die Umwandlung kann durch Aufzeichnen des Z-Werts entsprechend jedem Punkt unter Verwendung eines Z-Puffer-Algorithmus erfolgen, welches eine Art der Verarbeitung zum Eliminieren verborgener Oberflächen ist.
- In Übereinstimmung mit der Vorrichtung zur Verarbeitung dreidimensionaler Modelle dieses Ausführungsbeispiels, wie sie vorstehend beschrieben wurde, kann ein dreidimensionales Modell unabhängig von der Art von in unterschiedlichem Format eingegebenen dreidimensionalem Daten erzeugt werden, und kann das Modell editiert werden. Darüber hinaus kann das Modell erforderlichenfalls mit Schattierungen angezeigt werden. Sobald ein dreidimensionales Modell erzeugt worden ist, können darüber hinaus die Daten desselben in dreidimensionale Daten mit einem anderen Format umgewandelt werden.
- Fig. 3 ist ein Diagramm, das das in dem Programmspeicher 1 gespeicherte Programm und die in dem Datenspeicher 2 gespeicherten Daten zeigt. Die in dem unter (a) in Fig. 3 gezeigten Programmspeicher 1 gespeicherten Programme sind wie folgt: ein Achsennormalisierungsprogramm 201 zum Umwandeln des Typs des Bereichbilds und Normalisieren jeder Achse; ein Sprungkanten-Erfassungsprogramm 202 zum Erfassen von Sprungkanten aus einem Bereichbild; ein lineares Partielldifferential-Berechnungsprogramm 203 zum Berechnen eines linearen partiellen Differentials aus einem Bereichbild; ein quadratisches Partielldifferential-Berechnungsprogramm 204 zur Berechnung eines quadratischen partiellen Differentials aus einem Bereichbild; ein Lokallinearebenen-Approximationsprogramm 205 zum Approximieren eines Bereichbilds als eine lokale lineare Ebene und Berechnen der Koeffizienten der Gleichung derselben; ein Lokalquadratoberflächen-Approximationsprogramm 206 zum Approximieren eines Bereichbilds als eine lokale quadratische Oberfläche und Berechnen der Koeffizienten der Gleichung derselben; ein Gaußsche Krümmung-Berechnungsprogramm 207 zum Berechnen einer Gaußschen Krümmung; ein mittlere Krümmung-Berechnungsprogramm 208 zum Berechnen einer mittleren Krümmung; ein normale Krümmung-Berechnungsprogramm 209 zum Berechnen einer normalen Krümmung; ein Radius-der-Krümmung-Berechnungsprogramm 210 zum Berechnen des Radius einer Krümmung; ein Gaußsche Krümmung-Vorzeichen-Unterscheidungsprogramm 211 zum Unterscheiden des Vorzeichens einer Gaußschen Krümmung; ein mittlere Krümmung-Vorzeichen-Unterscheidungsprogramm 212 zum Unterscheiden des Vorzeichens einer mittleren Krümmung; ein Oberflächenkategorie-Unterscheidungsprogramm 213 zum Unterscheiden der Kategorie einer Oberfläche auf der Grundlage einer Kombination des Vorzeichens der Gaußschen Krümmung und dem Vorzeichen der mittleren Krümmung; ein Normalenvektor-Berechnungsprogramm 214 zum Berechnen eines Einheitsnormalenvektors aus einem linearen Partielldifferentialbild; und ein Dachkanten-Berechnungsprogramm 215 zum Berechnen einer Dachkante aus einem Einheitsnormalenvektor. Die jedem Programm zugeordnete Verarbeitung wird später beschrieben.
- Die in dem unter (b) in Fig. 3 gezeigten Datenspeicher gespeicherten Daten sind wie folgt: ein Eingangsbereichbild 221, das durch eine Bereichbild-Eingabeeinheit oder dergleichen eingegeben wurde; ein Sprungkantenbild 222, das aus einem Bereich Bild erfaßt wurde; ein lineares Partielldifferentialbild 223, das aus einem Bereichbild erfaßt wurde; ein quadratisches Partielldifferentialbild 224, das aus einem Bereichbild erfaßt wurde; ein Koeffizientenbild 225, das aus einem Bereichbild erfaßt wurde; ein berechnetes Gaußsche Krümmung-Bild 226; ein berechnetes mittlere Krümmung-Bild 227; ein berechnetes normale Krümmung-Bild 228; ein berechnetes Radius-der-Krümmung-Bild 229; ein Normalenvektorbild 230, das einen berechneten Einheitsnormalenvektor darstellt; ein berechnetes Gaußsche Krümmung-Vorzeichen-Bild 231; ein berechnetes mittlere Krümmung- Vorzeichen-Bild 232; ein berechnetes Oberflächenkategorienbild 233; und ein berechnetes Dachkantenbild 234.
- Fig. 4 ist ein Ablaufdiagramm, das den Ablauf dieses Ausführungsbeispiels veranschaulicht.
- Nachstehend wird der Ablauf der gesamten Verarbeitung dieses Ausführungsbeispiels unter Bezugnahme auf das in Fig. 4 gezeigte Ablaufdiagramm beschrieben.
- In bezug auf den Beginn der Verarbeitung sei angenommen, daß bereits ein Bereichbild durch Messen eines Objekts unter Verwendung beispielsweise des Laserbereichfinders 7 eingegeben und das Bild in dem Datenspeicher 2 gespeichert wurde. Es wird angemerkt, daß das der Verarbeitung zu unterziehende Bereichbild nicht auf eines beschränkt ist, das auf einer solchen tatsächlichen Messung basiert, sondern eines sein kann, das aus künstlichen Daten zusammengesetzt ist, wie sie aus einer Bilddatenbank oder dergleichen erhalten werden. Für eine detaillierte Diskussion eines Verfahren zum Erhalten eines Bereichbilds vgl. "Measurement of Three-Dimensional Images" von Iguchi und Sato; Shoshodo (1990).
- Zunächst wird in einer Anfangsverarbeitung das gespeicherte Bereichbild extrahiert (Schritt S301) und das Bild auf der Anzeigeeinheit angezeigt (Schritt S302). Sodann wird der Typ des Bereichbilds umgewandelt und die Normalisierung entlang jeder Koordinatenachse ausgeführt (Schritt S303). Das so umgewandelte Bereichbild wird in den nachstehend dargestellten Berechnungen verwendet. Hierauf folgt die Erfassung von Sprungkanten und die Anzeige derselben (Schritte S304, S305). Lineare und quadratische partielle Differentiale werden berechnet, und die Werte derselben werden angezeigt (Schritte S306 ~ S309). Die Anwendung erfolgt auf eine lokale lineare Ebene und eine quadratische Oberfläche, und die Ergebnisse hiervon werden angezeigt (Schritte S310 ~ S312). Die Gaußsche Krümmung, die mittlere Krümmung, die normale Krümmung, der Radius der Krümmung und der Einheitsnormalenvektor werden unter Verwendung der berechneten Werte der partiellen Differentiale berechnet (Schritte S313, S314; S317 ~ S320; S327 ~ S330). Ferner werden Vorzeichentabellen aus den erhaltenen Krümmungen erzeugt, und werden die Tabellen angezeigt (Schritte S321 ~ S324). Auf der Grundlage der Werte der Vorzeichen wird die Oberflächenkategorie unterschieden und angezeigt (Schritte S325, S326). Dachkanten werden aus dem berechneten Einheitsnormalenvektor erfaßt, und diese werden angezeigt (Schritte S315, S316).
- Jeder dieser Verarbeitungsbetriebsabläufe wird nachstehend ausführlich beschrieben.
- Es wird ein Bereichbild ausgegeben, welches Bild einer Dichteumwandlung derart unterzogen wurde, daß die tatsächliche Länge entsprechend einer Quanteneinheit entlang der z-Achse mit der tatsächlichen Länge eines Pixels entlang der x-Achse des eingegebenen Bilds und der tatsächlichen Länge eines Pixels entlang der y-Achse des eingegebenen Bilds übereinstimmt.
- Die tatsächliche Länge entsprechend einem Pixel entlang der x-Richtung und die tatsächliche Länge entsprechend einem Pixel entlang der y-Richtung seien beide Δx, und die tatsächliche Länge entsprechend einer Quanteneinheit entlang der z-Achse sei Δz. Der Wert zi jedes Pixels des eingegebenen Bereichbilds wird in das folgende z&sub0; (x,y) umgewandelt:
- z&sub0; (x,y) = zi (x,y) · Δz/Δx ...(0)
- In der nachfolgenden Verarbeitung wird das umgewandelte z verwendet.
- Ein Abschnitt, in welchem die Entfernung von einem Standpunkt diskontinuierlich ist, wird in dem Eingangsbild erfaßt. Ein Abschnitt, für welchen der Maximalwert des Entfernungsunterschieds in der Umgebung von 8 liegt und größer ist als ein Schwellenwert, wird erfaßt.
- Wenn die Schwelle den Schwellenwert repräsentiert, ist JumpEdge (Sprungkante) in der folgenden Gleichung als der Wert jedes Pixels gegeben:
- JumpEdge(x,y) = Max { Z(x,y) - Z(x + k,y + 1) : -1 ≤ k, 1 ≤ 1} ...(1)
- Eine Oberfläche wird als eine lokale lineare Ebene approximiert, und die Parameter der Gleichung derselben werden berechnet. Im Einzelnen wird jeder Koeffizient durch eine Approximation kleinster Quadrate berechnet, in welcher die Objektoberfläche S des Bereichbilds S = [x,y, - Z(x,y)] ist und ein Fenster von winsize² für die Ebene ax + by + c = -z verwendet wird.
- Der Operator zum Berechnen jedes Koeffizienten wird auf die folgende Art und Weise entschieden: Bei winsize die Fenstergröße (die Anzahl von Pixeln, die eine Seite eines quadratischen Fensters bilden) des Operators; und sei dies eine beliebige positive ungerade Zahl.
- A·C = B ... (2)
- wobei angenommen wird, daß das Folgende erfüllt ist:
- in welchem Fall sich ergibt:
- In Anbetracht eines Fensters der Größe winsize = (2w + 1) wie in Fig. 5 gezeigt, ergibt sich das Folgende, wenn der Ursprung im Zentrum dieses Fensters angenommen wird:
- Wenn
- erfüllt ist und wenn jedes Element durch
- (eij) ... (6)
- repräsentiert wird, ergibt sich
- Im Einzelnen ergibt sich
- a = e&sub1;&sub1; xi·(-zi) b = e&sub2;&sub2; yi·(-zi) c = e&sub3;&sub3; yi·(-z) ... (8)
- Ein Ebenenschätzoperator von winsize = 3, 5 (3·3, 5·5) wird als ein Beispiel veranschaulicht.
- (a) Im Fall der Fenstergröße 3·3 (winsize = 3, w = 1)
- w = 1 wird in Gleichung (6) substituiert, um E (d. h. e&sub1;&sub1;, e&sub2;&sub2;, e&sub3;&sub3;) zu erhalten, und (x&sub1;, x&sub2;, ..., xn), (y&sub1;, y&sub2;, ..., yn) werden in Gleichung (8) substituiert, um den folgenden Operator zu erhalten. Dieser Operator wird zum Multiplizieren von B (d. h. in dem Bereichbild) verwendet.
- (b) Im Fall der Fenstergröße 5·5 (winsize = 5, w = 2)
- Der folgende Operator wird auf dieselbe Art und Weise wie in vorstehend (a) erhalten:
- Die Objektoberfläche S = [x,y, - Z(x,y)] des Bereichbilds wird durch Approximation kleinster Quadrate auf einer quadratischen Oberfläche ax² + by² + cxy + dx + ey + f = -z befestigt, und jeder Koeffizient wird berechnet.
- Der Operator zum Berechnen jedes Koeffizienten wird durch eine Näherung erhalten, die dieselbe ist wie die, die bei der vorstehend beschriebenen Anpassung basierend auf einer lokalen Ebene verwendet wird. Obwohl eine detaillierte Beschreibung weggelassen wird, sind zwei Arten von Operatoren in Fig. 6 gezeigt.
- Lineare quadratische partielle Differentiale (Schritte S306, S308)
- Ein lineares oder quadratisches partielles Differential wird aus einem Bereichbild durch die folgenden drei Verfahren berechnet: (1) das partielle Differential wird durch direktes Anwenden eines Partielldifferentialoperators erhalten; (2) das partielle Differential wird aus Koeffizienten einer lokalen Ebenengleichung erhalten, die einer Anpassung unterzogen wurde; (3) das partielle Differential wird aus Koeffizienten einer lokalen quadratischen Oberflächengleichung erhalten, die einer Anpassung unterzogen wurde.
- (1) Funktion zum Erhalten des partiellen Differentials direkt aus dem ursprünglichem Bild
- Zwei Arten von Partielldifferentialoperatoren sind in Fig. 7 beispielhaft dargestellt.
- (2) Funktion zum Erhalten des linearen partiellen Differentials aus Koeffizienten der lokalen Ebene, die der Anpassung unterzogen wurde
- Der differentielle Wert eines bestimmten interessierenden Punkts wird durch das folgende Verfahren berechnet:
- Es sei angenommen, daß n, m die Operatorgröße (die Anzahl von Pixeln, die eine Seite eines Fensters bilden) darstellen. Wie in Fig. 8 gezeigt ist, werden n · m Fenster mit einer Größe von n · m und enthaltend das interessierende Pixel vorbereitet, und werden diese Fenster in Übereinstimmung mit dem in der Beschreibung der Anpassung basierend auf einer lokalen quadratischen Ebene beschriebenen Verfahren so ausgestaltet, daß sie -Z(x,y) = ax + by + c annähern. Ein Fenster, für welches eine Varianz in dem Absolutwert eines Fehlers minimal ist, wird aus den n · m Fenstern ausgewählt, und der differentielle Wert des interessierenden Pixels wird aus der Gleichung dieses Fensters erhalten. In dem Fall einer Ebene werden die folgenden Gleichungen erhalten, wenn der partielle differentielle Wert aus der Gleichung ax + by + c = -z einer angepaßten Ebene berechnet wird:
- Zx = -a ... (9)
- Xy = -b
- (3) Funktion zum Erhalten des partiellen Differentials aus Koeffizienten der lokalen quadratischen Oberfläche, welche der Anpassung unterzogen wurde
- Der differentielle Wert eines bestimmten interessierenden Punkts wird durch das folgende Verfahren berechnet:
- Es sei angenommen, daß n, m die Operatorgröße (die Anzahl von Pixeln, die eine Seite eines Fensters bilden) repräsentiert. Wie in Fig. 8 gezeigt ist, werden n · m Fenster mit einer Größe von n · m und enthaltend das interessierende Pixel vorbereitet, und werden diese Fenster in Übereinstimmung mit dem in der Beschreibung der Anpassung basierend auf einer lokalen quadratischen Oberfläche beschriebenen Verfahren so ausgestaltet, daß sie -Z(x,y) = ax + by + c annähern. Ein Fenster, für welches eine Varianz in dem Absolutwert eines Fehlers minimal ist, wird aus den n · m Fenstern ausgewählt, und der differentielle Wert des interessierenden Pixels wird aus der Gleichung dieses Fensters erhalten. In dem Fall einer Ebene werden die folgenden Gleichungen erhalten, wenn der partielle differentielle Wert aus der Gleichung ax² + by² + cxy + dx + ey + f = -z einer angepaßten Ebene berechnet wird:
- Zx = -2ax - cy - d
- Zy = -2by - cx - e
- Zxx = 2a
- Zyy = 2b
- Zxy = c ...(10)
- Der Normalenvektor einer lokalen Tangentenebene einer Oberfläche wird als ein Einheitsvektor der Größe 1 berechnet.
- Das Eingangsbild ist ein lineares partielles differentielles Bild.
- Das x-, y- und z-Komponenten des Einheitsnormalenvektors werden auf der Grundlage der folgenden Gleichungen berechnet:
- Einheitsnormalenvektor (x,y,z) = (N&sub1;,N&sub2;,N&sub3;) ... (11)
- N&sub1; = Zx/
- N&sub2; = Zy/
- N&sub3; = -1/
- worin Zx ein lineares partielles Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert, und Zy ein lineares partielles Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert.
- Gleichung (11) beruht auf der Berechnung der folgenden Gleichung.
- Die Oberfläche eines von diesem Verfahren gehandhabten Bereichbilds ist
- S = [x,y,-Z(x,y)]
- Ein durch die folgende Gleichung angegebener Normalenvektor wird als das äußere Produkt eines linearen partiellen Differentials Sx = (1,0,-Zx) basierend auf der x-Komponente von S und eines linearen partiellen Differentials Sy = (1,0,-Zy) basierend auf der y-Komponente von S erhalten:
- N = (Zx,Zy,-1) ... (12)
- Wenn dies als ein Einheitsvektor der Größe 1 übernommen wird, wird Gleichung (11) erhalten.
- Ein Krümmungspunkt in einer Entfernung von einem Standpunkt wird extrahiert. Das Eingangsbild ist ein Normalenvektorbild.
- Ein Abschnitt, für welchen der Maximalwert der Winkeldifferenz des Einheitsnormalenvektors in der Umgebung von 8 liegt und größer ist als ein Schwellenwert, wird erfaßt. RoofEdge (Dachkante) in der folgenden Gleichung ist als der Wert jedes Pixels gegeben:
- RoofEdge (x,y) = Max{ N(x,y)·N(x + k,y + 1) : -1 ≤ k, 1 ≤ 1}
- ... (13)
- worin N(x,y) den folgenden Normalenvektor repräsentiert:
- N(x,y) = [N&sub1;(x,y), N&sub2;(x,y), N&sub3;(x,y)]
- N&sub1;(x,y) ist das x-Komponentenbild des Vektors in der Einheitsnormalenrichtung;
- N&sub2;(x,y) ist das y-Komponentenbild des Vektors in der Einheitsnormalenrichtung;
- N&sub3;(x,y) ist das z-Komponentenbild des Vektors in der Einheitsnormalenrichtung
- Jeder partielle differentielle Wert wird in die folgende Gleichung eingefügt, um die Gaußsche Krümmung K zu berechnen:
- worin
- Zx das lineare partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zy das lineare partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert;
- Zxx das quadratische partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zyy das quadratische partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert; und
- Zxy das quadratische partielle Differential basierend auf den x- und y-Komponenten der Entfernungsdaten repräsentiert.
- Jeder partielle differentielle Wert wird in die folgende Gleichung eingefügt, um mittlere Krümmung H zu berechnen:
- worin
- Zx das lineare partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zy das lineare partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert;
- Zxx das quadratische partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zyy das quadratische partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert; und
- Zxy das quadratische partielle Differential basierend auf den x- und y-Komponenten der Entfernungsdaten repräsentiert.
- Erzeugung der Vorzeichentabelle der Gaußschen Krümmung (Schritte S321, S322)
- Es sei angenommen, daß kimg(x,y) ein eingegebenes Bild mit Gaußscher Krümmung repräsentiert, und daß thk einen Schwellenwert (float) repräsentiert, der das Vorzeichen festlegt.
- Ein Bild, in welchem die folgenden Klassen für jedes der Pixel gegeben sind, wird ausgegeben:
- kimg(x,y) < -thk ist Klasse 1, in der die Gaußsche Krümmung als negativ betrachtet wird;
- - thk < kimg(x,y) < -thk ist Klasse 2, in der die Gaußsche Krümmung als null betrachtet wird; und
- kimg (x,y) > -thk ist Klasse 3, in der die Gaußsche Krümmung als positiv betrachtet wird.
- Es sei angenommen, daß himg(x,y) ein eingegebenes Bild mit mittlerer Krümmung repräsentiert, und daß thh einen Schwellenwert (float) repräsentiert, der das Vorzeichen festlegt.
- Ein Bild, in welchem die folgenden Klassen für jedes der Pixel gegeben sind, wird ausgegeben:
- himg(x,y) < -thh ist Klasse 1, in der die mittlere Krümmung als negativ betrachtet wird;
- - thh < himg(x,y) < -thh ist Klasse 2, in der die mittlere Krümmung als null betrachtet wird; und
- himg(x,y) > -thh ist Klasse 3, in der die mittlere Krümmung als positiv betrachtet wird.
- Oberflächen werden auf der Grundlage der Theorie der Differentialgeometrie in acht Oberflächentypen klassifiziert. Hier repräsentieren thk, thh Schwellenwerte (float), welche das Vorzeichen festlegen. Eine detaillierte Diskussion der Differentialgeometrie gekrümmter Oberflächen ist in der folgenden Literatur gegeben:
- "An Outline of Differential Geometry" von Chuji Adachi, Baifukan, (1976);
- "Differential Geometry of Curved Lines and Curved Surfaces" von Shoshichi Kobayashi, Shokado, (1977); und
- "Introduction to Differential Geometry and Topology" von Honma und Okabe, Basic Mathematics Series 6, Shinyosha, (1979).
- Beispiele, in welchen dieses bei der Segmentierung eines Bereichbilds genutzt wird, sind wie folgt:
- "A Hybrid Technique for Segmenting a Range Image based upon Differential Geometric Characteristics" von Naokazu Yokoya und Martin D. Levine, Joshoron, Band 30, Nr. 8, Seiten 944-953 (1989);
- "Surfaces in Range Image Understanding " von Paul J. Besel, Springer-Verlag, (1988); und
- "Invariant Surface Characteristics for 3-D Object Recognition in Range Images " von Paul J. Besel und R. C. Jain, CVGIP, 33, Seiten 33-80, (1986).
- Ein Bild, in welchem die folgenden acht Klassen für jedes der Pixel auf der Grundlage des Vorzeichens eines Bilds mit Gaußscher Krümmung kimg(x,y) und eines Bilds mit mittlerer Krümmung himg(x,y) gegeben sind, wird ausgegeben:
- kimg(x,y) > thk und himg(x,y) < -thh ist Klasse 1;
- kimg(x,y) > thk und himg(x,y) > thh ist Klasse 2;
- -thk < kimg(x,y) < thk und himg(x,y) < -thh ist Klasse 3;
- -thk < kimg(x,y) < thk und himg(x,y) > thh ist Klasse 4;
- -thk < kimg(x,y) < thk und -thh < himg(x,y) < thh ist Klasse 5;
- kimg(x,y) < -thk und -thh < himg(x,y) < thh ist Klasse 6;
- kimg(x,y) < -thk und himg(x,y) < -thh ist Klasse 7;
- kimg(x,y) < -thk und himg(x,y) > thh ist Klasse 8; und
- kimg(x,y) > himg(x,y)² (verbotene Fläche) ist Klasse 0.
- Ein Punkt in Klasse 1 wird als ein negativer elliptischer Punkt (K > 0, H < 0) bezeichnet, ein Punkt in Klasse 2 wird als ein positiver elliptischer Punkt (K > 0, H > 0) bezeichnet, ein Punkt in Klasse 3 wird als ein negativer parabolischer Punkt (K = 0, H < 0) bezeichnet, ein Punkt in Klasse 4 wird als ein positiver parabolischer Punkt (K = 0, H > 0) bezeichnet, ein Punkt in Klasse 5 wird als ein flacher Punkt (K = 0, H = 0) bezeichnet, ein Punkt in Klasse 6 wird als ein Minimumpunkt (K < 0, H = 0) bezeichnet, ein Punkt in Klasse 7 wird als ein negativer hyperbolischer Punkt (K < 0, H < 0) bezeichnet, und ein Punkt in Klasse 8 wird als ein positiver hyperbolischer Punkt (K < 0, H > 0) bezeichnet. Diese gekrümmten Oberflächen sind in Fig. 9 gezeigt.
- Die normale Krümmung entlang jeder der x- und der y-Achsen, wenn diese durch eine gerade Linien, die parallel zu der z-Achse und entweder der x-Achse oder der y-Achse sind, enthaltende Ebene geschnitten werden, wird für jedes Pixel berechnet.
- Jeder Pixelwert von eingegebenen linearen und quadratischen Partielldifferentiellbildern wird in die folgenden Gleichungen substituiert, um normale Krümmungen κx, κy entlang den jeweiligen x- und y-Richtungen zu berechnen:
- Normale Krümmung kx = Zxx/(1 + Zx)2/3
- ky = Zyy/(1 + Zy)2/3 ... (16)
- worin
- Zx das lineare partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zy das lineare partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert;
- Zxx das quadratische partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert; und
- Zyy das quadratische partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert.
- Der Radius der Krümmung (1/normale Krümmung) entlang jeder der x- und der y-Achsen, wenn diese durch eine gerade Linien, die parallel zu der z-Achse und entweder der x-Achse oder der y-Achse sind, enthaltende Ebene geschnitten werden, wird für jedes Pixel berechnet.
- Jeder Pixelwert von eingegebenen linearen und quadratischen Partielldifferentiellbildern wird in die folgenden Gleichungen substituiert, um Krümmungsradien ρx, ρy zu berechnen:
- Radius der Krümmung ρx = 1/κx = (1 + Zx)2/3/Zxx
- ρy = 1/κy = (1 + Zy)2/3/Zyy ... (17)
- worin
- Zx das lineare partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert;
- Zy das lineare partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert;
- Zxx das quadratische partielle Differential basierend auf der x-Komponente der Entfernungsdaten repräsentiert; und
- Zyy das quadratische partielle Differential basierend auf der y-Komponente der Entfernungsdaten repräsentiert.
- In Übereinstimmung mit dem ersten Ausführungsbeispiel wie vorstehend beschrieben werden durch Bereitstellen eines Schritts zum Umwandeln des Typs eines Bereichbilds und Normalisieren jeder Achse Pixelwerte in Übereinstimmung mit der Art von Daten, welche für jedes Pixel eines eingegebenen Bereichbilds gegeben ist, unter Verwendung von Parametern wie beispielsweise den Abbildungsmaßstab entlang jeder Achse des Koordinatensystems berechnet. Infolgedessen braucht die Beziehung zwischen dem Koordinatensystem, in welchem ein Objekt plaziert ist, und dem Koordinatensystem des Bilds nicht im voraus festgelegt zu werden, und ist es unnötig, Parameter wie beispielsweise den Abbildungsmaßstab entlang jeder der Koordinatenachsen jedesmal dann vorzugeben, wenn die Verarbeitung durchgeführt wird.
- Fig. 10 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem zweiten Ausführungsbeispiel der Erfindung zeigt.
- In dem Programmspeicher 1 gespeicherte Programme sind ein Bereichbild-Anzeigeprogramm 111 zum dreidimensionale Anzeigen eines eingegebenen Bereichbilds, ein Hauptachsenbestimmungs- und Benutzerschnittstellenprogramm 112 zum Bestimmen einer Hauptachse der Rotation bzw. Drehung in bezug auf ein angezeigtes Bereichbild, ein Formmodell-Aufbauprogramm 113 zum Aufbauen eines dreidimensionalen Modells einschließlich einer (rückseitigen) Hintergrund-Oberfläche in Antwort auf die Eingabe des Bereichbilds und der Hauptachse, und ein Formmodell-Anzeigeprogramm 114 zum Durchführen eines Renderbetriebsablaufs durch Anwenden von Beleuchtung und Schattierung usw. auf das erhaltene dreidimensionale Modell.
- Die in dem Datenspeicher 2 gespeicherten Daten beinhalten Bereichbilddaten 121, die von einem Bereichmeßsensor oder einer Bereichbild-Datenbank zugeführt wurden, und dreidimensionale Daten 122, die durch die Verarbeitung dieses Ausführungsbeispiels aufgebaut werden.
- Nachstehend wird ein vereinfachtes Ablaufdiagramm des Algorithmus gemäß diesem Ausführungsbeispiel unter Bezugnahme auf Fig. 11 beschrieben.
- Zunächst werden in Schritt S101 Daten mit dem vorstehend erwähnten Bereichbildformat von einer (nicht gezeigten) dreidimensionalen Meßeinheit oder einer (nicht gezeigten) Bereichbild-Datenbank zum Messen eines Objekts auf der Grundlage eines Bereichbild-Meßverfahrens wie beispielsweise Lichtlaufzeitmessung oder Triangulation erhalten. In Bezug auf die Messung des Bereichbilds gibt es außer dem vorstehend erwähnten Parallelprojektionssystem die nach dem Prinzip der Zentralprojektion und der zylindrischen Projektion arbeitenden Systeme. In dem gegenwärtigen Schritt wird eine Umwandlung in den Koordinatenraum eines Projektionssystem (das Parallelprojektionssystem) durchgeführt, und wird die nachfolgende Verarbeitung vereinheitlicht. Ein Punkt, an dem der Bereich größer ist als ein fester Wert, wird als Unendlich verwendet, um diesen als Hintergrund zu betrachten; er wird nicht als Teil eines Objekts betrachtet. Das kennzeichnende Merkmal dieses Ausführungsbeispiels liegt in der Verarbeitung nach der Gewinnung von Daten, so daß daher die vorstehend beschriebene Verarbeitung nicht ausführlich beschrieben wird.
- Da das im erhaltene Bereichbild im wesentlichen eine Gitterstruktur hat, werden in Schritt S102 die Diagonalen der Gitterform verbunden, um die Bereichdaten in eine Reihe von dreieckigen Polygonen umzuwandeln, wie in Fig. 7 gezeigt ist, und wird unter Verwendung einer Graphikbibliothek wie beispielsweise PHIGS eine Parallelprojektion auf eine zweidimensionale Ebene durchgeführt.
- In Schritt S103 wird die Hauptachse eines Objekts mit axialer Symmetrie festgelegt, nachdem das dreidimensionale Objekt auf diese Art und Weise im zweidimensionalem Raum angezeigt wird. Da jedoch Tiefeninformationen im zweidimensionalem Raum nicht präzise widergespiegelt werden können, wird die Hauptachse unter Verwendung eines auf drei Oberflächen (obere Oberfläche, vordere Oberfläche und seitliche Oberfläche) parallelprojizierten Bilds festgelegt. Dieses Verfahren wird unter Bezugnahme auf Fig. 12 beschrieben.
- Fig. 12 zeigt eine Zeichnung dreier Ansichten, die erhalten werden, wenn ein zylindrisches Objekt aus der Richtung +∞ entlang der z-Richtung parallelprojiziert wird. Das dreidimensionale Koordinatensystem verwendet ein rechtsgerichtetes Koordinatensystem. Als ein Beispiel zum Festlegen einer Hauptachse wird zunächst die Aufsicht der Ansicht dreier Oberflächen herangezogen und werden Punkte 41, 42 mittels einer Maus angeklickt, um die Position von x,z zu spezifizieren. Die beiden auf diese Art und Weise erhaltenen Punkte werden vergleichbar als Punkte 41', 42' in der Vorder- und der Seitenansicht widergespiegelt.
- Als nächster Schritt wird zunächst Punkt 41' in der Vorderansicht ausgewählt und (durch Ziehen der Maus 5) zu der tatsächlichen Position 41" gezogen, wodurch der y-Koordinatenwert bestimmt wird. Wenn der Punkt 42' auf ähnliche Art und Weise auf den Punkt 42" gezogen wird, dient die die Punkte 41" und 42" verbindende gerade Linie als Hauptachse der Drehung. Dieses Bestimmen und Ziehen von Punkten kann leicht durch Angeben einer Betriebsart unter Verwendung eines aufklappenden Auswahlmenüs erreicht werden, zum Beispiel in einem Fenstersystem.
- Der nächste Schritt S105 ist ein zentraler Schritt zum Aufbauen eines dreidimensionalen Modells ausgehend von der Hauptachse und den Bereichdaten. Dieser Algorithmus wird unter Verwendung von Fig. 13 beschrieben. Es sei angenommen, daß die durch den Algorithmus dieses Ausführungsbeispiels aufgebaute dreidimensionale Form ein Polygonmodell ist. Ein Beispiel eines einfachen Kubus bzw. Würfels ist in Fig. 14 als ein Beispiel der Datenstruktur veranschaulicht. In Fig. 14 zeigt (a) ein Beispiel der Datenstruktur, und drückt (b) die Datenstruktur von (a) als eine kubische Form aus. Hier repräsentieren x&sub0;, y&sub0; und Z&sub0; Schnittpunkte zwischen der Oberfläche des Kubus und jeder Achse.
- Die Datenstruktur dieses Ausführungsbeispiels ist grob in zwei Teile unterteilt. Die erste Hälfte von Fig. 14(a) ist ein Abschnitt, in welchem ein Polygon bildende Spitzeninformationen bestimmt sind. Die wesentlichen Daten sind die (X,Y,Z)-Werte der Koordinaten der Spitzen, wie beispielsweise (-1.0,-1.0,-1.0) in Fig. 14(a), und die Werte (Nx,Ny,Nz) des Normalenvektors an einer optionalen Spitze, wie etwa (-0.57735,-0.57735,-0.57735) in Fig. 14(a). Der Abschnitt der zweiten Hälfte gibt die Konnektivität von Rückenlinien an, die das Polygon bilden, in bezug auf die bestimmten Spitzeninformationen, welches Phaseninformation ist. Anfänglich gibt es n das Polygon bildende Rückenlinien (vier in dem Quadrat von Fig. 14 (a)), und diesen folgen Indexwerte für n ein Polygon bildende Indexspitzen. [Indizes von 0 ~ n-1 werden in Reihenfolge zu den Spitzenkoordinaten der ersten Hälfte hinzugefügt, und die Indizes der das Polygon bildenden Spitzen werden in einer Reihe angeordnet, wie beispielsweise (0, 1, 2, 3) in Fig. 14 (a). Diese sind als Punkte 0 bis 7 in der kubischen Form von Fig. 14 (b) angegeben.] In der endgültigen Datenstruktur des Kubus wird eine Vielzahl von Polygonen in einer Ebenen kombiniert, und bilden die Polygone ein Quadrat. In Fig. 14 (b) ist aus Gründen der Einfachheit ein Kubus dargestellt. Es ist jedoch offensichtlich, daß ein dreidimensionales Modell wie beispielsweise ein Zylinder auf dieselbe Art und Weise gebildet wird; lediglich die Datenmenge ist größer, und die Datenstruktur ist komplizierter.
- In Schritt S501 werden Phaseninformationen, welche Konnektivitätsinformationen in bezug auf die Spitzen sind, nach der Extraktion von Spitzeninformationen eines durch die schwarzen Punkte in dem Bereichbild auf der Sensorseite der erhaltenen Gitterform angegebenen Teils des Objekts aufgebaut (vgl. Fig. 15, welches ein Beispiel ist, in welchem die Auflösung verringert ist, um die Beschreibung zu vereinfachen). Im Wesentlichen wird das durch den Algorithmus dieses Ausführungsbeispiels erzeugte Polygon dank der Leichtigkeit der Verarbeitung als ein Dreieck ausgebildet. Wenn die Phaseninformationen aufgebaut werden, wird die Verarbeitung für jede Abtastungszeile ausgeführt, wie in Fig. 15 gezeigt. Dies wird etwas genauer beschrieben.
- Die nachstehend angegebene Verarbeitung wird durch Abtasten von Pixelwerten in Reihenfolge ausgehend von den kleineren Werten von x in der Richtung der Abtastzeilen 1, 2, ..., n entlang der y-Richtung ausgeführt. Fig. 17 veranschaulicht in Form einer Pseudocodierung den Algorithmus für den Fall, in dem Rückenlinien-Phaseninformationen durch Abtasten des Werts eines p-ten Pixels in der x-Richtung auf einer n-ten Abtastzeile aufgebaut werden. Es sei angenommen, daß in Fig. 17 eine Tiefe (p,n) den Bereichpixelwert (depth) an einem Pixel (p, n) in zwei Dimensionen repräsentiert. Die Prozedur des in Fig. 17 gezeigten Algorithmus ist das Ablaufdiagramm von Fig. 16, wenn sie in vereinfachter Form ausgedrückt wird.
- In Schritt S81 wird ermittelt, ob das aktuelle interessierende Pixel auf einem Objekt liegt. Falls das Pixel auf dem Objekt liegt, schreitet das Programm zu den Schritten S82, S83 fort, in welchen ermittelt wird, ob ein Pixel links oder rechts von dem interessierenden Pixel im Hintergrund liegt. Wenn dem so ist, wird in Schritt S84 das interessierende Pixel dann als Umriß des Objekts registriert. Sodann wird in Schritt S85 ein Flag "1" gesetzt, falls vier Pixel einschließlich des interessierenden Pixels und der Pixel darunter, rechts und darunter rechts desselben auf dem Objekt liegen, und wird ein Flag "0" gesetzt, falls diese Pixel im Hintergrund liegen. Dann wird in Schritt S86 ein Polygon (ein Dreieck in diesem Ausführungsbeispiel) erzeugt und in Übereinstimmung mit der Anzahl von Pixeln, für welche das Flag "1" ist, registriert. Zunächst wird in einem Fall, in dem die Anzahl von Pixeln, für welche das Flag "1" ist, zwei oder weniger ist, beurteilt, daß es kein Polygon gibt, und wird in Schritt S87 nichts registriert. In einem Fall, in dem die Anzahl von Pixeln, für die das Flag "1" ist, drei ist, wird beurteilt, daß es ein Polygon gibt, und werden in Schritt S88 diese drei "1"-Pixel als die Indizes von Spitzen registriert. In einem Fall, in dem die Anzahl von Pixeln, für die das Flag "1" ist, vier ist, wird beurteilt, daß es zwei Polygone gibt. Dann werden in Schritt S89 das interessierende Pixel und die Pixel darunter und rechts desselben als ein Polygon definierend beurteilt, werden die Pixel darunter rechts, darunter und rechts als ein Polygon definierend beurteilt, und werden die Indizes der Spitzen registriert. In diesem Beispiel werden kleinste Polygone von Pixeleinheiten betrachtet, aber die Polygone können in Übereinstimmung mit der Genauigkeit grobe Polygone sein.
- Die erhaltenen Phaseninformationen sind die vordere Oberfläche angebende Informationen wie von dem Sensor aus gesehen. In Schritt S503 werden Positionsinformationen, die die rückseitige. Oberfläche angeben, aus den gemessenen Bereichpixelwerten und den die Hauptachse angebenden Informationen berechnet.
- Im Einzelnen sei angenommen, daß (x&sub1;,y&sub1;,z&sub1;) und (x&sub2;,y&sub2;,z&sub2;) zwei Punkte repräsentieren, welche die Achse der Drehung festlegen, und daß (xp,yp,zp) einen bereits bekannten Bereichwert repräsentieren. Dann wird t in der nachstehenden Gleichung (18) gelöst, und wird die Lösung dazu verwendet, einen Punkt (xc,yc,zp) = (x&sub1; + t(x&sub2; - x&sub1;), y&sub1; + t (y&sub2; - y&sub1;), z&sub1; + t (z&sub2; - z&sub1;)] zu erhalten, welcher der Schnittpunkt zwischen der geraden Linie (x&sub1;,y&sub1;,z&sub1;), (x&sub2;,y&sub2;,z&sub2;) und der Vertikalen zu dieser geraden Linie ausgehend von dem Punkt (xp,yp,zp) ist. Eine Position (2xc - xp, 2yc - yp, 2Zc - zp) auf der rückseitigen Oberfläche, welche ein symmetrischer Punkt von (xp,yp,zp) in bezug auf (xc,yc,zp) ist, wird berechnet, und dies wird als Spitzeninformationen des Polygons angefügt.
- In Schritt S504 wird eine Reihe von Indizes von Spitzen, die den peripheren Umriß aus den Indexwerten der den Spitzen der rückseitigen Oberfläche entsprechenden Spitzen der vorderen Oberfläche bilden, intern gleichzeitig gespeichert, und werden Phaseninformationen der rückseitigen Oberfläche unter Verwendung der in Schritt S503 erhaltenen Phaseninformationen erzeugt. Peripherieinformationen, die eine Reihe von Indizes von Spitzen sind, die den peripheren Umriß der rückseitigen Oberfläche bilden, werden ebenfalls auf dieselbe Art und Weise wie in Schritt S502 gespeichert.
- Sodann wird, um die äußere Peripherie der vorderen Oberfläche und die äußere Peripherie der rückseitigen Oberfläche in Schritt S505 zu verbinden, die Fläche des durch die verbundenen Linien erhaltenen Dreiecks als eine Auswertungsfunktion unter Verwendung dynamischer Programmierung behandelt, und werden die vordere und die rückseitige Oberfläche verbunden, um die Kosten zu minimieren. Infolgedessen wird das durch die Verbindung erhaltene Dreieck den das Polygonmodell angebenden Informationen hinzugefügt. Somit wird das Formmodell eines festen dreidimensionalen Objekts mit axialer Symmetrie erzeugt.
- Schließlich wird in Schritt S106 das in Schritt S105 erhaltene dreidimensionale Modell [Vgl. Fig. 14(a)] interpretiert, woraufhin ein Graphikbefehl ausgegeben wird, um die dreidimensionale Form auf eine zweidimensionale Ebene zu projizieren und die kubische Form zu überprüfen. In dem Algorithmus dieses Ausführungsbeispiels ist diese Funktion unter Verwendung einer Graphikbibliothek wie beispielsweise PHIGS realisiert. Beispiele von Verarbeitungen, die für die dreidimensionale Verarbeitung zu solcher Zeit spezifisch sind, sind die Beleuchtung durch die Lichtquelle, die Schattierung bzw. Abblendung, die Eliminierung verborgener Linien und verborgener Oberflächen, die Tiefenzeichenwirkung, usw.
- In Übereinstimmung mit diesem Ausführungsbeispiel können Formdaten eines unbekannten Abschnitts auf der Grundlage eines aus einer Richtung erhaltenen Bereichbilds geliefert werden. Demzufolge kann eine dreidimensionale Form ohne teure Modellierungssoftware, wie beispielsweise CAD-Software, eingegeben und auf einfache Art und Weise wiederverwendet werden. <
- Fig. 18 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit einem dritten Ausführungsbeispiel der Erfindung zeigt.
- Die in dem Programmspeicher 1 gespeicherten Programme beinhalten ein Berechnungsprogramm 311 zum Berechnen des Vorzeichens einer Oberfläche aus Formdaten und ein Anzeigeprogramm 312 zum Anzeigen des Vorzeichens der erhaltenen Oberfläche. Die in dem Datenspeicher 2 gespeicherten Daten beinhalten von einer Eingabeeinheit für dreidimensionale Formen, einer Erzeugungseinheit für dreidimensionale Modelle oder einer Datenbank dreidimensionaler Formen eingegebene Formdaten 321 und Vorzeichendaten 322, die das Vorzeichen der Oberfläche eines durch die Verarbeitung dieses Ausführungsbeispiels erhaltenen Objekts angeben.
- Bevor der Algorithmus der Verarbeitung gemäß diesem Ausführungsbeispiel diskutiert wird, werden die vorstehend erwähnten Datenelemente beschrieben. Die Formdaten 21 repräsentieren die Position der Objektoberfläche im dreidimensionalen Raum. Im Einzelnen repräsentieren die Daten die Koordinatenpositionen von Punkten auf einer Oberfläche, einen mathematischen Ausdruck, der das Objekt oder die Koordinatenpositionen charakteristischer Punkte repräsentiert, falls das Objekt ein geometrisches Objekt ist, die Spitzen eines Polyeders, Phaseninformationen, usw. Die den Sinn einer Oberfläche angebenden Daten 322 repräsentieren den Sinn der Objektoberfläche in numerischer Form. In diesem Ausführungsbeispiel wird ein Einheitsnormalenvektor verwendet. Es gibt einen Sinn in bezug auf einen Referenzpunkt oder einen Sinn in bezug auf die Blickrichtung bzw. Sichtlinie in drei Dimensionen.
- Nachstehend wird der allgemeine Ablauf des Algorithmus dieses Ausführungsbeispiels unter Bezugnahme auf Fig. 19 beschrieben.
- Zunächst werden in Schritt S111 die Formdaten 321 eines Objekts von einer Eingabeeinheit für dreidimensionale Formen, einer Erzeugungseinheit für dreidimensionale Formdaten oder einer Datenbank dreidimensionaler Formen erhalten. Ferner ist dieses Ausführungsbeispiel durch die Verarbeitung gekennzeichnet, die auf den Erhalt der Formdaten 321 folgt, so daß nachstehend hier die Erzeugung dieser Formdaten 321 beschrieben wird. Sodann wird in Schritt S112 der Einheitsnormalenvektor an jedem Punkt auf der Oberfläche eines Objekts aus den Formdaten 321 berechnet. Algorithmen zum Berechnen eines Einheitsnormalenvektors sind ausführlich in "A Hybrid Technique for Segmenting a Range Image based upon Differential Geometric Characteristics" von Naokazu Yokoya und Martin D. Levine, Joho Shori Gakkai Ronbunshi, Band 30, Nr. 8, August 1989 beschrieben. Einer derselben wird hier verwendet. Sodann wird in Schritt S113 der Einheitsnormalenvektor in identifizierbare Daten umgewandelt, und werden diese auf einer zweidimensionalen Ebene angezeigt.
- Ein Typ von in einem Bild vorhandenen Einheitsnormalenvektoren besitzt Informationen, die das Vorzeichen, die Zahl und die Verteilung angeben. Diese Informationselemente werden durch eine Kombination von Symbolen, wie beispielsweise Zeichen, Zahlen, Pfeile und Punkte, und Eigenschaften, wie beispielsweise die begleitende Farbe, Größe, Länge und Anzeigeposition, ausgedrückt. Dies ist eine (auch als eine Symbolisierung bezeichnete) Umwandlung in identifizierbare Daten, auf die in dieser Erfindung Bezug genommen wird. Die angezeigten Informationen, Symbole und Eigenschaften können durch den Benutzer in Abhängigkeit von dem Verwendungszweck dialogartig ausgewählt werden.
- Beispiele der Symbolisierung eines Einheitsnormalenvektors in Schritt S113 sind unter (a), (b), (c) von Fig. 20 und (a), (b) in Fig. 21 dargestellt. Fig. 20 zeigt Beispiele, in welchen der Sinn einer Objektoberfläche als Länge und Richtung jedes Linien- bzw. Zeilensegments angezeigt wird, Fig. 21A zeigt Beispiele, in welchen der Sinn einer Objektoberfläche als Farbe jedes Punkts angezeigt wird, und Fig. 21B zeigt ursprüngliche Farbbilder entsprechend Fig. 21A.
- Nachstehend wird der Algorithmus zum Erhalt der Fig. 20 beschrieben.
- Es sei angenommen, daß (nx,ny,nz) den Einheitsnormalenvektor eines Punkts (x,y) auf einem Bereichbild repräsentiert. Ferner sei angenommen, daß s das Abtastintervall des Bereichbilds repräsentiert. In einem Fall, in dem ein Bereichbild aus einer Richtung parallel zu der Z-Achse in der Mitte des Bilds gesehen wird, kann der Einheitsnormalenvektor als eine gerade Linie ausgedrückt werden, die den Punkt (x,y) mit dem Punkt (x + nx,y + ny) verbindet. Die gerade Linie ist jedoch sehr kurz, so daß ihre Richtung unter diesen Bedingungen schwer zu unterscheiden ist. Demgemäß wird der Normalenvektor im voraus mit s multipliziert. Zu dieser Zeit ist der Einheitsnormalenvektor eine gerade Linie von dem Punkt (x,y) zu dem Punkt (x + snx,y + sny)
- Ferner sollte dann, wenn versucht wird, ein Bereichbild aus einer anderen Richtung zu betrachten, das Bild mit Winkeln von α bzw. β um die X- bzw. Y-Achse gedreht werden. Es sein angenommen, daß z die Höhe eines Punkts (x,y) ausgehend von der X-Y-Ebene in einem Bild zu dieser Zeit repräsentiert. In einem solchen Fall wird (x,y) in [xcosβ + ysinβ, -zsinα - (xsinβiycosβ) cosα] umgewandelt, und wird (x + snx,y + sny) in [(x + snx) cosβ + (y + sny) sinβ, -(z + snx) sinα - {(x + snx) sinβ - (y + sny) cosβ} cosα] umgewandelt. Demgemäß ist der Normalenvektor in diesem Fall eine gerade Linie, die zwei Punkte verbindet, die erhalten wurden, nachdem die Punkte (x,y) und (x + snx,y + sny) verbunden worden sind.
- Ein Algorithmus zum Umwandeln eines Einheitsnormalenvektors in Farbe für einen Fall, in welchem Fig. 21A und 21B angezeigt werden, wird als ein Beispiel der Symbolisierung beschrieben. Fig. 22 ist das Ablaufdiagramm in einfacher Form.
- In Schritt S201 wird der durch die rechtwinkligen Koordinaten (x,y,z) gegebene Normalenvektor in einen Normalenvektor in Polarkoordinaten (1,θ,φ) transformiert, worin θ den Drehwinkel (0 bis 360º) des Normalenvektors um die z-Achse repräsentiert und worin φ den Winkel (0 bis 90º) des Normalenvektors gegen die x-y-Ebene repräsentiert.
- Sodann werden die Polarkoordinaten (1,θ,φ) in Schritt S202 in HLS-Farbraumkoordinaten (h,0.5,s) transformiert. Die Transformationsgleichung ist h = θ, s = φ/90º, worin h den Farbton repräsentiert und von 0 bis 360º variiert, d. h. Blau 0º ist, Magenta 60º ist, Rot 120º ist, Gelb 180º ist, Grün 240º ist und Cyan 300º ist. Wenn α den Farbton einer Farbe repräsentiert, dann repräsentiert (α + 180º)mod360º den komplementären Farbton desselben. Ferner repräsentiert s die Sättigung und variiert von 0 (achromatisch) bis 1.0 (brillanteste Farbe für eine gegebene Luminanz). Die Farben mit der höchsten Sättigung in einer Ebene gleicher Farbtöne sind auf einem Farbtonkreis angeordnet, für welchen L (Luminanz) 0.5 ist.
- Schließlich werden die HLS-Farbraumkoordinaten (h,0.5,s) in Schritt S203 in RGB-Farbraumkoordinaten (r,g,b) transformiert, und wird der Punkt, an dem der Einheitsnormalenvektor vorhanden ist, in dieser Farbe angezeigt. In bezug auf einen Algorithmus zum Transformieren der HLS-Farbraumkoordinaten (h,0.5,s) in RGB-Farbraumkoordinaten (r,g,b) findet sich eine detaillierte Beschreibung zum Beispiel in "Computer Imaging", Television Gakkaihen, Corona Publishing Company. Einer derselben wird verwendet.
- Die Beispiele von Fig. 21A und ursprüngliche Farbbilder von Fig. 21B, die folglich angezeigt werden, werden nachstehend genauer beschrieben. In Fig. 21A bezeichnen die Bezugszeichen 43a, 43b Hintergrund, für welchen eine achromatische Farbe, die niedrige Luminanz zeigt, ausgewählt wird.
- In Fig. 21A bezeichnen die Bezugszeichen 41a ~ 41g Ebenen. Daher variiert der Farbton in Übereinstimmung mit dem Sinn der Ebene um die z-Achse, und variiert die Sättigung in Übereinstimmung mit dem Winkel der Ebene zur x-y-Ebene, obwohl diese in einer Ebene konstant ist. Zum Beispiel haben die Ebenen 41a, 41b, 41c, 41d unterschiedliche Farbtöne, aber dieselbe Sättigung. In Abhängigkeit von dem Unterschied im Farbton kann ermittelt werden, ob die Ebene 41e konkav oder konvex ist. Da die Sättigung die Neigung der Ebene repräsentiert, kann der Grad der Konvexität oder Konkavität der Ebene 41e ermittelt werden. Diese Ermittlungen erfolgen nicht durch Speichern der Farbe. Anstelle dessen ist eine Zuweisung von Farbton, Sättigung und Luminanz wünschenswert, die eine Ermittlung anhand des Eindrucks eines angezeigten Bilds ermöglicht.
- Die Bezugszeichen 42a ~ 42c bezeichnen gekrümmte Oberflächen. In Oberflächen mit demselben Sinn um die z-Achse bleibt der Farbton gleich, aber variiert die Sättigung. Zum Beispiel haben in dem Fall einer Kugelfläche 42a die Punkte 42a1 und 42a2 denselben Farbton, aber verringert sich die Sättigung, wenn man sich dem Punkt 42a1 von dem Punkt 42a2 aus nähert. Die Punkte 42a1 und 42a3 haben unterschiedliche Farbtöne, aber dieselbe Sättigung. Die ursprünglichen Farbbilder von Fig. 21B demonstrieren die vorstehende Beschreibung. Auch hier erfolgt die Beurteilung der Form nicht durch Speichern der Farbe; die Zuweisung von Farbton, Sättigung und Luminanz, die eine Ermittlung anhand des Eindrucks eines angezeigten Bilds ermöglicht, ist wünschenswert. Demgemäß ist die Zuweisung von Farbton und Sättigung in den HLS-Farbraumkoordinaten (h,0.5,s) in dem vorstehend beschriebenen Ausführungsbeispiel ein Beispiel derselben. Es reicht aus, die optimale Zuweisung in Übereinstimmung mit dem Ziel und der Anwendung zu wählen.
- Dieses Ausführungsbeispiel wird unter Heranziehung einer Anzeige als Beispiel beschrieben. Es ist jedoch offensichtlich, daß auch dann die gleichen Wirkungen erzielt werden können, wenn die Erfindung zur Ausgabe auf einen Drucker oder dergleichen angewandt wird. Ferner wurde das Ausführungsbeispiel unter Verwendung eines Einheitsnormalenvektors als Anzeige des Sinns bzw. Vorzeichens einer Oberfläche beschrieben. Falls jedoch die Daten derart vorliegen, daß der Sinn identifiziert werden kann, können diese Daten verwendet werden. Obwohl eine Umwandlung von einem Einheitsnormalenvektor in Anzeigedaten durchgeführt wird, ist es auch möglich, eine direkte Umwandlung in Anzeigedaten durchzuführen.
- In Übereinstimmung mit diesem Ausführungsbeispiel wird der Sinn eines Punkts auf der Oberfläche eines Objekts im dreidimensionalen Raum auf identifizierbare Art und Weise ausgegeben. Infolgedessen können alle Oberflächenformen von Objekten auf der Grundlage eines einzigen, aus einer wahlfreien Richtung betrachteten zweidimensionalen Bilds eindeutig ausgegeben werden, und können die Operationen, die Anzahl von Schritten und eine komplizierte Verarbeitung, die zur Erkennung der Form eines Objekts notwendig ist, reduziert werden. Darüber hinaus kann die Genauigkeit, mit welcher die Form eines Objekts erkannt wird, durch Auswählen von Informationen in Übereinstimmung mit dem Ziel und der am besten für die Informationen geeigneten Datenumwandlung erhöht werden.
- Fig. 23 ist ein Diagramm, das den Aufbau eines Speichers in Übereinstimmung mit dem vierten Ausführungsbeispiel darstellt, und Fig. 24 ist ein Diagramm, das ein Ablaufdiagramm der gesamten Verarbeitung in Übereinstimmung mit dem vierten Ausführungsbeispiel zeigt.
- In Fig. 23 veranschaulicht (a) die im Programmspeicher 1 dieses Ausführungsbeispiels gespeicherten Programme. Die Programme beinhalten ein Bereichbild-Eingabeverarbeitungsprogramm 401 zum Eingeben eines Bereichbilds in die Vorrichtung, ein Oberflächenklassifizierungsprogramm 402 zum Erzeugen einer Oberflächenkategorientabelle aus dem gegebenen Bereichbild, und ein Polygonalfleckmodell-Erzeugungsprogramm 403 zum Erzeugen eines Polygonfleckmodells aus einem Bereichbild auf der Grundlage der Oberflächenkategorientabelle.
- Fig. 23 (b) zeigt den Aufbau des Datenspeichers 2 in diesem Ausführungsbeispiel, in welchem das Bezugszeichen 411 ein eingegebenes Bereichbild, 412 eine erzeugte Kategorientabelle und 413 ein erzeugtes Polygonfleckmodell bezeichnen.
- Nachstehend wird der Ablauf der gesamten Verarbeitung dieses Ausführungsbeispiels auf der Grundlage des in Fig. 24 gezeigten Ablaufdiagramms beschrieben. Zunächst wird in Schritt S21 ein Bereichbild eingegeben, wie beispielsweise durch Vermessen eines Objekts mittels dem Laserbereichfinder 7 in Übereinstimmung mit dem Bereichbild-Eingabeverarbeitungsprogramm 401, und wird das Bereichbild im Datenspeicher 2 als die Bereichbilddaten 411 gespeichert. Diese Eingabe ist nicht auf eine solche beschränkt, die durch eine tatsächliche Messung erhalten wurde, da eine Anordnung getroffen werden kann, bei welcher in einer Bilddatenbank gespeicherte Daten eingegeben werden.
- Sodann werden in Schritt S22 die eingegebenen Bereichbilddaten 411 (dreidimensionale Koordinatendaten jedes die Oberfläche des Objekts bildenden Punkts) in Übereinstimmung mit dem Oberflächenklassifizierungsprogramm 402 verarbeitet. Die Kategorie der die Objektoberfläche bildenden Oberfläche wird klassifiziert, um die Oberflächenkategorientabelle 412 zu erzeugen.
- In Übereinstimmung mit dem Polygonfleckmodell-Erzeugungsprogramm 403 wird in Schritt S23 das Polygonfleckmodell 413 durch Polygonflecke, die sich am besten für die klassifizierte Oberflächenkategorie eignen, auf der Grundlage der Bereichbilddaten 411 und der Oberflächenkategorientabelle 412 erzeugt.
- Fig. 25 ist ein Ablaufdiagramm, das die Einzelheiten von Schritt S22, d. h. die Verarbeitung zur Oberflächenklassifizierung, zeigt.
- Zunächst wird in Schritt S31 ein Bereichbild mit einem Bereichwert für jedes Pixel des Bilds als ein zweidimensionales Feld dreidimensionaler Koordinatendaten eingegeben, woraufhin in Schritt S32 eine Schätzung einer lokal gekrümmten Oberfläche durch Approximation kleinster Quadrate unter Verwendung eines Fensters einer geeigneten Größe durchgeführt. Darauf folgt Schritt S33, in welchem erste und zweite Differentiale an jedem Pixel aus der geschätzten lokal gekrümmten Oberfläche oder mittels einem anderen Verfahren berechnet werden. Dann werden in Schritt S34 die Gaußsche Krümmung und die mittlere Krümmung berechnet, worauf Schritt S35 folgt, in welchem eine Krümmungsvorzeichentabelle aus den Vorzeichen der beiden erhaltenen Krümmungen erzeugt wird. Schließlich wird in Schritt S36 eine Klassifizierung in acht in Fig. 26 gezeigte Oberflächenkategorien in Abhängigkeit von dem Vorzeichen durchgeführt, und wird ein Oberflächenklassenbild erzeugt, in welchem die jeweiligen Codes (die Oberflächenklassennummern) als Pixelwerte dienen.
- Ein Algorithmus für die hier kurz beschriebene Krümmungsoberflächenklassifizierung ist in dem Aufsatz "A Hybrid Approach to Range Image Segmentation Based on Differential Geometry" von Naokazu Yokoya und Martin D. Levine, Joho Shori Gakkai Ronbunshi, Band 30, Nr. 8, August 1989, offenbart. An dieser Stelle wird eine detaillierte Beschreibung weggelassen.
- Fig. 27 ist ein Ablaufdiagramm, das dem Polygonfleckmodell- Erzeugungsprogramm 403 entspricht, und Fig. 28 ist ein Diagramm, das schematisch ein Beispiel der Verarbeitung von Bereichbilddaten zeigt, die durch das Verfahren von Fig. 27 verarbeitet werden.
- In Schritt S51 in Fig. 27 wird das durch die in Verbindung mit dem Ablaufdiagramm von Fig. 25 beschriebene Prozedur erzeugte Oberflächenklassenbild [(a) in Fig. 28] eingegeben, und wird in Schritt S52 ein Bild [(b) in Fig. 28], welches eine bestimmte Oberflächenklasse repräsentiert, sukzessive aus diesem Oberflächenklassenbild extrahiert. Fig. 28(b) ist ein Bild, in welchem zum Beispiel nur der Ort, an dem die Oberflächenklasse 5 ist, extrahiert wird.
- In Schritt S53 wird dasselbe Kennzeichen (Zahl) allen zu derselben Verbindungskomponente gehörenden Pixeln zugewiesen, und wird ein Kennzeichenbild gehören [(c) in Fig. 28] erzeugt, in welchem verschiedene Kennzeichen unterschiedlichen Verbindungskomponenten zugewiesen sind.
- Darauf folgt Schritt S54, in welchem ein Polygonfleckmodell, das der Oberflächenklasse entspricht, für jedes in Schritt S53 zugewiesene Kennzeichen (Regionsnummer) erzeugt wird. Das heißt, daß in bezug auf eine Region, in welcher die Oberflächenklasse n ist, eine Prozedur zum Erzeugen eines Polygonflecks jeder Region einer Oberfläche ausgeführt wird, für welche die Oberflächenklasse in n klassifiziert ist. Diese Prozedur wird später im Einzelnen beschrieben.
- Falls in Schritt S55 ermittelt wird, daß die nächste Oberflächenklassenzahl die einer Klasse ist, die noch nicht verarbeitet wurde, wird die Verarbeitung von Schritt S52 an wiederholt.
- Die Verarbeitung wird beendet, wenn die achte Klassenzahl endet.
- Auf diese Art und Weise werden die Schritte S52 ~ S54 für alle extrahierten Oberflächenklassen ausgeführt.
- Als nächstes wird in den in Fig. 26 gezeigten Oberflächenklassen eine Prozedur zum Erzeugen eines Polygonflecks für jede Region einer als Klasse 5 klassifizierten Oberfläche in Übereinstimmung mit dem Ablaufdiagramm von Fig. 29 beschrieben.
- Schritt S71 fordert zur Eingabe der Ergebnisse auf, die durch die Regionskennzeichnung eines Bilds erhalten wurden, welches eine Oberfläche repräsentiert, deren Oberflächenklasse in Schritt S53 als Klasse 5 klassifiziert wurde.
- Schritt S72 fordert zum Extrahieren der Umrißlinien aller Bereiche von Oberflächen auf, deren Oberflächenklasse in Schritt S53 als Klasse 5 klassifiziert wurde und welche der Kennzeichnung unterzogen wurden [(d) in Fig. 28].
- Wie in Fig. 28 (d) gezeigt ist, werden den Umrissen Nummern bzw. Zahlen zugewiesen, die gleich denjenigen sind, die in Schritt S53 zugewiesen wurden.
- Schritt S73 fordert zum Extrahieren der Umrisse in zahlenmäßiger Reihenfolge und Anwenden der nachstehenden Verarbeitung auf jeden derselben auf.
- In Schritt S74 wird der Umriß ausgehend von einem bestimmten vorbestimmten Anfangspunkt durchquert, werden Nummern aufeinanderfolgend Punkten zugewiesen, die im Abstand vorbestimmter Anzahlen von Pixeln auf dem Umriß liegen, und werden die Koordinaten dieser Punkte auf dem Umriß gelesen. Die Punkte werden als Spitzen bezeichnet, und die Nummern werden als Spitzennummern bezeichnet.
- Hierauf folgt Schritt S75, in welchem die Koordinaten im dreidimensionalen Raum entsprechend den Koordinaten in dem in Schritt S74 gelesenen Bild aus dem ursprünglichen Bereichbild gelesen und diese als Spitzeninformationen zusammen mit den Oberflächenkategoriezahlen, den Regionsnummern (gleich den Umrißnummern) und den Spitzennummern in eine in Fig. 30 gezeigte Polygonalfleckdatentabelle geschrieben werden. Ferner werden die durchquerten Spitzenzahlen in Reihenfolge als Phaseninformationen in die Polygonalfleckdatentabelle geschrieben.
- Falls die nächste Umrißnummer eine solche ist, die noch nicht der Verarbeitung unterzogen wurde, ("NEIN" in Schritt S76), wird die Verarbeitung von Schritt S73 an wiederholt. Wenn alle Umrißnummern zu Ende sind, wird die Verarbeitung beendet.
- Auf diese Art und Weise werden die Schritte S73 ~ S75 in bezug auf alle in Schritt S72 extrahierten Umrisse ausgeführt.
- Schließlich wird eine als ein Beispiel in Fig. 30 gezeigte Polygonfleckdatentabelle erzeugt.
- Polygonalflecken werden auf dieselbe Art und Weise auch in Regionen einer Oberfläche erzeugt, für welche die Oberflächenklasse von Fig. 26 anders als 5 (1 oder 2 oder 3 oder 4 oder 6 oder 7 oder 8) ist.
- Fig. 31 ist eine erläuternde Ansicht, in welcher das Polygonfleckmodell erzeugt wird.
- Ein bestimmter Punkt im Inneren einer extrahierten Region wird in der Reihenfolge von kleineren Werten von x in der Abtastzeilenrichtung (entlang der x-Achse in Fig. 31) und von kleineren Werten von y in einer Richtung (entlang der y-Achse in Fig. 31) senkrecht zu den Abtastzeilen extrahiert, und die nachstehend dargestellte Verarbeitung wird ausgeführt.
- Das Ablaufdiagramm zum Extrahieren des p-ten Werts in der x-Richtung auf einer n-ten Abtastzeile und Erzeugen von Rückenlinien-Phaseninformationen ist dasselbe wie das in Fig. 16 des zweiten Ausführungsbeispiels. Ein Beispiel der Pseudo-Codierung ist in Fig. 45 veranschaulicht. In Fig. 45 ist eine Variable x ein Wert, der in Übereinstimmung mit der Oberflächenklasse vorbestimmt ist.
- In der Verarbeitung dieser Art wird der Wert von x für eine Oberflächenklasse, die sehr unregelmäßig ist, als klein festgelegt, und wird der Wert von x für eine Oberflächenklasse, die flach ist, als groß festgelegt. Infolgedessen kann ein Polygonfleckmodell erzeugt werden, in welchem repräsentative Punkte an einem Abschnitt mit einer komplizierten Form dicht und an einem glatten Abschnitt spärlich ausgewählt werden.
- In diesem Ausführungsbeispiel werden - nachdem repräsentative Punkte dicht aus interessierenden Punkten ausgewählt sind - dann, wenn eine Änderung in einem Normalenvektor zwischen einem interessierenden Punkt und einem ausgewählten Punkt kleiner ist als ein vorbestimmter Wert, die repräsentativen Punkte in größeren Abständen neu ausgewählt, wobei der Abstand von repräsentativen Punkten an Abschnitten, wo die Änderung groß ist, enger gemacht wird, und der Abstand von repräsentativen Punkten an glatten Abschnitten erweitert wird.
- Fig. 32 stellt den Aufbau des Programmspeichers 1 und des Datenspeichers 2 in Übereinstimmung mit dem fünften Ausführungsbeispiel dar. In Fig. 32 ist (a) ein Diagramm, das die Programme in dem Programmspeicher 1 des fünften Ausführungsbeispiels zeigt. Die Programme beinhalten ein Bereichbild- Eingabeverarbeitungsprogramm 501 gleich dem in dem vierten Ausführungsbeispiel, ein Normalenvektor-Berechnungsprogramm 502 zum Ermitteln eines Normalenvektors durch räumliches Differenzieren der an diesen angelegten Bereichbilddaten, und ein Polygonfleckmodell-Erzeugungsprogramm 503 in Übereinstimmung mit diesem Ausführungsbeispiel.
- In Fig. 32 zeigt (b) den Aufbau des Datenspeichers 2 in diesem Ausführungsbeispiel. Das Bezugszeichen 511 bezeichnet das eingegebene Bereichbild, 512 den berechneten Normalenvektor, und 513 das in Übereinstimmung mit diesem Ausführungsbeispiel erzeugte Polygonfleckmodell.
- Nachstehend wird der Ablauf der gesamten Verarbeitung in diesem Ausführungsbeispiel auf der Grundlage des in Fig. 33 gezeigten Ablaufdiagramms beschrieben. Zunächst wird in Schritt S131 ein Bereichbild eingegeben, wie beispielsweise durch Vermessen eines Objekts mittels dem Laserbereichfinder 7 in Übereinstimmung mit dem Bereichbild-Eingabeverarbeitungsprogramm 501, und wird das Bereichbild im Datenspeicher 2 als die Bereichbilddaten 511 gespeichert. Diese Eingabe ist nicht auf eine solche beschränkt, die durch eine tatsächliche Messung erhalten wurde, da eine Anordnung getroffen werden kann, bei welcher in einer Bilddatenbank gespeicherte Daten eingegeben werden.
- Sodann werden in Schritt S132 die eingegebenen Bereichbilddaten 511 (dreidimensionale Koordinatendaten jedes die Oberfläche des Objekts bildenden Punkts) in Übereinstimmung mit dem Normalenvektor-Berechnungsprogramm 502 verarbeitet. Um den Normalenvektor zu erhalten, braucht das eingegebene Bereichbild lediglich räumlich differenziert zu werden. Dieses Verfahren zum Berechnen eines Normalenvektors ist in dem vorstehend erwähnten Aufsatz mit dem Titel "A Hybrid Technique for Segmenting a Range Image based upon Differential Geometric Characteristics" beschrieben.
- In Übereinstimmung mit dem Polygonfleckmodell-Erzeugungsprogramm 503 wird in Schritt S133 das Polygonfleckmodell 513 durch Polygonflecke, die sich am besten für die Oberflächenformen eignen, auf der Grundlage der Bereichbilddaten 511 und der Normalenvektordaten 512 erzeugt.
- Nachstehend wird ein Verfahren zum Erzeugen eines Polygonfleckmodells unter Verwendung eines Bereichbilds und eines Normalenvektors unter Bezugnahme auf das Ablaufdiagramm von Fig. 34 beschrieben. Es sei angenommen, daß die Polygonflecken quadratische Flecken sind.
- Zunächst wird in Schritt S121 das Bereichbild sequentiell abgetastet, wie in Fig. 35 gezeigt ist, um einen Punkt (dieser Punkt sei A in Fig. 36) zu finden, der auf der Objektoberfläche liegt und nicht von einem Flecken abgedeckt wird. Sodann wird in Schritt S122 ein Quadrat ABCD mit dem gefundenen Punkt A als einer Spitze und einer Seite der Länge i (dem dichtesten Abstand in dem zu erzeugenden Modell) erzeugt.
- Hierauf folgt Schritt S123, in welchem ermittelt wird, ob drei ausgewählte Spitzen B, C, D alles Punkte sind, die noch nicht durch Flecken abgedeckt sind, und ob alle inneren Produkte zwischen einem Einheitsnormalenvektor an Punkt A und den Einheitsnormalenvektoren an den Punkten B, C, D größer als ein im voraus gegebener Schwellenwert sind. Falls B, C, D alles noch nicht abgedeckte Punkte sind und die inneren Produkte der Normalenvektoren alle größer als der Schwellenwert sind, dann wird die Operation i = i + 1 durchgeführt und Schritt S122 wiederholt.
- Falls eine der drei Spitzen B, C, D ein bereits von einem anderen Flecken abgedeckter Punkt ist oder eines der inneren Produkte zwischen dem Einheitsnormalenvektor an Punkt A und den Einheitsnormalenvektoren an den Punkten B, C, D kleiner als der im voraus gegebene Schwellenwert ist, werden in Schritt S124 die Spitzen des Quadrats festgelegt, werden die dreidimensionalen Koordinatenwerte der vier festgelegten Spitzen A, B, C, D aus dem Bereichbild gelesen, werden die Sinne der Normalenvektoren aus dem Normalenvektorbild gelesen, und werden die gelesenen Daten als den quadratischen Fleck angebende Daten registriert.
- Hierauf folgt Schritt S125, in dem ermittelt wird, ob die Abtastung des gesamten Bildschirms des Bereichbilds beendet ist. Falls es einen noch nicht abgetasteten Abschnitt gibt, wird die Verarbeitung von Schritt S121 an wiederholt. Falls andererseits die Abtastung des gesamten Bildschirms beendet ist, schreitet das Programm zu Schritt S126 fort. Hier wird ein Punkt auf der Seite FG eines anderen durch irgendeine das vorstehend beschriebene Quadrat bildende Spitze belegten Quadrats in den registrierten Quadratfleckdaten aufgefunden. Dann werden in Schritt S127 die dreidimensionalen Koordinatenwerte der aufgefundenen Spitze E aus der Gleichung der geraden Linie FG berechnet, und werden die Quadratfleckdaten unter Verwendung dieser Werte als die Koordinatenwerte des Punkts E überarbeitet. Wenn die Überarbeitung der dreidimensionalen Koordinatenwerte in bezug auf alle Punkte wie beispielsweise den Punkt E beendet ist, wird die Verarbeitung zum Erzeugen des Fleckmodells abgeschlossen.
- Ein Beispiel eines Teils der durch diese Prozedur erzeugten Quadratfleckdaten ist in Fig. 38 veranschaulicht.
- In Übereinstimmung mit diesem Ausführungsbeispiel werden wie vorstehend beschrieben - nachdem repräsentative Punkte dicht aus interessierenden Punkten ausgewählt sind - dann, wenn eine Änderung in einem Normalenvektor zwischen einem interessierenden Punkt und einem ausgewählten Punkt kleiner ist als ein vorbestimmter Wert, die repräsentativen Punkte in größeren Abständen neu ausgewählt. Daher kann ein Polygonalfleckmodell derart erzeugt werden, daß der Abstand von repräsentativen Punkten an Abschnitten, wo die Änderung groß ist, enger gemacht wird, und der Abstand von repräsentativen Punkten an glatten Abschnitten erweitert wird. Die Form des Objekts wird mit hoher Präzision unter Verwendung nur einer kleinen Menge von Daten ausgedrückt. Darüber hinaus können durch Beschreiben der Verbindungsbeziehung zwischen Datenpunkten in dem Formmodell unnötige Datenpunkte eliminiert werden, oder können Datenpunkte später hinzugefügt werden.
- In diesem Ausführungsbeispiel werden geometrische Daten aus Bereichbilddaten erzeugt und wird ein Betriebsablauf zum Transformieren der geometrischen Daten angegeben, wodurch eine Animationsanzeige durch einen einfachen Betriebsablauf realisiert wird.
- Fig. 39 veranschaulicht den Aufbau des Programmspeichers 1 und des Datenspeichers 2 in Übereinstimmung mit dem sechsten Ausführungsbeispiel, und Fig. 40 zeigt ein Ablaufdiagramm der gesamten Verarbeitung.
- In Fig. 39 ist (a) ein Diagramm, das die Programme in dem Programmspeicher 1 des sechsten Ausführungsbeispiels zeigt. Die Programme beinhalten ein Bereichbild-Eingabeverarbeitungsprogramm 601 gleich dem in dem fünften Ausführungsbeispiel, Aufbauprogramm für dreidimensionale Modelle 602 zum Erzeugen verschiedener geometrischer 3-D-Daten in bezug auf das eingegebene Bereichbild, ein Transformationsdaten-Erzeugungsprogramm 603, welches Parameter zum Ausführen verschiedener Transformationsanimationen in bezug auf die erhaltene geometrische 3-D-Form angibt/speichert, und ein Transformationsanimations-Anzeigeprogramm 604, welches in Übereinstimmung mit dem erhaltenen dreidimensionalen Modell und den erhaltenen Animationsparametern eine Beleuchtung und Schattierung in Abhängigkeit von dem Betriebsablauf zum Transformieren des Objekts durchführt und eine Transformationsanimation ausführt.
- In dem Datenspeicher 2 bezeichnet das Bezugszeichen 611 Bereichbilddaten, die von einem Bereichmeßsensor oder einer Bereichbild-Datenbank eingegeben wurden, bezeichnet 612 das als geometrische 3-D-Daten durch die Verarbeitung dieses Ausführungsbeispiels aufgebaute Formmodell, und bezeichnet 613 die durch den Benutzer zur Animation vorgegebenen Objekttransformationsparameter.
- Die allgemeinen Merkmale der Verarbeitung in Übereinstimmung mit diesem Ausführungsbeispiel werden unter Bezugnahme auf das Ablaufdiagramm von Fig. 40 beschrieben.
- In Schritt S181 wird das Bereichbild von einem Laserbereichfinder oder einer Bilddatenbank eingegeben, genau wie in dem vierten und dem fünften Ausführungsbeispiel. Da jedoch zusätzlich zu dem Parallelprojektionssystem zentrale und zylindrische Arten von Projektionen zur Verfügung stehen, um ein Bereichbild zu messen, wird in diesem Schritt eine Transformation in den Koordinatenraum eines Projektionssystems (des Parallelprojektionssystems) durchgeführt und die nachfolgende Verarbeitung vereinheitlicht. Ein Punkt, an dem der Bereich größer ist als ein fester Wert, wird als Unendlich verwendet, um als Hintergrund betrachtet zu werden; er wird nicht als Teil eines Objekts betrachtet.
- Ein dreidimensionales Formmodell wird in Schritt S182 erzeugt. Obwohl Maschen-, Polygon- und frei gekrümmte Oberflächen als Formmodell zur Verfügung stehen, wie vorstehend erwähnt wurde, wird bevorzugt, daß die typische Form in Abhängigkeit von den Eigenschaften des Objekts ausgewählt wird. Das heißt, daß ein Polygonmodell für ein künstliches Objekt mit einer großen flachen Oberfläche empfohlen wird, und sich eine maschige oder frei gekrümmte Oberfläche für eine glatte Oberfläche wie beispielsweise das Bild eines Gesichtes eignet. Ein Beispiel eines Polygonmodells ist in Fig. 41 gezeigt.
- In Schritt S183 werden Lichtquelleninformationen (Farbe, Art der Lichtquelle, Abschwächungsfaktor), Objektmerkmale (Objektfarbe, verschiedene Reflexionskoeffizienten, normale Linien) für die erhaltene geometrische Form gegeben, und wird das dreidimensionale Modell auf eine zweidimensionale Ebene projiziert, um einen Rendervorgang durch "phong" oder Glimmschattierung durchzuführen.
- Da das hier erhaltene Bild nur ein aus einer Richtung gesehenes Bild ist, wird in Schritt S184 die Umwandlungsbetriebsart für einen Animationsbetriebsablauf ausgewählt. Ferner werden die Parameter für die Transformation in Schritt S185 vorgegeben. Falls in Schritt S186 ermittelt wird, daß alle Vorgaben beendet sind, schreitet das Programm zu Schritt S187 fort. Falls eine Vielzahl von Transformationsbetriebsarten zusammengeführt sind, kehrt das Programmrückkehr zu Schritt S184 zurück.
- Die Anzahl von Interpolationen in einer Transformation wird in Schritt S187 festgelegt. Diese Verarbeitung wird nachstehend beschrieben. In Schritt S188 wird eine Animation erzeugt und angezeigt.
- In diesem Ausführungsbeispiel sind Konisch machen, Verwinden und Durchbiegen die Transformationsbetriebsarten. Diese werden nachstehend beschrieben.
- Fig. 42 veranschaulicht die drei Beispiele von Transformation, und Fig. 43A veranschaulicht ein Beispiel einer Transformation, in welcher konisch machen und verwinden vermischt bzw. zusammengeführt sind. Fig. 43B zeigt ein ursprüngliches Farbbild entsprechend Fig. 43A.
- Obwohl ein Beispiel einer Funktion zum Ändern des x,y-Maßstabs eines Objekts entlang der z-Achse veranschaulicht wird, kann ein konisch machen auf vergleichbare Art und Weise auch in bezug auf die anderen Achsen (die x- und die y-Achse) erzielt werden. Dies wird ausgedrückt durch
- X = r·x
- Y = r·y ... (19)
- Z = z
- und der Skalen- bzw. Maßstabsfaktor ist r = f(z).
- Die Transformation eines Objekts kann durch Ändern der Funktion f(z) simuliert werden. Ferner ist ein Normalenvektor wesentliche Information zur Berechnung der Schattierung, wenn ein dreidimensionales Objekt dem Rendervorgang (der Schattierung) unterzogen wird. Die Richtung der Normalen ändert sich ebenfalls in Abhängigkeit von der Transformationsoperation. Ein Normalenvektor Nt nach der Transformation ist wie folgt:
- Hier wird ein Beispiel veranschaulicht, in welchem der Umriß um einen Winkel θ (Rad) in der x-y-Ebene um die z-Achse gedreht wird. Eine Verwindung bzw. Verdrehung kann auf vergleichbare Art und Weise ebenso in bezug auf die anderen Achsen (die x- und die y-Achse) realisiert werden.
- X = x·cosθ - y·sinθ
- Y = x·sinθ + y·cosθ ... (21)
- Z = z
- Für den Drehwinkel gilt θ = f(z). Hier kann die Transformation des Objekts durch Ändern der Funktion f(z) simuliert werden. Auf vergleichbare Art und Weise ist der Normalenvektor Nt nach der Transformation wie folgt:
- Die Durchbiegefunktion entlang der y-Achse ist wie unten dargestellt definiert, aber die Durchbiegefunktion ist für die anderen Achsen (die x- und die z-Achse) ebenfalls ähnlich.
- Hier ist die Krümmung der Durchbiegung 1/k, ist das Zentrum der Durchbiegung y = y&sub0;, ist der Durchbiegewinkel θ = k(y' - y&sub0;), und wird die Durchbiegung bei ymin ≤ y ≤ ymax ausgeführt, worin
- Der Normalenvektor Nt nach der Transformation wird wie folgt ausgedrückt:
- worin
- Die verschiedenen vorstehend beschriebenen Transformationsbetriebsarten (Konisch machen, Verwinden, Durchbiegen) werden unter Verwendung eines Bedienfelds oder dergleichen in dem Fenstersystem angegeben.
- Danach werden durch Öffnen eines anderen Auswahlmenüs der Anfangsparameter der Animation, der Endparameter, die Interpolationsfunktion und die Zahl von Interpolationen pro Sekunde durch den Benutzer angegeben.
- Ein Beispiel einer Angabe (mit Bezug zu Konisch machen) wird unter Bezugnahme auf Fig. 44 beschrieben. Es ist möglich, den Anfangswert (2201) und den Endwert (2202) des Maßstabsfaktors "r" mittels einem Schieber oder durch eine direkte Eingabe des Zahlenwerts, wie in Fig. 44 veranschaulicht, anzugeben. Wenn eine Eingabe aus einer Betriebsart erfolgt, wird die Information genau in der Anzeige der anderen Betriebsart widergespiegelt.
- Es gibt ein Bedienfeld zum Angeben, als eine weitere Eingabe, der Zahl (2203) pro Sekunde erzeugter Rahmen eines Bilds, wenn eine Animation durchgeführt wird; 1~30 Bilder/s wird gewählt.
- Wenn dies erfolgt ist, wird nach jedem vorgegebenen Intervall eine CPU-Unterbrechung erzeugt, und wird eine Bildschirmaktualisierung auf der Seite des Systems ausgeführt, auf der die Animation ablaufen soll.
- Die Erzeugung einer Animation beinhaltet eine Verarbeitung, welche die CPU äußerst stark belastet. In einem Fall, in dem ein Rendervorgang ausschließlich von einer CPU durchgeführt wird, kann eine Situation entstehen, in welcher es schwierig ist, die vorstehend erwähnte Leistung von mehreren Rahmen pro Sekunde zu erreichen. Zu einer solchen Zeit wird jeder Rahmen offline gemalt und werden aufeinanderfolgende Nummern den Rahmen zugewiesen. Wenn die Animation betrachtet wird, werden diese Bilder gleichzeitig geladen, so daß es möglich ist, eine Animation zu realisieren, in der der Eindruck erweckt wird, die Bilder würden auf schnelle Weise weitergeschaltet.
- Schließlich wird eine Interpolationsfunktion (2204) zum Festlegen eines Parameters "r" angegeben, welcher sich mit der Zeit ändert, wenn die Animation ausgeführt wird. Diese Funktion gibt die Art und Weise an, in welcher eine Änderung in der zeitlichen Richtung ausgehend von dem eingegebenen Anfangswert und dem eingegebenen Endwert auftritt. Die Art und Weise der Änderung mit der Zeit durch eine Vielzahl von Verfahren vorgegeben werden.
- Die Einfachste derselben ist eine, in welcher sich der Parameterwert linear in der zeitlichen Richtung ändert. Wenn jedoch der Benutzer damit nicht zufrieden ist, ist es notwendig, eine kompliziertere Änderung zu bestimmen. In Fig. 44 wird eine Interpolationsfunktion unter Verwendung beispielsweise einer Bezier-Kurve vorgegeben. Eine Funktion dieser Art kann als Verarbeitung zur Kurvenerzeugung in DTP genutzt werden. Im allgemeinen kann eine in Form von p = f(t) ausdrückbare Änderungsfunktion eines Parameters als Interpolationsfunktion verwendet werden.
- In diesem Ausführungsbeispiel werden Konisch machen, Verwinden und Durchbiegen als Transformationsoperationen verwendet. Es ist jedoch erforderlich, daß bei Berücksichtigung der Transformationsoperationen auch eine Vergrößerung/Verkleinerung entlang der x-, y-, z-Achsen, eine Drehung um jede Achse und eine Verschiebung in den x-, y-, z-Richtungen als weitere Transformationen realisiert werden. Eine Verarbeitung für diese Fälle ist ausführlich in der japanischen Übersetzung von "Computer Graphics" von J. D. Foley und A. Van Dam, veröffentlicht 1984 durch Japan Computer Association, Seiten 253-273, beschrieben.
- Bei Formmodellierungs- und Animationsoperationen, welche durch Konstrukteure im Stand der Technik durchgeführt werden, kann eine grundlegende Beschreibung halbautomatisch in Übereinstimmung mit diesem Ausführungsbeispiel erzeugt werden. Infolgedessen kann bei der Erzeugung von Animationen aufgewandte Zeit verkürzt werden, und wird die Genauigkeit verbessert.
- In Übereinstimmung mit der Erfindung wie vorstehend beschrieben kann ein dreidimensionales Modell, in welchem die Form eines Objekts korrekt mit einer kleinen Datenmenge dargestellt wird, durch Auswählen von repräsentativen Punkten, die auf komplizierten Abschnitten, wo die Form sehr unregelmäßig ist, nah beieinanderliegen, Auswählen von repräsentativen Punkten, die auf großen flachen Oberflächen weit voneinander entfernt liegen, und Übernehmen dieser repräsentativen Punkte als die Spitzen von polygonalen Flecken erzeugt werden.
- Ferner wird der mit der Erzeugung einer Animation verbundene Betriebsablauf vereinfacht, wird das zur Erzeugung erforderliche Element verkürzt, und wird die Genauigkeit verbessert.
- Es wird angemerkt, daß die Erfindung nicht auf eine einzelne Vorrichtung beschränkt ist, sondern auf ein aus einer Vielzahl von Vorrichtungen bestehendes System angewandt werden kann, so lange die Funktionen der Erfindung realisiert werden. Es braucht nicht gesagt zu werden, daß die Erfindung auch auf ein System angewandt werden kann, in welchem die Verarbeitung durch Bereitstellen eines Programms für die Vorrichtung oder das System ausgeführt wird.
- Eine Verarbeitungsvorrichtung für dreidimensionale Modelle beinhaltet einen Formatumwandler für dreidimensionale Daten zum Umwandeln des Datenformats von durch eine Eingabeeinheit für dreidimensionale Daten eingegebenen dreidimensionalen Daten, einen Prozessor für dreidimensionale Daten zum Verarbeiten der durch den Formatumwandler für dreidimensionale Daten umgewandelten dreidimensionalen Daten, eine Erzeugungseinheit für dreidimensionale Modelle zum Erzeugen eines dreidimensionalen Modells aus den durch den dreidimensionalen Prozessor verarbeiteten dreidimensionalen Daten, und eine Bearbeitungseinrichtung für dreidimensionale Modelle zum Bearbeiten des durch die Erzeugungseinheit für dreidimensionale Modelle erzeugten dreidimensionalen Modells und Anwenden von Operationen auf die Formdaten. Ein dreidimensionales Modell wird unabhängig von der Art der in verschiedenen Moden eingegebenen dreidimensionalen Daten erzeugt und bearbeitet.
Claims (35)
1. Bildverarbeitungsverfahren zum Anzeigen von
Bildinformation, welche eine Eigenschaft einer Objektoberfläche eines
eingegebenen Bereichbilds repräsentiert, umfassend:
einen Rechenschritt (S304, 306, 308, 310, 312, 313, 315,
317, 319, 321, 323, 325, 327, 329) zum Berechnen eines die
Eigenschaft der Objektoberfläche repräsentierenden Werts; und
einen Anzeigeschritt (S305, 307, 309, 311, 314, 316, 318,
320, 322, 324, 326, 328, 330) zum Anzeigen von Bildinformation,
welche die Eigenschaft der Objektoberfläche auf der Grundlage des
in dem Rechenschritt berechneten Werts repräsentiert;
gekennzeichnet durch
einen Umwandlungsschritt (S303), der dem Rechenschritt und
dem Anzeigeschritt vorangeht, zum Umwandeln des Typs des
eingegebenen Bereichbilds durch Durchführen einer
Dichteumwandlung derart, daß eine einem Dichtequanteneinheitswert
entsprechende tatsächliche Länge einer tatsächlichen Länge eines
Pixels entlang jeder Koordinatenachse entspricht.
2. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Schritt zum Erfassen einer Sprungkante aus dem Bereichbild
beinhaltet.
3. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Schritt zum Berechnen eines linearen partiellen Differentials
aus dem Bereichbild beinhaltet.
4. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Schritt zum Berechnen eines quadratischen partiellen
Differentials aus dem Bereichbild beinhaltet.
5. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Schritt zum Approximieren des Bereichbilds als eine lokale
lineare Ebene und Berechnen von Koeffizienten einer Gleichung
derselben beinhaltet.
6. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Schritt zum Approximieren des Bereichbilds als eine lokale
quadratische Oberfläche und Berechnen von Koeffizienten einer
Gleichung derselben beinhaltet.
7. Verfahren nach Anspruch 3, bei dem der Rechenschritt einen
Schritt zum Berechnen eines quadratischen partiellen
Differentials aus dem Bereichbild und einen Schritt zum Berechnen
einer Gaußschen Krümmung unter Verwendung der berechneten
linearen und quadratischen partiellen Differentiale beinhaltet.
8. Verfahren nach Anspruch 3, bei dem der Rechenschritt einen
Schritt zum Berechnen eines quadratischen partiellen
Differentials aus dem Bereichbild und einen Schritt zum Berechnen
einer mittleren Krümmung unter Verwendung der berechneten
linearen und quadratischen partiellen Differentiale beinhaltet.
9. Verfahren nach Anspruch 3, bei dem der Rechenschritt einen
Schritt zum Berechnen eines quadratischen partiellen
Differentials aus dem Bereichbild und einen Schritt zum Berechnen
einer normalen Krümmung unter Verwendung der berechneten
linearen und quadratischen partiellen Differentiale beinhaltet.
10. Verfahren nach Anspruch 3, bei dem der Rechenschritt einen
Schritt zum Berechnen eines quadratischen partiellen
Differentials aus dem Bereichbild und einen Schritt zum Berechnen
eines Radius einer Krümmung unter Verwendung der berechneten
linearen und quadratischen partiellen Differentiale beinhaltet.
11. Verfahren nach Anspruch 7, bei dem der Rechenschritt einen
Schritt zum Unterscheiden des Vorzeichens der berechneten
Gaußschen Krümmung beinhaltet.
12. Verfahren nach Anspruch 8, bei dem der Rechenschritt einen
Schritt zum Unterscheiden des Vorzeichens der berechneten
mittleren Krümmung beinhaltet.
13. Verfahren nach Anspruch 1, bei dem der Rechenschritt einen
Partielldifferential-Berechnungsschritt zum Berechnen linearer
und quadratischer partieller Differentiale aus dem Bereichbild,
einen Krümmungsberechnungsschritt zum Berechnen einer Gaußschen
Krümmung und einer mittleren Krümmung unter Verwendung der
berechneten linearen und quadratischen partiellen
Differentiale, einen Vorzeichen-Unterscheidungsschritt zum
Unterscheiden der Vorzeichen der berechneten Gaußschen Krümmung und
mittleren Krümmung, und einen
Oberflächenkategorie-Unterscheidungsschritt zum Unterscheiden einer Oberflächenkategorie
durch eine Kombination des unterschiedenen Vorzeichens der
Gaußschen Krümmung und des unterschiedenen Vorzeichens der
mittleren Krümmung beinhaltet.
14. Verfahren nach Anspruch 3, bei dem der Rechenschritt einen
Schritt zum Berechnen eines Einheitsnormalenvektors unter
Verwendung des berechneten linearen partiellen Differentials
beinhaltet.
15. Verfahren nach Anspruch 14, bei dem der Rechenschritt einen
Schritt zum Erfassen einer Dachkante aus dem berechneten
Einheitsnormalenvektor beinhaltet.
16. Bildverarbeitungsverfahren nach Anspruch 1, ferner
umfassend die Schritte:
Eingeben eines Bereichbilds durch eine parallele Projektion
des Objekts in einer Richtung (S101);
Erzeugen eines zweidimensionalen Bilds aus dem eingegebenen
Bereichbild und Anzeigen des zweidimensionalen Bilds auf einer
Anzeige (S102);
Bestimmen einer Symmetrieachse des Objekts auf dem
zweidimensionalen Bild (S103);
Schätzen einer Form einer rückseitigen Oberfläche des
Objekts auf der Grundlage des eingegebenen Bereichbilds und der
bestimmten Symmetrieachse (S105, S501-503); und
Aufbauen eines dreidimensionalen Modells des Objekts auf
der Grundlage des eingegebenen dreidimensionalen Bereichbilds
und der geschätzten Form der rückseitigen Oberfläche des Objekts
(S105, S504-505).
17. Verfahren nach Anspruch 16, bei dem der Bestimmungsschritt
ferner beinhaltet:
Projizieren des gegebenen Bereichbilds auf drei
zweidimensionale Ebenen und Anzeigen einer Ansicht dreier
Oberflächen; und
Bestimmen der Symmetrieachse des Objekts unter Verwendung
der Ansicht dreier Oberflächen.
18. Bildverarbeitungsverfahren nach Anspruch 1, ferner
umfassend:
einen Oberflächenkategorien-Klassifizierungsschritt (S22)
zum Klassifizieren partieller Oberflächen, welche aus der
Objektoberfläche bestehen, auf der Grundlage des eingegebenen
Bereichbilds in Oberflächenkategorien; und
einen Polygonfleckerzeugungsschritt (S23) zum Zuweisen
einer geeigneten Größe von Polygonflecken zum Abdecken jeder
partiellen Oberfläche in Übereinstimmung mit der
Oberflächenkategorie, in welche die partielle Oberfläche klassifiziert
ist, und Erzeugen eines Polygonfleckmodells des Objekts mit den
Polygonflecken.
19. Verfahren nach Anspruch 18, bei dem Polygonflecke mit einer
kleinen Fläche stark unregelmäßigen Oberflächenkategorien unter
den klassifizierten Kategorien zugewiesen werden.
20. Verfahren nach Anspruch 18, bei dem der Abstand
repräsentativer Punkte zum Auswählen von Polygonflecken um so größer
gemacht wird, je kleiner die Unregelmäßigkeit einer
Oberflächenkategorie unter den klassifizierten Kategorien ist.
21. Bildverarbeitungsverfahren nach Anspruch 1, ferner
umfassend:
einen Erfassungsschritt (S121) zum Erfassen eines Punkts
auf der Oberfläche, der nicht durch die bereits erhaltenen
Polygonflecken abgedeckt ist;
einen Spitzenkandidaten-Auswahlschritt (S122) zum
Auswählen, aus anderen Punkten auf der Oberfläche, von Kandidaten
für andere Spitzen eines Polygons, dessen eine Spitze der in dem
Erfassungsschritt erfaßte Punkt ist;
einen Ermittlungsschritt (S123) zum Ermitteln, ob jeder
ausgewählte Punkt durch die bereits erhaltenen Polygonflecken
abgedeckt ist;
einen Vergleichschritt (S123) zum in einem Fall, in dem alle
der ausgewählten Punkte als nicht durch die Polygonflecken
abgedeckt ermittelt werden, Vergleichen einer normalen Richtung
an dem erfaßten Punkt mit einer normalen Richtung an jedem
ausgewählten Punkt; und
einen Registrierschritt (S124) zum Registrieren des
erfaßten Punkts und der ausgewählten Punkte als Spitzen eines
Polygonflecks, falls irgendwelche Unterschiede zwischen
Richtungen kleiner sind als ein vorbestimmter Betrag in jedem
Ergebnis des in dem Vergleichschritt durchgeführten Vergleichs,
und andernfalls Wiederholen des
Spitzenkandidaten-Auswahlschritts.
22. Verfahren nach Anspruch 21, bei dem dann, wenn in
irgendeinem Ergebnis des in dem Vergleichschritt durchgeführten
Vergleichs ein Richtungsunterschied größer als ein vorbestimmter
Betrag ist, ein Polygon, dessen eine Spitze der erfaßte Punkt ist
und dessen andere Spitzen die ausgewählten Punkte sind, zu der
Gruppe von Polygonen hinzugefügt wird.
23. Verfahren nach Anspruch 21, bei dem der Vergleich der
normalen Richtungen durch Vergleichen eines inneren Produkts
zwischen Normalenvektoren zweier normaler Richtungen ausgeführt
wird.
24. Verfahren nach Anspruch 22, bei dem der Vergleich der
normalen Richtungen durch Vergleichen eines inneren Produkts
zwischen Normalenvektoren zweier normaler Richtungen ausgeführt
wird.
25. Bildverarbeitungsverfahren nach Anspruch 1, ferner
umfassend:
einen Modellerzeugungsschritt (S182) zum Erzeugen eines
dreidimensionalen Modells aus dem eingegebenen Bereichbild;
einen Projektionsschritt (S183) zum Versehen des
dreidimensionalen Modells mit einer Lichtquelleninformation und
einer Eigenschaft des Objekts und Projizieren des
dreidimensionalen Modells auf eine Ebene;
einen Transformationsbestimmungsschritt (S184-187) zum
Bestimmen eines Typs einer Transformationsoperation und von
Werten von Parametern zum Transformieren des in dem
Modellerzeugungsschritt erzeugten dreidimensionalen Modells; und
einen Animationserzeugungsschritt (S188) zum Erzeugen
einer Animation, in welcher das projizierte dreidimensionale
Modell auf der Grundlage der in dem
Transformationsbestimmungsschritt durchgeführten Bestimmung sukzessive transformiert
wird.
26. Verfahren nach Anspruch 25, bei dem ein Polygonmodell als
das dreidimensionale Modell verwendet wird.
27. Verfahren nach Anspruch 25, bei dem die Typen von
Transformationsoperationen konisch machen, verwinden und krümmen
einschließen.
28. Bildverarbeitungsvorrichtung zum Anzeigen von
Bildinformation, welche eine Eigenschaft einer Objektoberfläche
eines eingegebenen Bereichbilds repräsentiert, umfassend:
eine Berechnungseinrichtung (3) zum Berechnen eines die
Eigenschaft der Objektoberfläche repräsentierenden Werts; und
eine Anzeigeeinrichtung (4) zum Anzeigen einer
Bildinformation, welche die Eigenschaft der Objektoberfläche auf der
Grundlage des durch die Berechnungseinrichtung berechneten Werts
repräsentiert;
gekennzeichnet durch
eine Umwandlungseinrichtung (3) zum anfänglichen Umwandeln
des Typs des eingegebenen Bereichbilds durch Durchführen einer
Dichteumwandlung derart, daß eine einem
Dichtequanteneinheitswert entsprechende tatsächliche Länge
einer tatsächlichen Länge eines Pixels entlang jeder
Koordinatenachse entspricht.
29. Bildverarbeitungsvorrichtung nach Anspruch 28, ferner
umfassend:
eine Oberflächenkategorien-Klassifizierungseinrichtung
zum Klassifizieren partieller Oberflächen, welche aus der
Objektoberfläche bestehen, auf der Grundlage des eingegebenen
Bereichbilds in Oberflächenkategorien; und
eine Polygonfleckerzeugungseinrichtung zum Zuweisen
einer geeigneten Größe von Polygonflecken zum Abdecken jeder
partiellen Oberfläche in Übereinstimmung mit der
Oberflächenkategorie, in welche die partielle Oberfläche klassifiziert
ist, und Erzeugen eines Polygonfleckmodells des Objekts mit den
Polygonflecken.
30. Bildverarbeitungsvorrichtung nach Anspruch 28, ferner
umfassend:
eine Erfassungseinrichtung zum Erfassen eines Punkts auf
der Oberfläche, der nicht durch die bereits erhaltenen
Polygonflecken abgedeckt ist;
eine Spitzenkandidaten-Auswahleinrichtung zum Auswählen,
aus anderen Punkten auf der Oberfläche, von Kandidaten für andere
Spitzen eines Polygons, dessen eine Spitze der durch die
Erfassungseinrichtung erfaßte Punkt ist;
eine Ermittlungseinrichtung zum Ermitteln, ob jeder
ausgewählte Punkt durch die bereits erhaltenen Polygonflecken
abgedeckt ist;
eine Vergleicheinrichtung zum in einem Fall, in dem alle der
ausgewählten Punkte als nicht durch die Polygonflecken abgedeckt
ermittelt werden, Vergleichen einer normalen Richtung an dem
erfaßten Punkt mit einer normalen Richtung an jedem ausgewählten
Punkt; und
eine Registriereinrichtung zum Registrieren des erfaßten
Punkts und der ausgewählten Punkte als Spitzen eines
Polygonflecks, falls irgendwelche Unterschiede zwischen Richtungen
kleiner sind als ein vorbestimmter Betrag in jedem Ergebnis des
durch die Vergleicheinrichtung durchgeführten Vergleichs, wobei
andernfalls die Auswahl durch die
Spitzenkandidaten-Auswahleinrichtung wiederholt wird.
31. Bildverarbeitungsvorrichtung nach Anspruch 28, ferner
umfassend:
eine Modellerzeugungseinrichtung zum Erzeugen eines
dreidimensionalen Modells aus dem eingegebenen Bereichbild;
eine Projektionseinrichtung zum Versehen des
dreidimensionalen Modells mit einer Lichtquelleninformation und einer
Eigenschaft des Objekts und Projizieren des dreidimensionalen
Modells auf eine Ebene;
eine Transformationsbestimmungseinrichtung (5, 6) zum
Bestimmen eines Typs einer Transformationsoperation und von
Werten von Parametern zum Transformieren des durch die
Modellerzeugungseinrichtung erhaltenen dreidimensionalen
Modells; und
eine Animationserzeugungseinrichtung zum Erzeugen einer
Animation, in welcher das projizierte dreidimensionale Modell
auf der Grundlage der Bestimmung durch die
Transformationsbestimmungseinrichtung durchgeführten Bestimmung sukzessive
transformiert wird.
32. Bildverarbeitungsvorrichtung nach Anspruch 28, ferner
umfassend:
eine Eingabeeinrichtung zum Eingeben des Bereichbilds durch
eine parallele Projektion des Objekts in einer Richtung;
eine Erzeugungseinrichtung zum Erzeugen eines
zweidimensionalen Bilds aus dem eingegebenen Bereichbild und Anzeigen
des zweidimensionalen Bilds auf einer Anzeigeeinrichtung (4);
eine Bestimmungseinrichtung (5, 6) zum Bestimmen einer
Symmetrieachse des Objekts auf dem zweidimensionalen Bild;
eine Schätzeinrichtung zum Schätzen einer Form einer
rückseitigen Oberfläche des Objekts auf der Grundlage des
eingegebenen Bereichbilds und der bestimmten Symmetrieachse; und
eine Aufbaueinrichtung zum Aufbauen eines
dreidimensionalen Modells des Objekts auf der Grundlage des eingegebenen
dreidimensionalen Bereichbilds und der geschätzten Form der
rückseitigen Oberfläche des Objekts.
33. Vorrichtung nach Anspruch 32, ferner umfassend eine
Einrichtung zum Speichern des aufgebauten dreidimensionalen
Modells als eine Datei externer Daten.
34. Vorrichtung nach Anspruch 32, bei der die
Bestimmungseinrichtung die Symmetrieachse des Objekts unter
Verwendung einer Ansicht dreier Oberflächen bestimmt.
35. Vorrichtung nach Anspruch 32, bei der die
Anzeigeeinrichtung (4) das erhaltene dreidimensionale Modell einer
Verarbeitung wie beispielsweise Aufhellung, Schattierung und
Projektionstransformation unterzieht und Ergebnisse der
Verarbeitung in einer zweidimensionalen Ebene anzeigt.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3196564A JPH0540809A (ja) | 1991-08-06 | 1991-08-06 | 3次元形状モデル作成装置 |
JP4188130A JPH0635996A (ja) | 1992-07-15 | 1992-07-15 | 3次元形状モデル作成方法及びその装置 |
JP4187711A JPH06111027A (ja) | 1992-07-15 | 1992-07-15 | 画像出力方法及びその装置 |
JP4198655A JPH0644346A (ja) | 1992-07-24 | 1992-07-24 | 距離画像処理方法及び装置 |
JP4198678A JPH0644363A (ja) | 1992-07-24 | 1992-07-24 | 距離画像処理方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69232403D1 DE69232403D1 (de) | 2002-03-21 |
DE69232403T2 true DE69232403T2 (de) | 2002-08-22 |
Family
ID=27528948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69232403T Expired - Lifetime DE69232403T2 (de) | 1991-08-06 | 1992-08-05 | Dreidimensionales Modellverarbeitungsverfahren und -gerät |
Country Status (3)
Country | Link |
---|---|
US (1) | US5936628A (de) |
EP (1) | EP0526881B1 (de) |
DE (1) | DE69232403T2 (de) |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5408605A (en) * | 1993-06-04 | 1995-04-18 | Sun Microsystems, Inc. | Command preprocessor for a high performance three dimensional graphics accelerator |
JP3466661B2 (ja) * | 1993-06-29 | 2003-11-17 | キヤノン株式会社 | 画像処理装置及びその方法 |
US7616198B2 (en) * | 1998-02-20 | 2009-11-10 | Mental Images Gmbh | System and computer-implemented method for modeling the three-dimensional shape of an object by shading of a two-dimensional image of the object |
US6556198B1 (en) * | 1997-06-16 | 2003-04-29 | Canon Kabushiki Kaisha | Polyhedron generating method and apparatus thereof, and storage medium for storing the method |
US6246784B1 (en) * | 1997-08-19 | 2001-06-12 | The United States Of America As Represented By The Department Of Health And Human Services | Method for segmenting medical images and detecting surface anomalies in anatomical structures |
US6271861B1 (en) * | 1998-04-07 | 2001-08-07 | Adobe Systems Incorporated | Smooth shading of an object |
US6516092B1 (en) * | 1998-05-29 | 2003-02-04 | Cognex Corporation | Robust sub-model shape-finder |
JP3612422B2 (ja) * | 1998-06-01 | 2005-01-19 | 株式会社アマダ | 板金の図形作成プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6856941B2 (en) * | 1998-07-20 | 2005-02-15 | Minebea Co., Ltd. | Impeller blade for axial flow fan having counter-rotating impellers |
US6563499B1 (en) * | 1998-07-20 | 2003-05-13 | Geometrix, Inc. | Method and apparatus for generating a 3D region from a surrounding imagery |
US6999073B1 (en) | 1998-07-20 | 2006-02-14 | Geometrix, Inc. | Method and system for generating fully-textured 3D |
US6456340B1 (en) * | 1998-08-12 | 2002-09-24 | Pixonics, Llc | Apparatus and method for performing image transforms in a digital display system |
US6304333B1 (en) * | 1998-08-19 | 2001-10-16 | Hewlett-Packard Company | Apparatus and method of performing dithering in a simplex in color space |
AUPP579098A0 (en) * | 1998-09-09 | 1998-10-01 | Canon Kabushiki Kaisha | A method and apparatus for parametric variation of text |
US6211884B1 (en) * | 1998-11-12 | 2001-04-03 | Mitsubishi Electric Research Laboratories, Inc | Incrementally calculated cut-plane region for viewing a portion of a volume data set in real-time |
SE9803996D0 (sv) * | 1998-11-20 | 1998-11-20 | Opticore Ab | Metod och anordning för skapande och modifierande av digitala 3D-modeller |
US6298148B1 (en) * | 1999-03-22 | 2001-10-02 | General Electric Company | Method of registering surfaces using curvature |
US7233326B1 (en) * | 1999-04-29 | 2007-06-19 | Autodesk, Inc. | Three dimensional modeling and animation system using master objects and modifiers |
US6094492A (en) * | 1999-05-10 | 2000-07-25 | Boesen; Peter V. | Bone conduction voice transmission apparatus and system |
DE10018143C5 (de) * | 2000-04-12 | 2012-09-06 | Oerlikon Trading Ag, Trübbach | DLC-Schichtsystem sowie Verfahren und Vorrichtung zur Herstellung eines derartigen Schichtsystems |
US7625335B2 (en) * | 2000-08-25 | 2009-12-01 | 3Shape Aps | Method and apparatus for three-dimensional optical scanning of interior surfaces |
US7787696B2 (en) * | 2000-08-28 | 2010-08-31 | University Of North Carolina At Charlotte | Systems and methods for adaptive sampling and estimating a systematic relationship between a plurality of points |
US7035803B1 (en) | 2000-11-03 | 2006-04-25 | At&T Corp. | Method for sending multi-media messages using customizable background images |
US6963839B1 (en) * | 2000-11-03 | 2005-11-08 | At&T Corp. | System and method of controlling sound in a multi-media communication application |
US7091976B1 (en) | 2000-11-03 | 2006-08-15 | At&T Corp. | System and method of customizing animated entities for use in a multi-media communication application |
US20080040227A1 (en) | 2000-11-03 | 2008-02-14 | At&T Corp. | System and method of marketing using a multi-media communication system |
US7203648B1 (en) | 2000-11-03 | 2007-04-10 | At&T Corp. | Method for sending multi-media messages with customized audio |
US6990452B1 (en) | 2000-11-03 | 2006-01-24 | At&T Corp. | Method for sending multi-media messages using emoticons |
US6976082B1 (en) | 2000-11-03 | 2005-12-13 | At&T Corp. | System and method for receiving multi-media messages |
ATE539562T1 (de) * | 2001-03-02 | 2012-01-15 | 3Shape As | Verfahren zum individuellen anpassen von hörmuscheln |
DE10111919A1 (de) * | 2001-03-13 | 2002-09-19 | Boegl Max Bauunternehmung Gmbh | Fahrwegträger |
JP4679757B2 (ja) * | 2001-06-01 | 2011-04-27 | パナソニック株式会社 | 3次元図形生成装置、及び3次元図形生成方法 |
US7068274B2 (en) * | 2001-08-15 | 2006-06-27 | Mitsubishi Electric Research Laboratories, Inc. | System and method for animating real objects with projected images |
US7671861B1 (en) * | 2001-11-02 | 2010-03-02 | At&T Intellectual Property Ii, L.P. | Apparatus and method of customizing animated entities for use in a multi-media communication application |
FR2837597A1 (fr) * | 2002-03-25 | 2003-09-26 | Thomson Licensing Sa | Procede de modelisation d'une scene 3d |
US7260250B2 (en) * | 2002-09-30 | 2007-08-21 | The United States Of America As Represented By The Secretary Of The Department Of Health And Human Services | Computer-aided classification of anomalies in anatomical structures |
JP4301791B2 (ja) * | 2002-10-04 | 2009-07-22 | 三菱重工業株式会社 | Cadシステム及びcadプログラム |
TW200419467A (en) * | 2003-01-16 | 2004-10-01 | Vrex Inc | A general purpose stereoscopic 3D format conversion system and method |
US7202867B1 (en) | 2003-01-31 | 2007-04-10 | Microsoft Corporation | Generation of glow effect |
US7274365B1 (en) | 2003-01-31 | 2007-09-25 | Microsoft Corporation | Graphical processing of object perimeter information |
JP3968056B2 (ja) * | 2003-06-10 | 2007-08-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 形状作成装置、コンピュータ装置を形状作成装置として動作させるための制御方法、該制御方法をコンピュータ装置に対して実行させるためのコンピュータ実行可能なプログラム |
US7650265B2 (en) * | 2003-10-07 | 2010-01-19 | Global Nuclear Fuel - Americas, Llc | Methods of using geometric constructs for neutronics modeling |
US20050253840A1 (en) * | 2004-05-11 | 2005-11-17 | Kwon Ryan Y W | Method and system for interactive three-dimensional item display |
DE102004036147B4 (de) * | 2004-07-24 | 2015-02-19 | Silke Brodbeck | Verfahren zur Oberflächenrekonstruktion |
US9024949B2 (en) * | 2004-10-13 | 2015-05-05 | Sony Corporation | Object representation using distance functions |
WO2006042706A1 (de) * | 2004-10-15 | 2006-04-27 | X3D Technologies Gmbh | Verfahren zur erzeugung räumlich darstellbarer bilder und anordnung zur räumlich wahrnehmbaren darstellung solcher bilder |
JP4449723B2 (ja) * | 2004-12-08 | 2010-04-14 | ソニー株式会社 | 画像処理装置、画像処理方法、およびプログラム |
US7446820B2 (en) * | 2005-03-30 | 2008-11-04 | Intel Corporation | Methods and apparatus for re-scaling image by variable re-scaling factor using B-spline interpolator |
US7720271B2 (en) * | 2005-04-08 | 2010-05-18 | Siemens Medical Solutions Usa, Inc. | Estimation of solitary pulmonary nodule diameters with reaction-diffusion segmentation |
US7590273B2 (en) * | 2005-04-08 | 2009-09-15 | Siemens Corporate Research, Inc. | Estimation of solitary pulmonary nodule diameters with a hybrid segmentation approach |
US7711172B2 (en) | 2005-04-08 | 2010-05-04 | Siemens Medical Solutions Usa, Inc. | Automatic nodule measurements |
JP4646712B2 (ja) * | 2005-07-05 | 2011-03-09 | パナソニック株式会社 | コンピュータグラフィックス描画方法及び描画装置 |
US20070099783A1 (en) * | 2005-10-27 | 2007-05-03 | Rennco, Inc. | Bag forming device |
US7639249B2 (en) * | 2006-05-05 | 2009-12-29 | Microsoft Corporation | Direct inset beveling of geometric figures |
JP4897411B2 (ja) * | 2006-09-26 | 2012-03-14 | 任天堂株式会社 | 情報処理プログラムおよび情報処理装置 |
US8016779B2 (en) * | 2007-04-09 | 2011-09-13 | Tyco Healthcare Group Lp | Compression device having cooling capability |
US10930063B2 (en) | 2007-04-17 | 2021-02-23 | Eagle View Technologies, Inc. | Aerial roof estimation systems and methods |
US8145578B2 (en) | 2007-04-17 | 2012-03-27 | Eagel View Technologies, Inc. | Aerial roof estimation system and method |
US7899846B2 (en) * | 2007-09-28 | 2011-03-01 | Microsoft Corporation | Declarative model editor generation |
CA2731680C (en) * | 2008-08-06 | 2016-12-13 | Creaform Inc. | System for adaptive three-dimensional scanning of surface characteristics |
US8170840B2 (en) | 2008-10-31 | 2012-05-01 | Eagle View Technologies, Inc. | Pitch determination systems and methods for aerial roof estimation |
US8731234B1 (en) * | 2008-10-31 | 2014-05-20 | Eagle View Technologies, Inc. | Automated roof identification systems and methods |
US8209152B2 (en) | 2008-10-31 | 2012-06-26 | Eagleview Technologies, Inc. | Concurrent display systems and methods for aerial roof estimation |
CN102074165A (zh) * | 2009-11-20 | 2011-05-25 | 鸿富锦精密工业(深圳)有限公司 | 资讯显示***及方法 |
CN102122393A (zh) * | 2010-01-09 | 2011-07-13 | 鸿富锦精密工业(深圳)有限公司 | 三维模型建立***、方法及具有该***的建模装置 |
US8611674B1 (en) * | 2010-01-18 | 2013-12-17 | Disney Enterprises, Inc. | System and method for invariant-based normal estimation |
US9911228B2 (en) | 2010-02-01 | 2018-03-06 | Eagle View Technologies, Inc. | Geometric correction of rough wireframe models derived from photographs |
JP2012042720A (ja) * | 2010-08-19 | 2012-03-01 | Sony Corp | 画像処理装置および方法、並びにプログラム |
US8900126B2 (en) * | 2011-03-23 | 2014-12-02 | United Sciences, Llc | Optical scanning device |
CN102254339A (zh) * | 2011-03-28 | 2011-11-23 | 深圳市蓝韵实业有限公司 | 一种实时医学超声三维成像方法 |
US8900125B2 (en) * | 2012-03-12 | 2014-12-02 | United Sciences, Llc | Otoscanning with 3D modeling |
CN102880454B (zh) * | 2012-06-15 | 2016-03-09 | 深圳市旭东数字医学影像技术有限公司 | 医学三维模型的网页显示的方法及其*** |
US9141731B2 (en) * | 2012-06-21 | 2015-09-22 | Siemens Product Lifecycle Management Software Inc. | Symmetry of discovered geometric relationships in a three dimensional model |
JP6169366B2 (ja) * | 2013-02-08 | 2017-07-26 | 株式会社メガチップス | 物体検出装置、プログラムおよび集積回路 |
US9589382B2 (en) | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9514562B2 (en) | 2013-03-15 | 2016-12-06 | Dreamworks Animation Llc | Procedural partitioning of a scene |
US9659398B2 (en) * | 2013-03-15 | 2017-05-23 | Dreamworks Animation Llc | Multiple visual representations of lighting effects in a computer animation scene |
US9811936B2 (en) | 2013-03-15 | 2017-11-07 | Dreamworks Animation L.L.C. | Level-based data sharing for digital content production |
US9501498B2 (en) * | 2014-02-14 | 2016-11-22 | Nant Holdings Ip, Llc | Object ingestion through canonical shapes, systems and methods |
US9098754B1 (en) | 2014-04-25 | 2015-08-04 | Google Inc. | Methods and systems for object detection using laser point clouds |
JP2016034076A (ja) | 2014-07-31 | 2016-03-10 | キヤノン株式会社 | 撮像装置及びその制御方法 |
US20170124726A1 (en) * | 2015-11-02 | 2017-05-04 | Canon Kabushiki Kaisha | System and method for determining wall thickness |
CN105550682B (zh) * | 2015-11-26 | 2019-10-22 | 北京市计算中心 | 钟鼎碑刻拓印方法 |
GB2550347A (en) * | 2016-05-13 | 2017-11-22 | The Imp College Of Science Tech & Medicine | Real-Time Height Mapping |
CN109313816B (zh) * | 2016-05-24 | 2023-11-14 | 皇家飞利浦有限公司 | 深度增强的断层合成重建 |
EP3460763A1 (de) * | 2017-09-20 | 2019-03-27 | Dassault Systèmes | Computerimplementiertes verfahren zur anzeige einer teilmenge einer digital modellierten anordnung von objekten |
US10503843B2 (en) | 2017-12-19 | 2019-12-10 | Eagle View Technologies, Inc. | Supervised automatic roof modeling |
CN109584359B (zh) * | 2018-11-30 | 2023-01-10 | 合刃科技(深圳)有限公司 | 移动终端天线的无损检测方法、装置及*** |
CN111028349B (zh) * | 2019-10-24 | 2023-08-18 | 宝略科技(浙江)有限公司 | 一种适用于海量三维实景数据快速可视化的层级构建方法 |
CN112433003A (zh) * | 2020-11-30 | 2021-03-02 | 中广核检测技术有限公司 | 一种用于t形结构件超声波检测的三维仿真方法 |
CN116452770B (zh) * | 2023-02-17 | 2023-10-20 | 北京德风新征程科技股份有限公司 | 三维模型重建方法、装置、设备和介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58177295A (ja) * | 1982-04-07 | 1983-10-17 | 株式会社日立製作所 | ロボット制御装置 |
US4757385A (en) * | 1985-03-16 | 1988-07-12 | Canon Kabushiki Kaisha | Video signal processing apparatus with means for correcting interlace displacement |
NL8600831A (nl) * | 1986-04-02 | 1987-11-02 | Oce Nederland Bv | Werkwijze voor het opwekken en bewerken van modellen van twee- of driedimensionale objecten in een computer en voor het weergeven van die modellen op een display. |
US4821214A (en) * | 1986-04-17 | 1989-04-11 | Brigham Young University | Computer graphics method for changing the shape of a geometric model using free-form deformation |
JP2630605B2 (ja) * | 1987-07-29 | 1997-07-16 | 三菱電機株式会社 | 曲面創成方法 |
CA1306052C (en) * | 1988-03-18 | 1992-08-04 | Yoshiyuki Okada | Process and apparatus for reducing picture with fine line disappearance prevention |
US5237647A (en) * | 1989-09-15 | 1993-08-17 | Massachusetts Institute Of Technology | Computer aided drawing in three dimensions |
US5150427A (en) * | 1989-09-29 | 1992-09-22 | General Electric Company | Three dimensional disarticulation |
JP2738588B2 (ja) * | 1990-01-12 | 1998-04-08 | 三菱電機株式会社 | 立体モデル描画方法 |
US5369735A (en) * | 1990-03-30 | 1994-11-29 | New Microtime Inc. | Method for controlling a 3D patch-driven special effects system |
US5383119A (en) * | 1991-07-03 | 1995-01-17 | General Electric Company | Method and apparatus for acquiring complete radon data for exactly reconstructing a three dimensional computerized tomography image of a portion of an object irradiated by a cone beam source |
DE69328230T2 (de) * | 1992-12-01 | 2000-08-10 | Canon K.K., Tokio/Tokyo | Entfernungbildverarbeitungsvorrichtung und -verfahren |
-
1992
- 1992-08-05 DE DE69232403T patent/DE69232403T2/de not_active Expired - Lifetime
- 1992-08-05 EP EP92113328A patent/EP0526881B1/de not_active Expired - Lifetime
-
1995
- 1995-03-09 US US08/401,296 patent/US5936628A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5936628A (en) | 1999-08-10 |
EP0526881A3 (en) | 1995-03-22 |
DE69232403D1 (de) | 2002-03-21 |
EP0526881A2 (de) | 1993-02-10 |
EP0526881B1 (de) | 2002-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69232403T2 (de) | Dreidimensionales Modellverarbeitungsverfahren und -gerät | |
EP1173749B1 (de) | Bildbearbeitung zur vorbereitung einer texturanalyse | |
DE60026197T2 (de) | Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung | |
DE69924700T2 (de) | Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten | |
DE69934478T2 (de) | Verfahren und Gerät zur Bildverarbeitung auf Basis von Metamorphosemodellen | |
DE69924699T2 (de) | Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten | |
DE69020780T2 (de) | Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung. | |
DE69716877T2 (de) | System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem | |
DE69129427T2 (de) | Pixelinterpolation im Perspektivraum | |
DE102016100101A1 (de) | System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen | |
DE69328230T2 (de) | Entfernungbildverarbeitungsvorrichtung und -verfahren | |
DE102017116952A1 (de) | System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten | |
EP3688725B1 (de) | Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts | |
DE112012005350T5 (de) | Verfahren zum Schätzen der Stellung eines Objekts | |
EP2528042B1 (de) | Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen | |
DE69924230T2 (de) | Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten | |
DE202009013865U1 (de) | Konzept zum Auswählen eines optimierten Bewertungsmerkmalsteilsatzes für eine Inspektion von Freiformoberflächen und Konzept zum Inspizieren einer Freiformoberfläche | |
EP1316057A2 (de) | Auswerten von kantenrichtungsinformation | |
DE102019104310A1 (de) | System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem | |
DE69702067T2 (de) | Verfahren zur anzeige eines 2-d designs auf einem 3-d objekt | |
DE602004012341T2 (de) | Verfahren und System zur Bereitstellung einer Volumendarstellung eines dreidimensionalen Objektes | |
DE69418630T2 (de) | Dynamischer Bildprozessor | |
CN115222884A (zh) | 一种基于人工智能的空间对象分析及建模优化方法 | |
EP2859531B1 (de) | Verfahren zur bildbasierten veränderungserkennung | |
DE69404151T2 (de) | Objektorientiertes graphisches abtastverfahren und -system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |