AT504372B1 - Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern - Google Patents
Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern Download PDFInfo
- Publication number
- AT504372B1 AT504372B1 AT18792006A AT18792006A AT504372B1 AT 504372 B1 AT504372 B1 AT 504372B1 AT 18792006 A AT18792006 A AT 18792006A AT 18792006 A AT18792006 A AT 18792006A AT 504372 B1 AT504372 B1 AT 504372B1
- Authority
- AT
- Austria
- Prior art keywords
- interpolation
- line
- values
- quot
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims description 48
- 230000006870 function Effects 0.000 claims description 24
- 230000003287 optical effect Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Description
2 AT 504 372 B1
Die Erfindung betrifft ein Verfahren gemäß dem Oberbegriff des Patentanspruches 1. Des Weiteren betrifft die Erfindung eine Einrichtung gemäß dem Oberbegriff des Patentanspruches 13.
Eine Anordnung, bei der Interpolationswerte für Pixelkoordinaten bestimmt werden, ist aus der US 2006/0152597 A1 bekannt.
Ziel der Erfindung ist die Erstellung eines genauen und besonders effizienten Verfahrens zur Interpolation von Bildpunkten.
Eine Anwendungsmöglichkeit für derartige Interpolationsverfahren ist die Interpolation beliebiger Datenfelder, insbesondere die optische Qualitätskontrolle von Druckwerken, z.B. von Banknoten, Briefmarkenbögen, Etiketten, Bögen für Buchdruck und Verpackungsdruck sowie alle Arten von Bogen- und Rollendruck.
Im folgenden wird die Erfindung anhand der Interpolation von von Gegenständen abgeleiteten Bildern erläutert. Die zu prüfenden Gegenstände werden mit einer Bildaufnahmeeinheit, z.B. einer Zeilen- oder Flächenkamera aufgenommen und die erhaltenen digitalen Bilder werden einer Bildvergleichseinheit zugeführt, um den Gegenstand zu prüfen, zu identifizieren oder zu klassifizieren.
Ein Problem, das dabei auftritt, ist, dass der Gegenstand am Bild nicht in der erwarteten Lage, sondern verschoben, verdreht oder sonst wie verzerrt bzw. gegenüber der erwarteten Lage und Form geometrisch transformiert erscheint. Diese Verzerrungen können durch Dehnung und/oder Verzug des zu prüfenden Materials und/oder durch Lageänderungen, etwa bedingt durch den Transport des Gegenstandes und/oder durch Linsenverzerrungen bzw. eine nicht perfekte optische Abbildung hervorgerufen werden.
Um nun den aufgenommenen Gegenstand prüfen bzw. vermessen zu können, muss das Ist-Bild in eine vorgegebene Soll-Lage bzw. in die vorgegebene Form eines Leerbildes transformiert werden. Dazu erfolgt eine Rückwärtstransformation des Leerbildes mit den Zielkoordinaten (x\ y') auf die Ursprungskoordinaten (x, y).
Zur Erstellung des Leerbildes werden die (ganzzahligen) Koordinaten nach einer vorgegebenen Reihenfolge, vorzugsweise zeilenweise, durchlaufen. Für jeden Zielpunkt (x\ y') werden die Ursprungskoordinaten (x, y), insbesondere durch geometrische Transformation, bestimmt und von dieser Position der Datenwert des aktuellen Bildpunktes im Istbild ermittelt und in das Leerbild eingetragen. Im Allgemeinen sind die rückwärts -transformierten Koordinaten (x, y) nicht ganzzahlig.
Um nun den Datenwert eines Punktes P an der Stelle (x, y) ermitteln zu können, wird dieser Datenwert aus den umliegenden Bildpunkten des Istbildes durch Interpolation ermittelt. Die Interpolation ist eine Schätzung, der eine gewisse Modellannahme zugrunde liegt. Häufig wird eine lineare Interpolation durchgeführt. Sei X der ganzzahlige Anteil von x und Y der ganzzahlige Anteil von y, dann wird bei der Interpolation eine gewichtete Summe der Datenwerte der Bildpunkte (X,Y), (X+1.Y) (X, Y+1), (X+1.Y+1) bestimmt.
Die Interpolation nach dem linearen Modell ist sehr einfach, es ist jedoch bekannt, dass sie häufig nur eine schlechte Näherung liefert. 3 AT 504 372 B1
Bessere Ergebnisse liefern Interpolationen höherer Ordnung, etwa Spline - Interpolationen oder Bezier-Interpolationen (siehe http://en.wikipedia.org/wiki/Bezier curve). Alle Interpolationen höherer Ordnung benötigen zur Berechnung des Ergebnisses eine größere Anzahl von Datenwerten von Bildpunkten. Für eine Interpolation dritten Grades (Beispiel Catmull - Rom - Splines, siehe http://www.mvps.org/directx/articles/catmull/) werden die Datenwerte von 16 Punkten (X-1, Y-1), (X, Y-1), (X+1, Y-1), (X+2, Y-1), (X-1, Y),(X, Y),(X+1, Y),(X+2, Y), (X-1, Y+1), (X, Y+1), (X+1, Y+1), (X+2, Y+1), (X-1, Y+2), (X, Y+2), (X+1, Y+2), (X+2, Y+2) benötigt.
Der Nachteil der Interpolationen höherer Ordnung ist der wesentlich höhere Rechenaufwand.
Dieser macht sich besonders dann bemerkbar, wenn die Interpolation in spezieller Elektronik-Hardware realisiert werden soll. Das Ziel bei einer Hardwareimplementierung ist zumeist, dass pro Arbeitstakt ein Ergebnis berechnet werden soll. Moderne programmierbare Logikbausteine (FPGAs) erlauben Arbeitstakte von weit über 100 MHz. Das Problem dabei ist der gleichzeitige Zugriff auf viele verschiedene Speicherstellen in einem Arbeitstakt. Bei der linearen Interpolation muss pro Arbeitstakt auf 4 Speicherzellen zugegriffen werden. Bei kubischer Interpolation sind es bereits 16 Speicherzugriffe. Dies ist mit sehr hohem Aufwand verbunden, wenn die Zugriffe gleichzeitig in einem Arbeitstakt erfolgen sollen. In höheren Interpolationen stellt der Rechenaufwand ein nahezu nicht zu bewältigendes Problem dar.
Erfindungsgemäß ist eine Anordnung der eingangs genannten Art mit den im Kennzeichen des Anspruches 1 angeführten Merkmalen charakterisiert. Eine Einrichtung der eingangs genannten Art ist durch die Merkmale des Anspruches 13 charakterisiert.
Die Erfindung bietet Vorteile für lineare und kubische Interpolationen und auch für Interpolationen höherer Ordnung und wird im Folgenden anhand der Fig. 1 und 2 vor allem am Beispiel einer kubischen Interpolation erläutert, bei der 4x4 Bildpunkte pro Ergebnis bzw. relevantem Interpolationswert benötigt werden.
Voraussetzung ist, dass die Abarbeitung der Punkte, an denen Interpolationen vorzunehmen sind, in einer bestimmten einzuhaltenden Reihenfolge, d.h. zeilenweise oder spaltenweise, erfolgt. Im Folgenden wird von einer zeilenweisen Reihenfolge mit aufsteigenden Zeilenindizes ausgegangen: (x’(n),y’(m)), (x’(n+1),y’(m)), (x’(n+2),y’(m)),...
Absteigende Zeilenindizes bzw. eine spaltenweise Reihenfolge sind in analoger Weise möglich.
Ferner wird davon ausgegangen, dass die rückwärts -transformierten Koordinaten (x(n), y(m)), (x(n+1), y(m)), (x(n+2), y(m)),... des Leerbildes annähernd auf einer Geraden G liegen und dass diese Gerade nicht übermäßig, d.h. nicht mehr als 45°, vorzugsweise nicht mehr als 20°, insbesondere nicht mehr als 18°, zu den horizontalen Zeilen geneigt ist. Ferner wird davon ausgegangen, dass der Abstand zweier aufeinander folgender Punkte P auf der Geraden annähernd 1 ist; insbesondere soll der Abstand zwischen 0 und 2 liegen. Diese Voraussetzungen sind insbesondere dann gegeben, wenn der Gegenstand gegenüber der erwarteten Lage nur geringfügig verdreht und/oder verzerrt und/oder verzogen ist. Auch Korrekturen der optischen Verzerrung (Linsenverzerrung) erfüllen obige Bedingungen.
Der Hauptvorteil der Erfindung ist, dass die Interpolation exakter erfolgen muss und dass für die Berechnung der relevanten Interpolationswerte auf wesentlich weniger Speicherelemente pro 4 AT 504 372 B1
Arbeitstakt zugegriffen werden muss, als dies nach dem Stand der Technik erforderlich ist. Die Erfindung kann besonders gut zur Verarbeitung eines Pixelstroms verwendet werden, bei dem die Ursprungsbilddaten bzw. Datenwerte in die Verarbeitungseinheit zeilenweise hineinfließen und zeilenweise die Interpolationswerte herausfließen. In der Verarbeitungseinheit muss ferner nicht das gesamte Bild zwischengespeichert werden, sondern nur ein relativ kleiner Bildausschnitt von wenigen Zeilen.
Fig. 1 zeigt ein Datenfeld mit in Spalten und Zeilen bzw. an Rasterpunkten R vorliegenden Datenwerten. Die Datenwerte in den einzelnen Spalten sind jeweils mit D1t D2, D3, D4, D5 ... bezeichnet. Die Datenwerte können beliebige Werte annehmen. Durch dieses Datenfeld verläuft eine vorgegebene Linie, insbesondere eine Gerade G. Für bestimmte Punkte P, P', P", P"’ dieser Geraden G sollen interpolierte Datenwerte an den Koordinaten dieser Punkte ermittelt werden. Bislang erfolgte die Interpolation derart, dass die Schnittpunkte 1, 2, 3, 4 der horizontalen Koordinaten des jeweiligen Punktes P mit den Rasterlinien RL bestimmt wurden und für diese die Interpolationswerte ermittelt wurden. Dazu wurden die jeweils vertikal beidseitig dieser horizontalen Koordinate K liegenden Datenwerte mittels einer gegebenenfalls kubischen Interpolationsfunktion interpoliert und damit an den Punkten 1, 2, 3 und 4 entsprechende Interpolationswerte erhalten. In einer dieser ersten Stufe folgenden zweiten Stufe wurden sodann die Interpolationswerte für die Punkte 1, 2, 3 und 4 mit einer weiteren Interpolationsfunktion verknüpft und dieser weitere Interpolationswert als relevanter Interpolationswert für den Datenwert an der Stelle des Punktes P angesehen.
Abweichend von dieser bekannten Vorgangsweise erfolgt bei der Erfindung eine Interpolation von vertikal oberhalb und/oder unterhalb des jeweiligen Schnittpunktes liegenden Datenwerten, längs der Linie G, insbesondere einer Geraden. Die Interpolation erfolgt für die Schnittpunkte der Geraden G mit den entsprechenden Rasterlinien RL. Man erhält an den Schnittpunkten T, 2', 3', 4' interpolierte Datenwerte bzw. Interpolationswerte IW, IW', IW", IW'", indem in einer ersten Stufe, vorzugsweise beidseits der Schnittpunkte T, 2’, 3', 4' liegende Datenwerte Di, D2, D3, D4i mittels einer vorgegebenen, insbesondere kubischen, Interpolationsfunktion interpoliert werden. Diese erhaltenen interpolierten Datenwerte IW, IW', IW", IW"' werden sodann in der zweiten Stufe mit einer weiteren Interpolationsfunktion verknüpft zu einem für den Punkt P relevanten Interpolationswert RI. Diese beiden Interpolationen erfolgen insbesondere für an ganzzahligen Koordinaten bzw. für auf Rastlinien liegende Daten bzw. Interpolationswerte.
Die Berechnung des Ergebnisses erfolgt somit in 2 Stufen, und zwar in einer ersten Stufe, in der vertikale Datenwerte herangezogen werden und in einer zweiten horizontalen Stufe, basierend auf erhaltenen Interpolationswerten.
Vom Prinzip her können die zur Interpolation in der ersten Stufe herangezogenen Datenwerte auf einer Seite oder auf beiden Seiten der Linie G liegen. Vorzugsweise liegen die Datenwerte beidseits der Linie G. Sofern vier Datenwerte zur Interpolation herangezogen werden, liegen vorzugsweise jeweils zwei Punkte an jeder Seite der Linie G. Die Zur Ermittlung der relevanten Interpolationswerte IR herangezogenen Interpolationswerte können beiseits oder auf einer Seite der Punkte P, P', ... auf der Linie G liegen. Vorzugsweise liegen jeweils zwei Interpolationswerte zu jeder Seite des Punktes P.
In der ersten Stufe kann mit einer kubischen Interpolation jeweils an ganzzahligen aufeinander folgenden horizontalen Koordinaten bzw. den jeweiligen Rasterlinien über vorzugsweise jeweils 4 vertikal angeordnete Punkte interpoliert werden. In der ersten Stufe wird dazu auf einen Bildspeicher zugegriffen, der zumindest die Ursprungs-Bilddaten für eine Ergebnis-Zeile enthält. Bei kubischer Interpolation werden vier, insbesondere aufeinanderfolgende, für jeweils vier vertikal übereinander liegende Punkte berechnete vertikale Interpolationsergebnisse werden in der zweiten Stufe horizontal interpoliert und ergeben als Ergebnis den für den Punkt P relevanten Interpolationswert RI. 5 AT 504 372 B1
Zum Erhalt des ersten Interpolationswertes in einer Zeile müssen in diesem Fall vier Interpolationen von vertikalen Datenwerten in Stufe 1 und eine Interpolation von vier in der ersten Stufe erhaltenen Interpolationswerten in Stufe 2 durchgeführt werden. Hierzu sind also 4x4 Speicherzugriffe notwendig. Dies ist an sich noch keine Ersparnis hinsichtlich des Rechenaufwandes.
Die Ersparnis kommt bei der Ermittlung von relevanten Interpolationswerten für nachfolgende Punkte P\ P".....der Zeile G. Aufgrund der getroffenen Annahmen können für die jeweils fol gende horizontale Interpolation Ergebnisse der vertikalen Interpolation vom vorhergehenden Arbeitsschritt verwendet werden. Wenn der Abstand des ganzzahligen Anteils der x-Komponente zum ganzzahligen Anteil der x-Komponente des vorangegangenen Bildpunktes nicht größer als 1 ist, wird maximal ein neuer durch vertikale Interpolation erhaltener Interpolationswert gemäß Stufe 1 benötigt.
Sofern der Abstand zwischen den ganzzahligen Anteilen der x-Komponenten der Ursprungsadressen zweier aufeinander folgender Interpolationen größer als 1 sein sollte, ist unter Umständen mehr als nur ein neuer vertikaler Interpolationsschritt notwendig, was zu einer kurzen Unterbrechung des Stromes der Ergebnisse führen würde. Dies kann berücksichtigt werden, indem von einer Steuereinheit für jeden Arbeitstakt ein Steuersignal ausgegeben wird, das anzeigt, ob die ausgegebenen Werte gültig sind oder nicht.
Sofern, z.B. am Zeilenanfang nicht eine ausreichende Anzahl von vertikalen Datenwerten zur Verfügung steht, z.B. bei kubischer Interpolation zu jeder Seite der Geraden G die gewünschte Anzahl von z.B. zwei Datenwerten, kann, wie in Fig. 1 links oben dargestellt, ein Datenwert D' für einen fiktiven Rastpunkt willkürlich oder durch Interpolation einer Anzahl von Datenwerten D,, D2,... vorgegeben werden.
Die Speicherung der in der Stufe 1 erhaltenen Interpolationswerte für die Verwendung in der zweiten Stufe erfolgt vorzugsweise in einem Schieberegister.
Der zeitkritische Zugriff auf Bilddaten bzw. die Datenwerte des Datenfeldes erfolgt in der ersten Stufe. Ein Interpolationsschritt erfordert einen gleichzeitigen Zugriff auf 4 vertikal angeordnete Bildpunkte des Bildspeichers. Abgesehen von der Ermittlung des relevanten Interpolationswertes für den ersten Bildpunkt P einer Zeile G, für die vier vertikale Interpolationsschritte erforderlich sind, sind bei den folgenden Interpolationen maximal eine vertikale Operation und somit maximal 4 Speicherzugriffe pro Arbeitstakt erforderlich.
Es kann somit mit jedem Arbeitstakt ein neues Ergebnis bzw. ein weiterer relevanter Interpolationswert ausgegeben werden. Nur am Anfang einer Zeile erfolgt eine Verzögerung von einigen Arbeitstakten, was aber bei Verarbeitung von zeilenweisen Bildströmen üblich ist. Für die restliche Zeile wird der Rechenaufwand beträchtlich reduziert.
Fig. 2 zeigt ein Ausführungsbeispiel einer erfindungsgemäßen Einrichtung zur Durchführung des erfindungsgemäßen Verfahrens.
An einer Bildaufnahmeeinheit 11, die das digitale Bild eines Gegenstandes zur Verfügung stellt, ist ein Bildspeicher mit einer Anzahl von Zeilenspeichern 1, 1', 1", 1’" angeschlossen. Es ist vorgesehen, dass die Anzahl der Zeilenspeicher 1, 1', 1", 1'" der Anzahl der in Stufe 1 zur Interpolation herangezogenen Datenwerte Di, D2, D3, D4 entspricht. Damit kann die Anzahl des erforderlichen Speichervolumens reduziert werden.
Bei einer kubischen Interpolation sind vier Zeilenspeicher erforderlich, da vier Datenwerte zur Interpolation herangezogen werden. Die Bildzeilen werden somit auf vier Zeilenspeicher verteilt. Die Organisation des Bildspeichers für die vertikale Interpolation erfolgt vorzugsweise in 4 Speicher-Untereinheiten, da pro Arbeitstakt auf 4 Zeilen mit unterschiedlichem Y-Wert zugegriffen wird. 6 AT 504 372 B1
Die erste Speichereinheit 1 speichert Bilddaten bzw. Datenwerte mit Zeilennummern Y kongruent 0 modulo 4.
Die zweite Speichereinheit Γ speichert Bilddaten bzw. Datenwerte mit Zeilennummern Y kongruent 1 modulo 4.
Die dritte Speichereinheit 1" speichert Bilddaten bzw. Datenwerte mit Zeilennummern Y kongruent 2 modulo 4.
Die vierte Speichereinheit 1"' speichert Bilddaten bzw. Datenwerte mit Zeilennummern Y kongruent 3 modulo 4. Für jedes beliebige (X, Y) können nun die benötigten Speicherzugriffe (X, Y-1), (X, Y), (X, Y+1), (X, Y+2) so organisiert werden, dass jeder der vier Zeilenspeicher 1, 1’, 1", 1"' genau einen Wert liefern muss.
An die einzelnen Zeilenspeicher 1, 1', Γ, Γ’ ist jeweils eine Verknüpfungseinheiten 2, 2’, 2", 2’" angeschlossen, deren anderer Eingang mit einem Funktionsspeicher 3 verbunden ist. In der jeweiligen Verknüpfungseinheit wird der jeweils aus dem Zeilenspeicher zugeführte Datenwert mit einem Koeffizienten der eingesetzten und im Funktionsspeicher 3 gespeicherte Interpolationsfunktion verknüpft. Die Ausgangssignale der Verknüpfungseinheiten werden in einer Summationseinheit 10 aufsummiert und stellen die jeweiligen interpolierten Datenwerte IW, IW', IW", IW"' der ersten Stufe dar.
Diese interpolierten Datenwerte werden aufeinanderfolgend einem Schieberregister, insbesondere Speichereinheiten 5, 5', 5", 5"’ zugeführt. Sobald vier Interpolationswerte - für den Fall einer kubischen Interpolationsfunktion - vorliegen, wird jeder dieser Wert, jeweils einer weiteren Verknüpfungseinheit 6, 6', 6", 6'" zugeführt, um in dieser mit dem Koeffizienten einer weiteren Interpolationsfunktion verknüpft zu werden, die in einem Funktionsspeicher 4 abgespeichert ist. Die Ausgangssignale der Verknüpfungseinheiten 6, 6', 6", 6"' werden einer weiteren Summationseinheit 7 zugeführt. Das Ausgangssignal dieser Summationseinheit 7 stellt den relevanten Interpolationswert RI dar, der einer Auswerteeinheit 8 zugeführt werden kann bzw. in das Leerbild an dem dem Punkt P zugeordneten Bildpunkt eingetragen wird.
Die gesamte Anordnung arbeitet unter der Steuerung einer Steuereinheit 9, die die Weiterleitung der entsprechenden Datenwerte bzw. Interpolationswerte und Resultate der ersten und der weiteren Verknüpfungseinheit usw. steuert. Auch der Fall, dass während eines Arbeitstaktes ein Steuersignal ausgegeben wird bzw. der Abstand zwischen den ganzzahligen Anteilen der x-bzw. horizontalen Komponenten der Ursprungsadressen zweier aufeinander folgender Interpolationen größer als 1 sein sollte, wird von Steuereinheit 9 entsprechend berücksichtigt.
Wie schon erwähnt, ist es nicht notwendig, die Bilddaten bzw. Datenwerte des gesamten Istbil-des im Bildspeicher zu halten.
Liegen die Punkte P, P', P" der Geraden G in Ursprungskoordinaten bzw. im Ist-Bild auf einer horizontalen Geraden, genügt für die Verarbeitung einer Zeile pro Speichereinheit eine einzige Zeile. Ist die Gerade G geneigt oder handelt es sich beispielsweise im Falle einer Linsenentzerrung um eine leicht gekrümmte Linie, dann ist vorzusehen, dass eine ausreichende Anzahl von Bildzeilen in den Zeilenspeichern gespeichert werden kann.
Es ist vorteilhaft, in dem Bilddatenspeicher noch zusätzlich einen Platz für einen Pufferspeicher vorzusehen, sodass während der Verarbeitung einer Zeile schon die nächste Zeile vom Strom der Eingangsdaten in den Pufferspeicher geladen werden kann.
Die 4 Bilddatenspeicher bilden zusammen ein Fenster, das ausreichend hoch sein muss, um
Claims (15)
- 7 AT 504 372 B1 eine ganze Zeile zu sehen. Die Höhe bzw. die Anzahl der Zeilen wird durch die Neigung der Linie bzw. Geraden bestimm. Für eine Gerade G mit negativer Steigung ergibt sich die oberste benötigte Zeile aus dem ersten Punkt P der Linie G. Wenn P=(x,y) im Ist-Bild ist, dann benötigt man als oberste Zeile Y-1, wobei Y der ganzzahlige Anteil von y ist. Die unterste Zeile ergibt sich aus dem letzten Punkt P' der Geraden G, dessen Koordinaten im Ist-Bild aus der Neigung der Geraden und Punkt P bestimmt werden können. Zur Interpolation an P-(x',y') benötigt man, nachdem alle oberen Zeilen aufgrund der für den Punkt P erfolgten Interpolation schon im Speicher hat, auf jeden Fall noch als unterste Zeile jene mit Index Y'+2. Für eine positive Steigung von G gelten analoge Ausführungen. Bei voranschreitender Zeilenverarbeitung wird das Fenster durch Nachladen weiterer Zeilen aus dem Eingangsbild vertikal weiter geschoben, bis die letzte Zeile des Bildes verarbeitet ist. Dabei muss es nicht notwendigerweise eine letzte Zeile geben. Das Verfahren ist daher gut geeignet zur Verarbeitung von Endlosbildem, wie es beispielsweise bei der Bildprüfung von Rollendruckwerken notwendig ist. Die Interpolation von Bildpunkten ist bei Aufgaben der geometrischen Transformation, wie sie bei der optischen Qualitätsinspektion zumeist erforderlich ist, ein sehr aufwändiger Schritt. Bisher verzichtete man auf Interpolation oder beschränkte sich zumeist auf lineare Interpolation, da höhere Interpolationsmodelle den Zugriff auf eine große Zahl von Speicherpunkten pro Ergebnis erforderten. Das erfindungsgemäße Interpolationsverfahren ist unter gewissen Einschränkungen, die in den genannten Anwendungsfällen aber praktisch immer gegeben sind, anwendbar. Das Verfahren eignet sich besonders, um einen Bilddatenstrom zeilenweise zu verarbeiten. Hierfür eignet sich eine Implementierung in spezieller Hardware, etwa in programmierbarer Logik (FPGA) oder in speziellen integrierten Logikschaltkreisen (ASIC) besonders gut. In diesen Bildverarbeitungseinheiten ist der interne Speicher eine besonders teure Ressource. In diesem Sinne ist es vorteilhaft, nur den für die Interpolation jeweils einer Zeile benötigten Bildausschnitt im internen Speicher zu halten. Durch die angegebene Speicheraufteilung in mehrere Sub-Einheiten bzw. Zeilenspeicher kommt man mit einem Lesezugriff pro Speichereinheit und Arbeitstakt aus. Dadurch ist es möglich, einen kontinuierlichen Strom von Ergebnispixein mit einem Ergebnis pro Arbeitstakt innerhalb einer Zeile zu erzielen. Die Erfindung betrifft ferner einen Datenträger, auf dem ein Programm zur Ausführung des erfindungsgemäßen Verfahrens gespeichert ist. Patentansprüche: 1. Verfahren zur Ermittlung von Interpolationswerten in Datenfeldern, deren Datenwerte in den Rasterpunkten (R) eines, vorzugsweise orthogonalen, Koordinatensystems angeordnet sind, wobei für vorgegebene Punkte (R) entlang einer im Datenfeld verlaufenden Linie (G), vorzugsweise Gerade, aus den Datenwerten unter Anwendung einer Interpolationsfunktion, die an den Koordinaten dieser Punkte (P, P', P"...) relevanten Interpolationswerte ermittelt werden, dadurch gekennzeichnet, - dass die Linie (G) mit den in einer der beiden Koordinatenrichtungen verlaufenden, vorzugsweise den vertikalen, Rasterlinien (RL) geschnitten wird, - dass für die Schnittpunkte (V, 2', 3', 4') der Linie mit diesen Rasterlinien (RL) jeweils ein Interpolationswert (IW, IW', IW", IW'") ermittelt wird, indem auf eine bestimmte Anzahl, vorzugsweise vier, von Datenwerten (D1t D2, D3, D4), die vorzugsweise beidseits des jeweiligen Schnittpunktes (1‘, 2’, 3', 4’) auf der jeweiligen Rasterlinie (RL) liegen, eine Interpolationsfunktion angewendet wird, - dass auf eine bestimmte Anzahl, vorzugsweise vier, von derart ermittelten Interpolationswerten (IW, IW', IW", IW'"), die vorzugsweise beidseits des jeweiligen Punktes (P, P', P"...) 8 AT 504 372 B1 entlang der Linie (G) liegen, eine weitere Interpolationsfunktion angewendet wird und das Resultat dieser Interpolation als der für den jeweiligen Punkt (P, P', P"...) der Linie (G) relevante Interpolationswert (RI) angesehen wird.
- 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Datenfeld von einem digitalen Bild bzw. Istbild eines Gegenstandes, z.B. Druckwerkes, insbesondere Banknoten, Briefmarken, Dokumenten oder Wertpapieren, abgeleitet bzw. vorgegeben wird.
- 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass es sich bei dem Datenfeld um ein digitales Istbild eines Gegenstandes und bei der Linie (G) um eine Gerade handelt, die von einem durch eine geometrische Transformation dem Istbild zugeordneten Leerbild in das Istbild rücktransformiert wurde.
- 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die an den vorgegebenen Punkten (P, P', P"...) der Linie (G) im Istbild erhaltenen relevanten Interpolationswerte (RI, RI', RI",...) in das Leerbild, insbesondere eine Zeile des Leerbildes, eingetragen werden und gegebenenfalls das Leerbild, das mit den relevanten Interpolationswerten (RI, RI’, RI", ...) gefüllt ist, durch einen Vergleich mit einem Soll- bzw. Prüfbild ausgewertet wird.
- 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass als Interpolationsfunktion und/oder weitere Interpolationsfunktion kubische Interpolationsfunktionen gewählt werden, die jeweils auf vier Datenwerte (D1( D2, D3, D4), von denen vorzugsweise jeweils zwei beidseits der Linie (G) liegen, und/oder auf vier, insbesondere aufeinanderfolgend ermittelte, Interpolationswerte (IW, IW', IW", IW'") angewendet werden.
- 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass -insbesondere im Fall einer kubischen Interpolation - für die Ermittlung der Interpolationswerte (IW, IW', IW", IW’") für die Schnittpunkte (1', 2’, 3’, 4’) der Linie (G) mit den Rasterlinien (RL) die Interpolationsfunktion auf jeweils ein Paar von beidseits des jeweiligen Schnittpunktes (1’, 2', 3', 4’) auf der Rasterlinie (RL) liegenden Datenwerten (D1t D2, D3, D4) angewendet wird.
- 7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass für die Ermittlung der relevanten weiteren Interpolationswerte die weitere Interpolationsfunktion auf jeweils ein Paar von beidseits des jeweiligen vorgegebenen Punktes (P) auf der Linie (G) liegenden Interpolationswerten (IW, IW', IW", IW'") angewendet wird.
- 8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Datenwerte der Zeilen des Istbildes (IB) auf eine Anzahl von Zeilenspeichern (1,1', 1", T") aufgeteilt werden und die die einzelnen Zeilenspeicher verlassenden Datenwerte mit den(m) dem jeweiligen Zeilenspeicher zugeordneten Koeffizienten der Interpolationsfunktion verknüpft und damit die Interpolationswerte (IW, IW', IW", IW"’) erhalten werden.
- 9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Anzahl der Zeilenspeicher (1, T, 1", T") der Anzahl der zur Interpolation herangezogenen Datenwerte (D1t D2, D3, D4) entspricht.
- 10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass aufeinanderfolgend, insbesondere unmittelbar aufeinanderfolgend, erhaltene Interpolationswerte (IW, IW', IW", IW'" ...) mit den Koeffizienten der weiteren Interpolationsfunktion verknüpft und das erhaltene Resultat als relevanter Interpolationswert (RI, RI', RI", R'" ...) für den jeweiligen Punkt (P, P', P"...) angesehen wird.
- 11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass nach Ermitt- 9 AT 504 372 B1 lung mindestens eines relevanten Interpolationswertes (RI) für die Ermittlung eines weiteren relevanten Interpolationswertes (RI") der bzw. die vorangehend übermittelten, vorzugsweise die drei zuletzt, ermittelten Interpolationswerte (IW1, IW", IW"') und dazu der für den Schnittpunkt der Linie (G) mit der nächstfolgenden Rastlinie (Ri) ermittelte Interpolationswert (IW"") herangezogen wird, der für den nächstfolgenden Punkt (P"') der Linie ermittelte Interpolationswert (IW"") herangezogen werden, der seinerseits durch die Anwendung der Interpolationsfunktion auf die Datenwerte ermittelt wird, die auf diese folgende Rasterlinie (RL) liegen.
- 12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass zur Ermittlung der Interpolationswerte die jeweils in einer Richtung bzw. nebeneinander auf der jeweiligen Rasterlinie liegenden Datenwerte (D1t D2, D3, D4) herangezogen werden und dass zur Ermittlung der weiteren Interpolationswerte die auf der Linie (G), vorzugsweise nebeneinander, liegenden Interpolationswerte (IW, IW’, IW", IW"') herangezogen werden.
- 13. Einrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, - dass die Einrichtung eine Mehrzahl von Zeilenspeichern(1, 1', 1", 1"') aufweist, denen ein Funktionsspeicher (3) für zumindest eine Interpolationsfunktion zugeordnet ist, wobei jeder Ausgang eines Zeilenspeichers (1, 1', 1", V") mit einem Ausgang des Funktionsspeichers in einer Verknüpfungseinheit (2, 2', 2", 2'") verknüpft ist, - dass an die Verknüpfungseinheit (2, 2', 2", 2'") eine Summationseinheit (10) zur Summierung der in der Verknüpfungseinheit (2, 2', 2", 2'") erhaltenden Signale bzw. Werte angeschlossen ist, - dass der Summationseinheit (10) eine weitere Verknüpfungseinheiten (6, 6', 6", 6"') zugeordnet ist, an deren Eingang einerseits jeweils aufeinanderfolgende Ausgangssignale (5, 5', 5", 5"') der Summationseinheit (10) und andererseits die Ausgangssignale eines weiteren Funktionsspeichers (4) für zumindest eine weitere Interpolationsfunktion angelegt sind und - dass die Ausgänge der weiteren Verknüpfungseinheit (6, 6', 6", 6'") an eine weitere Summationseinheit (7) zur Bildung eines als relevanter Interpolationswert angesehenen Summenwertes angeschlossen sind.
- 14. Einrichtung nach Anspruch 13, dadurch gekennzeichnet, dass jedem Zeilenspeicher (1, 1', Γ, 1'") eine Verknüpfungseinheit (2, 2', 2", 2'") zugeordnet ist, die jeweils an den Funktionsspeicher (3) und an die Summationseinheit (10) angeschlossen ist.
- 15. Datenträger, dadurch gekennzeichnet, dass auf ihm ein Programm zur Ausführung des in den Ansprüchen 1 bis 12 beanspruchten Verfahrens gespeichert ist. Hiezu 2 Blatt Zeichnungen
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT18792006A AT504372B8 (de) | 2006-11-13 | 2006-11-13 | Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern |
DE200710049186 DE102007049186A1 (de) | 2006-11-13 | 2007-10-13 | Verfahren und Vorrichtung zur Ermittlung von Interpolationswerten in Datenfeldern |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT18792006A AT504372B8 (de) | 2006-11-13 | 2006-11-13 | Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern |
Publications (3)
Publication Number | Publication Date |
---|---|
AT504372A4 AT504372A4 (de) | 2008-05-15 |
AT504372B1 true AT504372B1 (de) | 2008-05-15 |
AT504372B8 AT504372B8 (de) | 2008-09-15 |
Family
ID=39277848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AT18792006A AT504372B8 (de) | 2006-11-13 | 2006-11-13 | Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern |
Country Status (2)
Country | Link |
---|---|
AT (1) | AT504372B8 (de) |
DE (1) | DE102007049186A1 (de) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582548A1 (de) * | 1992-08-06 | 1994-02-09 | De La Rue Giori S.A. | Verfahren und Vorrichtung zur Bestimmung einer Fehlaufzeichnung |
EP1276074A2 (de) * | 2001-07-09 | 2003-01-15 | Xerox Corporation | Verfahren und Vorrichtung zur Korrektur von perspektivischen Verzerrungen in Dokumentbildern und zur Summierung von Bildzeilen |
EP1650705A1 (de) * | 2003-07-28 | 2006-04-26 | Olympus Corporation | Bildverarbeitungsvorrichtung, bildverarbeitungsverfahren und verzerrungskorrekturverfahren |
US20060152597A1 (en) * | 2004-12-27 | 2006-07-13 | Casio Computer Co., Ltd. | Pixel interpolation device and camera adapted to perform pixel interpolation of captured image |
-
2006
- 2006-11-13 AT AT18792006A patent/AT504372B8/de not_active IP Right Cessation
-
2007
- 2007-10-13 DE DE200710049186 patent/DE102007049186A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582548A1 (de) * | 1992-08-06 | 1994-02-09 | De La Rue Giori S.A. | Verfahren und Vorrichtung zur Bestimmung einer Fehlaufzeichnung |
EP1276074A2 (de) * | 2001-07-09 | 2003-01-15 | Xerox Corporation | Verfahren und Vorrichtung zur Korrektur von perspektivischen Verzerrungen in Dokumentbildern und zur Summierung von Bildzeilen |
EP1650705A1 (de) * | 2003-07-28 | 2006-04-26 | Olympus Corporation | Bildverarbeitungsvorrichtung, bildverarbeitungsverfahren und verzerrungskorrekturverfahren |
US20060152597A1 (en) * | 2004-12-27 | 2006-07-13 | Casio Computer Co., Ltd. | Pixel interpolation device and camera adapted to perform pixel interpolation of captured image |
Also Published As
Publication number | Publication date |
---|---|
DE102007049186A1 (de) | 2008-05-15 |
AT504372A4 (de) | 2008-05-15 |
AT504372B8 (de) | 2008-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3309847C2 (de) | ||
DE69521739T2 (de) | Verfahren und Vorrichtung zur Bildverarbeitung | |
DE69028651T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
EP2843616A1 (de) | Optoelektronische Vorrichtung und Verfahren zur Aufnahme entzerrter Bilder | |
DE3732435C2 (de) | ||
DE69028792T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
EP1585059A2 (de) | Verfahren und Vorrichtung zur Ermittlung von Bewegungsvektoren, die Bildbereichen eines Bildes zugeordnet sind | |
DE112011103452T5 (de) | Verfahren zum Angleichen von Pixeln einer Entfernungsdarstellung | |
DE102005046772A1 (de) | Iteratives Verfahren zur Interpolation von Bildinformationswerten | |
DE69031144T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
DE3515037A1 (de) | Bildsignalverarbeitungsvorrichtung | |
DE69028239T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
DE102008046505B4 (de) | Verfahren zur Bildverarbeitung von Stereobildern | |
WO2012143159A1 (de) | Verfahren und vorrichtung zur bestimmung von zur entzerrung eines bildes geeigneten werten und zur entzerrung eines bildes | |
AT504372B1 (de) | Verfahren und vorrichtung zur ermittlung von interpolationswerten in datenfeldern | |
WO2009124663A1 (de) | Semi-globale korrespondenzsuche in stereobildern | |
AT520426B1 (de) | Verfahren zur Kalibrierung einer Bildaufnahmeeinheit | |
EP1729258A2 (de) | Verfahren und Vorrichtung zur Ermittlung von Bewegungsvektoren | |
EP3518180B1 (de) | Verfahren zur erstellung einer bildstapel-datenstruktur | |
AT508873A1 (de) | Verfahren zur aufnahme eines bildes | |
EP3685352A1 (de) | Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung | |
EP3327672B1 (de) | Verfahren und vorrichtung zur ermittlung einer zuordnung zwischen einem matrixelement einer matrix und einem vergleichsmatrixelement einer vergleichsmatrix mittels schreibprozess in mehreren korrespondenztabellen | |
DE102016209662A1 (de) | Verfahren und Vorrichtung zum Bestimmen eines Übergangs zwischen zwei Anzeigebildern, und Fahrzeug | |
DE102008004978A1 (de) | Verfahren zum Speichern und Auslesen einer Folge von Datenwerten | |
DE102008008707A1 (de) | Resampling von digitalen Bildern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM01 | Lapse because of not paying annual fees |
Effective date: 20161113 |