-
Die Offenbarung betrifft ein Bildverarbeitungsverfahren und insbesondere ein Bildverarbeitungsverfahren, das ein nicht-uniforme-rationale-B-Splines-Modell nutzt.
-
In einem konventionellen Verfahren zur Korrektur von Bildverzerrung, die von Kameralinsen herrührt, wird ein Verzerrungsmodell auf Basis geometrischer Gestaltungen der Kameralinsen konstruiert und Bilder werden gemäß dem Verzerrungsmodell korrigiert. Zum Beispiel ist das Verzerrungsmodell für eine Fischaugenlinse ein polynomes Modell.
-
Zusätzlich zu den geometrischen Gestaltungen der Kameralinsen können auch Linsenverformung während der Herstellung, Ungenauigkeit der Linsenanordnung und/oder Ungenauigkeit der Positionierung des Bildsensors zu Bildverzerrung führen.
-
In einem Zustand, in dem ein weiches Objekt (z.B. ein Stoffstück) auf eine unebene Oberfläche (z.B. eine gekrümmte Oberfläche) gelegt wird, kann das so aufgenommene Bild des weichen Objekts wie ein Bild mit Bildverzerrung aussehen. Die in den konventionellen Bildverarbeitungsverfahren genutzten Verzerrungsmodelle sind aber nicht in der Lage, das Bild des „verzerrten“ weichen Objekts (im Gegensatz zu einem auf eine flache Oberfläche gelegten) in eines umzuändern, das wie ein Bild desselben Objekts, das aber auf eine flache Oberfläche gelegt wurde, aussieht.
-
Daher ist es eine Aufgabe der Offenbarung, ein Bildverarbeitungsverfahren bereitzustellen, das in der Lage sein kann, von geometrischen Gestaltungen der Kameralinsen, Linsenverformung während der Herstellung, Ungenauigkeit der Linsenanordnung, Ungenauigkeit der Positionierung des Bildsensors und/oder Verformung des aufgenommenen Objekts selbst in der physischen Welt herrührende Verzerrung zu korrigieren.
-
Gemäß der Offenbarung beinhaltet das Bildverarbeitungsverfahren: Erfassen eines Bilds einer Kalibrierungstafel; Erfassen einer Mehrzahl von Merkmalspunkten im Bild der Kalibrierungstafel; Auswerten einer Mehrzahl von Kontrollparametern auf Basis der Merkmalspunkte, wobei die Kontrollparameter zusammenwirkend eine geometrische gekrümmte Oberfläche definieren, die an die Merkmalspunkte angepasst ist; und Durchführen einer Bildkorrektur an einem zu korrigierenden Bild auf Basis der geometrischen gekrümmten Oberfläche zum Erzeugen eines korrigierten Bilds.
-
Andere Merkmale und Vorteile der Offenbarung werden in der folgenden ausführlichen Beschreibung der Ausführungsform(en) in Bezug auf die Begleitzeichnungen offensichtlich, bei denen:
- 1 ein Flussdiagramm ist, das die Schritte einer Ausführungsform des Bildverarbeitungsverfahrens gemäß dieser Offenbarung veranschaulicht;
- 2 eine schematische Darstellung ist, die eine Kalibrierungstafel veranschaulicht;
- 3 eine schematische Darstellung ist, die eine Mehrzahl von Eckpunkten eines mithilfe einer Fischaugenlinse aufgenommenen Bilds einer Kalibrierungstafel veranschaulicht;
- 4 eine schematische Darstellung ist, die eine parametrische nicht-uniforme-rationale-B-Splines-Fläche mit einer Mehrzahl von Kontrollpunkten davon veranschaulicht, die anhand der Eckpunkte ausgewertet werden;
- 5 eine schematische Darstellung ist, die das Definieren einer Anzahl von Pixeln eines korrigierten Bilds veranschaulicht;
- 6 eine schematische Darstellung ist, die einen Bereich der parametrischen nicht-uniforme-rationale-B-Splines-Fläche veranschaulicht;
- 7 eine schematische Darstellung ist, die mit den 5 und 6 kooperiert zum Veranschaulichen des Erfassens von Pixelwerten der Pixel des korrigierten Bilds;
- 8 eine schematische Darstellung ist, die eine Koordinatenebene veranschaulicht, die von einem Bildkoordinatensystem abgedeckt werden muss, das einem zu korrigierenden Bild entspricht;
- 9 eine schematische Darstellung ist, die eine weitere Implementierung zur Berechnung der Pixelwerte der Pixel des korrigierten Bilds veranschaulicht;
- 10 eine schematische Darstellung ist, die ein korrigiertes Bild eines zu korrigierenden Bilds, das ein Bild der Kalibrierungstafel ist, beispielhaft veranschaulicht;
- 11 eine schematische Darstellung ist, die eine weitere Kalibrierungstafel veranschaulicht;
- die 12A bis 12E eine erste beispielhafte Implementierung dieser Ausführungsform veranschaulichen und
- die 13A bis 13F eine zweite beispielhafte Implementierung dieser Ausführungsform veranschaulichen.
-
Bevor die Offenbarung ausführlicher beschrieben wird, ist zu beachten, dass, wo es für angebracht gehalten wurde, Bezugszeichen oder Endteile von Bezugszeichen unter den Figuren wiederholt wurden, um einander entsprechende oder analoge Elemente zu bezeichnen, die wahlweise ähnliche Eigenschaften haben können.
-
Die Ausführungsform des Bildverarbeitungsverfahrens, Bezug nehmend auf die 1 bis 3, wird durch ein Korrektursystem implementiert, das eine Kameravorrichtung und eine Rechnervorrichtung beinhaltet und das die Schritte 11 bis 14 beinhaltet. Die Rechnervorrichtung kann ein Desktop-Computer, ein Laptop, ein Tablet usw. sein und diese Offenbarung ist in dieser Hinsicht nicht beschränkt.
-
In Schritt 11 wird die Kameravorrichtung zum Aufnehmen eines Bilds einer Kalibrierungstafel 2 verwendet. In dieser Ausführungsform ist die Kalibrierungstafel 2 ein Schachbrett, diese Offenbarung ist aber in dieser Hinsicht nicht beschränkt. In Schritt 12 erfasst die Rechnervorrichtung eine Mehrzahl von Merkmalspunkten im Bild der Kalibrierungstafel 2. In einem Beispiel, wie in 3 gezeigt, verwendet die Rechnervorrichtung die Harris-Eckenerkennungsmethode zum Erfassen/Erkennen einer Vielzahl von Eckpunkten 31 in dem Bild 3 der Kalibrierungstafel 2, so dass sie als die Merkmalspunkte in der Form von schwimmenden Punkten dienen. In einer Ausführungsform kann die Kalibrierungstafel 2 andersartig sein, wie z.B. mit regelmäßig beabstandeten Punkten gemustert, wie in 11 gezeigt, und die Rechnervorrichtung kann durch Bilderkennungsmethoden eine Mitte jedes Punkts erfassen, so dass sie als die Merkmalspunkte dienen.
-
In Schritt
13, Bezug nehmend auf
4, berechnet/wertet die Rechnervorrichtung mehrere Kontrollparameter (z.B. Kontrollpunkte
41) (aus), die zusammenwirkend eine geometrische gekrümmte Oberfläche definieren, die an die Merkmalspunkte
31 angepasst ist. In dieser Ausführungsform ist die geometrische gekrümmte Oberfläche eine parametrische nicht-uniforme-rationale-B-Splines- (Non-uniform Rational B-Splines - NURBS) -Fläche 4, die durch Interpolation der parametrischen NURBS-Fläche erhalten wird, wobei die Merkmalspunkte
31 als Interpolationspunkte zur Auswertung der parametrischen NURBS-Fläche
4 verwendet werden, die an die Merkmalspunkte
31 angepasst ist und die definiert wird durch:
wobei S(u,v) die durch (m+1)×(n+1) Kontrollparameter (Kontrollpunkte
41) definierte parametrische NURBS-Fläche
4 repräsentiert, m und n benutzerdefinierte positive Ganzzahlen sind, {w
i,j} einen Satz gewichteter Werte repräsentiert, {P
i,j} einen Satz der Kontrollpunkte
41 repräsentiert, die unter Verwendung der Merkmalspunkte
31 berechnet werden, N
i,p(u) eine normalisierte B-Spline-Basisfunktion repräsentiert, die auf nichtperiodischen Knotenvektoren U={0,0, ..., 0, u
p+1, ..., u
m, 1, 1, ..., 1} definiert ist, N
j,q(v) eine normalisierte B-Spline-Basisfunktion repräsentiert, die auf nicht-periodischen Knotenvektoren V = {0,0,..., 0, v
q+1, ..., v
n, 1, 1, ..., 1} definiert ist, p einen Grad in einer Richtung der Knotenvektoren U repräsentiert (d.h. einer axialen Richtung einer u-Achse eines Bereichs
6 der parametrischen NURBS-Fläche
4) und q einen Grad in einer Richtung der Knotenvektoren V repräsentiert (d.h. eine axiale Richtung einer v-Achse des Bereichs
6 der parametrischen NURBS-Fläche
4). Es ist zu beachten, dass u zu [0, 1] gehört und v zu [0, 1] gehört.
-
In Schritt 14 verwendet die Rechnervorrichtung die parametrische NURBS-Fläche 4 zum Durchführen einer Bildkorrektur an einem zu korrigierenden Bild, um ein korrigiertes Bild zu erzeugen. Das Bild 3 der Kalibrierungstafel 2 in Form des in 3 gezeigten Schachbretts (siehe 2) wird als das zu korrigierende Bild 7 (siehe 7) zur Veranschaulichung im Folgenden verwendet. Der in dieser Offenbarung durchgehend verwendete Ausdruck „Korrigieren eines Bilds“ oder dergleichen soll umfassen, dass eine „Bildverzerrung“ infolge von optischen Imperfektionen abgeschwächt oder ausgeschlossen wird und/oder dass jedwedes im Bild aufgenommene Objekt, das beim Aufnehmen des Bilds in der physischen Welt „verzerrt“ oder „außer Form gebracht“ ist, wie ein Bild eines auf eine gekrümmte Oberfläche gelegten weichen Stoffs, nach Abschluss der Bildkorrektur „geglättet“ und in seine „normale Form“ zurückversetzt wird, als ob das Bild aufgenommen worden wäre, wenn zum Beispiel der Stoff auf eine ebene Fläche gelegt wurde.
-
Für das korrigierte Bild 5, Bezug nehmend auf 5, werden zuerst eine erste Pixelzahl (k) entlang einer ersten Bildachse (z.B. einer x-Achse) des korrigierten Bilds 5 und eine zweite Pixelzahl (t) entlang einer zweiten Bildachse, die quer zur ersten Bildachse (z.B. einer y-Achse) des korrigierten Bilds 5 ist, definiert. Das heißt, eine Größe/Auflösung des korrigierten Bilds 5 kann wie in diesem Korrekturalgorithmus erwünscht festgelegt/definiert werden.
-
Weiter mit Bezug auf die 6 und 7 werden die erste Pixelzahl (k) der ersten Abtastpunkte {ui | i=1, 2, ..., k} und die zweite Pixelzahl (t) der zweiten Abtastpunkte {vj| j=1, 2, ..., t} auf der u-Achse bzw. der v-Achse im Bereich 6 der parametrischen NURBS-Fläche 4 definiert. Die ersten und die zweiten Abtastpunkte definieren auf der parametrischen NURBS-Fläche 4 zusammenwirkend eine Mehrzahl von Punkten einer gekrümmten Oberfläche (die schwarzen Punkte in 6), die jeweils einem jeweiligen der Pixel des korrigierten Bilds 5 entsprechen. In dieser Ausführungsform unterteilen die ersten Abtastpunkte die Spanne zwischen 0 und 1 auf der u-Achse gleichmäßig, d.h. ein Abstand zwischen jedweden von zwei benachbarten ersten Abtastpunkten ist 1/k; die zweiten Abtastpunkte unterteilen die Spanne zwischen 0 und 1 auf der v-Achse gleichmäßig, d.h. ein Abstand zwischen jedweden von zwei benachbarten zweiten Abtastpunkten ist 1/t; und Koordinaten (ui , vj ) im Bereich 6 entsprechen einem Punkt der gekrümmten Oberfläche S ((i-0,5)/k,(j-0,5)/t) auf der parametrischen NURBS-Fläche 4. Das heißt, falls f(i,j) verwendet wird, um ein (i,j)-tes Pixel des korrigierten Bilds 5 (ein Pixel an der i-ten Spalte und der j-ten Reihe einer Pixelanordnung des korrigierten Bilds 5) darzustellen, entspricht f(i,j) (ui ,vj ) und dem Punkt der gekrümmten Oberfläche S((i-0,5)/5 k,(j-0,5)/t), wobei i eine positive Ganzzahl zwischen 1 und k (einschließlich 1 und k) ist und j eine positive Ganzzahl zwischen 1 und t (einschließlich 1 und t) ist. Wie in 6 gezeigt, ist der Bereich 6 in eine Mehrzahl identischer rechteckiger oder quadratischer Kästchen 64 unterteilt, deren Anzahl die gleiche wie eine Pixelgesamtzahl des korrigierten Bilds 5 ist. Jedes Kästchen 64 entspricht einem jeweiligen der Pixel des korrigierten Bilds 5 und hat einen Mittelpunkt, der einem jeweiligen der Punkte der gekrümmten Oberfläche auf der parametrischen NURBS-Fläche 4 entspricht. Dementsprechend entspricht jedes Pixel des korrigierten Bilds 5 einem jeweiligen der Punkte der gekrümmten Oberfläche, der dem Mittelpunkt des entsprechenden Kästchens 64 entspricht. Jedes Kästchen 64 im Bereich 6 entspricht einer Polygonregion 62 der parametrischen NURBS-Fläche 4 und jede Polygonregion 62 enthält einen Punkt der gekrümmten Oberfläche 63, der einem Pixel des korrigierten Bilds 5 entspricht. Es ist hierbei zu beachten, dass, da die parametrische NURBS-Fläche 4 keine flache Fläche ist, ihre Polygonregionen 62 sich in Größe und/oder Form voneinander unterscheiden können. Zum Beispiel können in dem in 7 abgebildeten Beispiel die Polygonregionen 62 ganz links wie Parallelogramme mit nicht-rechtwinkligen Ecken aussehen, während die in der Mitte wie Quadrate aussehen können.
-
Dann kann ein Pixelwert des Pixels f(i,j) des korrigierten Bilds 5 durch Durchführen einer Interpolation (z.B. Nächste-Nachbar-Interpolation, bilineare Interpolation usw.) auf Basis von wenigstens einem Pixel des zu korrigierenden Bilds 7 berechnet werden, das an eine Position angrenzt, die einem der Punkte der gekrümmten Oberfläche 63 entspricht, der dem Pixel f(i,j) entspricht (der Position auf dem zu korrigierenden Bild 7, die auf den entsprechenden Punkt der gekrümmten Oberfläche 63 ausgerichtet ist, wenn die parametrische NURBS-Fläche 4 mit der Kalibrierungstafel 2 in dem zu korrigierenden Bild 7 zusammenfällt). Zum Beispiel fällt in 7 die parametrische NURBS-Fläche 4 mit der Kalibrierungstafel 2 in dem zu korrigierenden Bild 7 zusammen und der Pixelwert eines Pixels f(5,6) des korrigierten Bilds 5 kann auf Basis von wenigstens einem Pixel des zu korrigierenden Bilds 7, das an einen Punkt der gekrümmten Oberfläche 63 S(4,5/k,5,5/t) angrenzt, entsprechend den Koordinaten (u5, v6) im Bereich 6 der parametrischen NURBS-Fläche 4 berechnet werden.
-
Da jeder Punkt der gekrümmten Oberfläche als schwimmender Punkt repräsentiert wird, Bezug nehmend auf 8, sollte ein Bildkoordinatensystem, das dem zu korrigierenden Bild 7 entspricht, eine Koordinatenebene 9 bedecken, die durch vier Endpunkte definiert wird: C1(-0,5,-0,5), C2(M-1+0,5,-0,5), C3(M-1+0,5,N-1+0,5) und C4(-0,5,N-1+0,5), wenn das zu korrigierende Bild 7 eine Anzahl (M×N) von Pixeln hat, um die Punkte der gekrümmten Oberfläche zu bedecken, die an Rändern der parametrischen NURBS-Fläche 4 angeordnet sind. Das (i,j)-te Pixel des zu korrigierenden Bilds 7 hat einen Mittelpunkt, dessen Koordinaten im Bildkoordinatensystem (i-1,j-1) sind, wobei i eine positive Ganzzahl zwischen 1 und M (einschließlich 1 und M) ist und j eine positive Ganzzahl zwischen 1 und N (einschließlich 1 und N) ist.
-
In einer weiteren Ausführungsform, Bezug nehmend auf
9, kann der Pixelwert des Pixels f(i,j) (z.B. f(5,6)) des korrigierten Bilds
5 durch Durchführen einer Interpolation auf Basis eines gewichteten Mittels der Pixel des zu korrigierenden Bilds
7, das die Polygonregion
62 der parametrischen NURBS-Fläche
4 überlappt, die den Punkt ((i-0,5)/k,(j-0,5)/t) (z.B. den Punkt S(4,5/k,5,5/t) in
9) enthält, berechnet werden. Jedes Pixel des zu korrigierenden Bilds
7 hat eine Gewichtung, die ein Verhältnis einer Fläche des Pixels ist, die die Polygonregion
62 überlappt. Zum Beispiel überlappt in
9 die Polygonfläche
62 die Pixel
P1 bis
P5 des zu korrigierenden Bilds
7 mit den Flächen
A1 ,
A2 ,
A3 ,
A4 bzw.
A5 . Indem
gemacht wird, kann das gewichtete Mittel repräsentiert werden durch
wobei
p1 einen Pixelwert des Pixels
Pi des zu korrigierenden Bilds
7 repräsentiert und A
i/V die Gewichtung für das Pixel
Pi ist. In noch einer weiteren Ausführungsform kann die Gewichtung für das Pixel
Pi des zu korrigierenden Bilds
7 auf Basis eines Abstands zwischen einer Mitte des Pixels Pi und dem Punkt ((i-0,5)/k,(j-0,5)/t) in dem zu korrigierenden Bild
7 definiert werden, wobei die Gewichtung umso größer ist, je kürzer der Abstand ist.
-
Dank der Punkte der gekrümmten Oberfläche 63 kann jedes Bild, das mit derselben Kameravorrichtung aufgenommen wird, korrigiert werden (in dem Sinne, dass ein Objekt im aufgenommenen Bild nach Durchführung der Korrektur unverzerrt erscheinen kann). 10 veranschaulicht ein korrigiertes Bild 5, das durch Durchführen der oben erwähnten Bildkorrektur am Bild 3 der Kalibrierungstafel 2 (siehe 2) erfasst wird, das als das zu korrigierende Bild 7 dient.
-
Da der oben erwähnte Bildkorrekturalgorithmus auf einem Aufnahmeergebnis einer Kamera basiert, können Verzerrungen infolge von zum Beispiel geometrischer Gestaltung der Kameralinse, Linsenverformung während der Herstellung, Ungenauigkeit der Linsenanordnung und/oder Ungenauigkeit der Positionierung des Bildsensors alle durch den Bildkorrekturalgorithmus abgeschwächt oder korrigiert werden. Außerdem kann eine Verformung des aufgenommenen Bilds, die sich aus dem aufgenommenen Objekt selbst in der physischen Welt (zum Beispiel ein aufzunehmendes Stück aus weichem Stoff wird auf eine gekrümmte Oberfläche gelegt) ergibt, ebenfalls mithilfe eines derartigen Bildkorrekturalgorithmus von der Verformung befreit werden.
-
Die 12A bis 12E veranschaulichen eine erste beispielhafte Implementierung der Ausführungsform. Wie in 12A gezeigt, wird ein Schachbrett 21, bei dem jedes Feld 211 ein quadratisches Muster mit einer Seitenlänge von 20 mm ist, an einer Ebene angebracht. Eine Kamera mit einer Fischaugenlinse wird zum Aufnehmen eines Bilds 3 des Schachbretts 21 verwendet (Schritt 11), das eine Pixelzahl von 640×480 hat, wie in 12B gezeigt.
-
Gemäß Schritt 12 erfasst die Rechnervorrichtung eine Anzahl (13×9) von Eckpunkten 31 durch Eckenerkennung, wie in 12C gezeigt, wobei jeder der Eckpunkte 31 als ein schwimmender Punkt dargestellt wird.
-
Gemäß Schritt 13 verwendet die Rechnervorrichtung die Eckpunkte 31 als Interpolationspunkte zum Berechnen einer parametrischen NURBS-Fläche 4, die an die Eckpunkte 31 angepasst ist, und berechnet eine Mehrzahl von Punkten der gekrümmten Oberfläche 63, die jeweils den Mittelpunkten der Kästchen 64 entsprechen (siehe 6 und 12D). In dieser beispielhaften Implementierung sind sowohl der Grad (p) in der u-Achsenrichtung als auch der Grad (q) in der v-Achsenrichtung zwei, die Knotenvektoren, die die u-Achsenrichtung für Ni,p(u) definieren, sind [0, 0, 0, 1/11, 2/11, 3/11, 4/11, 5/11, 6/11, 7/11, 8/11, 9/11, 10/11, 1, 1, 1], die interpolierten Werte in der u-Achsenrichtung sind [0, 1/12, 2/12, 3/12, 4/12, 5/12, 6/12, 7/12, 8/12, 9/12, 10/12, 11/12, 1], die Knotenvektoren, die die v-Achsenrichtung für Nj,q(v) definieren, sind [0, 0, 0, 1/7, 2/7, 3/7, 4/7, 5/7, 6/7, 1, 1, 1], die interpolierten Werte in der v-Achsenrichtung sind [0, 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 1] und jeder der gewichteten Werte {wi,j} ist auf 1 festgesetzt.
-
Gemäß Schritt 14 führt die Rechnervorrichtung für jeden Punkt der gekrümmten Oberfläche 63 (durch jedes kleine Gitter in 12D repräsentiert) Interpolation auf Basis von wenigstens einem Pixel eines zu korrigierenden Bilds durch (das Bild 3 des Schachbretts 22 wird hierbei als Beispiel für das zu korrigierende Bild verwendet, aber als das zu korrigierende Bild kann auch ein anderes Bild (z.B. eines anderen Objekts), das mit derselben Kamera mit derselben Fischaugenlinse aus demselben Winkel aufgenommen wurde, verwendet werden), das an eine Position des Punkts der gekrümmten Oberfläche 63 angrenzt, um einen Pixelwert eines entsprechenden Pixels eines entsprechenden korrigierten Bilds zu erfassen.
-
Es ist zu beachten, dass die Punkte der gekrümmten Oberfläche 63 zum Durchführen der Korrektur an jedwedem Bild eines auf eine flache Oberfläche gelegten Objekts verwendet werden können, das unter Verwendung der Fischaugenlinse aufgenommen wird, wie etwa das in 12B gezeigte Bild 3. 12E zeigt ein korrigiertes Bild 5, das durch Durchführen der oben erwähnten Bildkorrektur an dem in 12B gezeigten Bild 3 erhalten wird, wobei das korrigierte Bild 5 eine Pixelzahl von 720×480 beinhaltet.
-
Die 13A bis 13F veranschaulichen eine zweite beispielhafte Implementierung der Ausführungsform, bei der das oben erwähnte Bildverarbeitungsverfahren auf eine computerisierte Stickmaschine angewendet wird.
-
Wie in 13A gezeigt, beinhaltet ein in dieser Implementierung verwendetes Schachbrett 22 (z.B. ein mit dem Schachbrettmuster bedrucktes Blatt Papier) eine Mehrzahl erster Felder 221, die jeweils 25 mm × 25 mm sind, eine Mehrzahl zweiter Felder 222, die jeweils 25 mm × 12,5 mm sind, und eine Mehrzahl dritter Felder 223, die jeweils 12,5 mm × 12,5 mm sind. Die computerisierte Stickmaschine beinhaltet eine Arbeitsplatte 10, die eine konvexe gekrümmte Oberfläche hat, die den Stickvorgang ermöglicht, wie in 13B gezeigt. Das flexible Schachbrett 22 ist der Arbeitsplatte 10 passend überlagert (d.h. der Teil des Schachbretts 22, der der Arbeitsplatte 10 überlagert ist, ist etwas verformt, um glatt auf die bzw. mit der konvexe(n) gekrümmte(n) Oberfläche der Arbeitsplatte 10 zu passen und in Kontakt zu sein) und eine Kamera mit einer Fischaugenlinse wird zum Aufnehmen eines Bilds 3 des Schachbretts 22 (Schritt 11) verwendet, das eine Pixelzahl von 1164×544 hat, wie in 13C gezeigt wird.
-
Gemäß Schritt 12 erfasst die Rechnervorrichtung eine Anzahl (11x8) von Eckpunkten 31 durch Eckenerkennung, wie in 13D gezeigt, wobei jeder der Eckpunkte 31 als ein schwimmender Punkt repräsentiert wird.
-
Gemäß Schritt 13 verwendet die Rechnervorrichtung die Eckpunkte 31 als Interpolationspunkte, um eine parametrische NURBS-Fläche 4 zu berechnen, die an die Eckpunkte 31 angepasst ist, wie in 13E gezeigt, und berechnet eine Mehrzahl von Punkten der gekrümmten Oberfläche 63, die jeweils den Mittelpunkten der Kästchen 64 entsprechen (siehe 6). In dieser beispielhaften Implementierung sind sowohl der Grad (p) in der u-Achsenrichtung als auch der Grad (q) in der v-Achsenrichtung 5 zwei, die Knotenvektoren, die die u-Achsenrichtung für Ni,p(u) definieren, sind [-2/9, -1/9, 0, 1/9, 2/9, 3/9, 4/9, 5/9, 6/9, 7/9, 8/9, 1, 1+1/9, 1+2/9], die interpolierten Werte in der u-Achsenrichtung sind [0, 1/18, 3/18, 5/18, 7/18, 9/18, 11/18, 13/18, 15/18, 17/18, 1], die Knotenvektoren, die die v-Achsenrichtung für Nj,q(v) definieren, sind [-2/6, -1/6, 0, 1/6, 2/6, 3/6, 4/6, 5/6, 1, 1+1/6, 1+2/6], die interpolierten Werte in der v-Achsenrichtung sind [0, 1/12, 3/12, 5/12, 7/12, 9/12, 11/12, 1] und jeder der gewichteten Werte {wi,j} ist auf 1 festgesetzt.
-
Gemäß Schritt 14 führt die Rechnervorrichtung für jeden Punkt der gekrümmten Oberfläche 63 Interpolation auf Basis von wenigstens einem Pixel eines zu korrigierenden Bilds durch (das in 13C gezeigte Bild 3 wird hierbei als Beispiel für das zu korrigierende Bild verwendet), das an eine Position des Punkts der gekrümmten Oberfläche 63 angrenzt, um einen Pixelwert eines entsprechenden Pixels eines entsprechenden korrigierten Bilds zu erfassen. Das zu korrigierende Bild kann in diesem Beispiel ein Bild eines auf die Arbeitsplatte 10 gelegten Objekts sein, das unter Verwendung der Fischaugenlinse aufgenommen wird.
-
Es ist zu beachten, dass die Punkte der gekrümmten Oberfläche zur Durchführung von Korrektur an jedwedem Bild eines auf die Arbeitsplatte 10 gelegten Objekts verwendet werden können, das mithilfe der Fischaugenlinse aufgenommen wird. 13F zeigt ein korrigiertes Bild 5 des Schachbretts 22, das durch Durchführen der oben erwähnten Bildkorrektur an einem Teil des Bilds 3 durchgeführt wird (siehe 13C), das der parametrischen NURBS-Fläche 4 entspricht (siehe 13E), wo das korrigierte Bild 5 eine Pixelzahl von 900x600 beinhaltet.
-
Wenn die Fischaugenlinse zum Aufnehmen eines Bilds zum Aufzeichnen oder zur Voransicht eines Stickpfads eines auf die Arbeitsplatte 10 gelegten Objekts (z.B. eines Stoffstücks) verwendet wird, kann das vorgeschlagene Bildverarbeitungsverfahren zum effektiven Korrigieren der Verformung des Objekts in der realen Welt, wie von dem Bild aufgenommen, und/oder der Verformung des Objekts und/oder des Stickpfads in dem Bild verwendet werden.
-
Zusammenfassend wird vorgeschlagen, dass die Ausführungsform des Bildverarbeitungsverfahrens gemäß dieser Offenbarung eine Vielzahl von Merkmalspunkten eines Bilds einer Kalibrierungstafel aufnimmt, eine parametrische NURBS-Fläche berechnet und an einem zu korrigierenden Bild eines Objekts unter Verwendung der berechneten parametrischen NURBS-Fläche auf Basis des Bilds der Kalibrierungstafel eine Korrektur vornimmt.
-
Ein derartiges Verarbeitungsverfahren kann an Bildern wirksam sein, die eine von geometrischen Gestaltungen der Kameralinsen, Linsenverformung während der Herstellung, Ungenauigkeit der Linsenanordnung, Ungenauigkeit der Positionierung des Bildsensors und/oder Verformung des aufgenommenen Objekts selbst in der physischen/realen Welt herrührende Verzerrung haben.
-
In der obigen Beschreibung werden zu Erläuterungszwecken zahlreiche spezifische Details dargelegt, um ein eingehendes Verständnis der Ausführungsform(en) zu vermitteln. Für einen Fachmann ist aber erkennbar, dass eine oder mehr andere Ausführungsformen ohne einige dieser spezifischen Details ausgeführt werden können.
-
Es ist auch zu beachten, dass Bezug auf „eine einzelne Ausführungsform“, „eine Ausführungsform“, eine Ausführungsform mit Angabe einer Ordnungszahl und so weiter in dieser Patentbeschreibung durchgehend bedeutet, dass ein(e) besondere(s) Merkmal, Struktur oder Eigenschaft in der Ausführung der Offenbarung enthalten sein kann. Es ist ferner zu beachten, dass in der Beschreibung verschiedene Merkmale manchmal zum Zweck der Rationalisierung der Offenbarung und als Beitrag zum Verständnis verschiedener Aspekte der Erfindung in einer einzelnen Ausführungsform, Figur oder Beschreibung davon zusammengruppiert werden.