DE102018004391B4 - Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation - Google Patents

Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation Download PDF

Info

Publication number
DE102018004391B4
DE102018004391B4 DE102018004391.7A DE102018004391A DE102018004391B4 DE 102018004391 B4 DE102018004391 B4 DE 102018004391B4 DE 102018004391 A DE102018004391 A DE 102018004391A DE 102018004391 B4 DE102018004391 B4 DE 102018004391B4
Authority
DE
Germany
Prior art keywords
image
memory
data
control data
buffer
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.)
Active
Application number
DE102018004391.7A
Other languages
English (en)
Other versions
DE102018004391A1 (de
Inventor
Sebastian Siegel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baumer Optronic GmbH
Original Assignee
Baumer Optronic GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baumer Optronic GmbH filed Critical Baumer Optronic GmbH
Priority to DE102018004391.7A priority Critical patent/DE102018004391B4/de
Publication of DE102018004391A1 publication Critical patent/DE102018004391A1/de
Application granted granted Critical
Publication of DE102018004391B4 publication Critical patent/DE102018004391B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Verfahren zur Bildtransformation, umfassend die folgenden Verfahrensschritte:(a) Einlesen eines mehrere Zeilen (73) umfassenden Bildabschnittes (71) eines zu transformierenden Bildes (7) in einen ersten Bildzwischenspeicher (69);(b) Umschreiben des Bildabschnittes (71) aus dem Bildzwischenspeicher (69) in einen Gesamtspeicher (81), wobei jede Zeile (73) in eine vorbestimmte Anzahl (X) von Speichersegmenten (75) vorbestimmter Länge logisch unterteilt wird und eine Speichersegmentlänge (77) geringer als eine Zeilenlänge (79) des Bildes (1) ist und wobei für die Speichersegmente 1 bis X aus mindestens zwei aufeinanderfolgenden Zeilen (73) des Bildabschnittes (71) das jeweils x-te (1 ≤ x ≤ X) Speichersegment (75) jeweils zeilenweise fortlaufend in den Gesamtspeicher (81) geschrieben wird; wobei(c) die Verfahrensschritte (a) und (b) wiederholt werden, bis alle Rohdaten des zu transformierenden Bildes (7) als Bilddaten (10) in den Gesamtspeicher (81) umgeschrieben sind;(d) Auslesen von vorab gespeicherten die Bildtransformation beschreibenden Steuerdaten (83) aus dem Gesamtspeicher (81) in einen Steuerdatenzwischenspeicher (87), wobei die Steuerdaten explizit an eine Aufnahmesituation gebunden sind und abschnittsweises Auslesen von mindestens einem, zu den ausgelesenen Steuerdaten (83) zugehörigen Datensegment (91) der Bilddaten (10) aus dem Gesamtspeicher (81) in einen zweiten Bildzwischenspeicher (89);(e) Übertragen der ausgelesenen Steuerdaten (83) und zugehöriger Bilddaten (10) vom Steuerdatenzwischenspeicher (87) und vom zweiten Bildzwischenspeicher (89) in eine Bildtransformationseinheit (93);(f) Durchführen der Bildtransformation des mindestens einen Datensegments (91) gemäss der Steuerdaten (83) durch die Bildtransformationseinheit (93), wobei die zuvor erzeugten Steuerungsinformationen abgearbeitet werden und somit während der Bildtransformation durch die Bildtransformationseinheit (93) keine geometrische Berechnung stattfindet.

Description

  • Die Erfindung betrifft ein Verfahren, eine Vorrichtung und ein Kamerasystem zur Bildtransformation.
  • In der industriellen Bildverarbeitung kommt es häufig zu Aufnahmesituationen, in denen das aufzunehmende Objekt durch ein bildgebendes Verfahren erfasst werden soll, ein aufgenommenes Kamerabild jedoch das aufzunehmende Objekt beispielsweise verzerrt erfasst. Im Stand der Technik sind Verfahren, Vorrichtungen und Kamerasysteme bekannt, welche die nicht korrekt dargestellten Aufnahmen bzw. Bilder korrigieren.
  • Aus der Druckschrift DE 10 2012 202 215 A1 ist ein Verfahren zum Drehen von Bildern und ein System dazu bekannt. Das System umfasst einen mit einem Speicher gekoppelten Prozessor und einen Liniensegmentpuffer. Der Prozessor ist hierbei konfiguriert, einen Bildspeicher zu implementieren, der zum Speichern eines Bildes konfiguriert ist, das eine Vielzahl von Kacheln aufweist. Das Liniensegmentpuffer ist zum Lesen von Linien der Kachel aus dem Bildspeicher konfiguriert. Der Prozessor ist weiterhin dazu konfiguriert, die Linien aus dem Liniensegmentpuffer auszulesen und die Linien basierend auf einer Wahl einer Orientierung zu drehen, die gedrehten Linien zu einem Schreibpuffer zu übertragen, um diese zu einer gedrehten Kachel zu aggregieren, und für die gedrehte Kachel eine neue Adresse in dem Bildspeicher zu bestimmen. Ein Rotator-Logikmodul kann eine Drehung des in dem Bildspeicher gespeicherten digitalen Bildes in eine gewünschte Orientierung bereitstellen.
  • In der Druckschrift DE 10 2008 050 345 A1 wird eine Möglichkeit für ein Umsortieren von Bilddaten gezeigt.
  • Die Druckschrift US 2011 012 22 98 A1 beschreibt eine blockweise bilineare Transformation.
  • Die Lösungen aus dem Stand der Technik erfordern allerdings einen erheblichen Rechenaufwand, zahlreiche Speicherzugriffe und eine komplexe Verwaltung zwischengespeicherter Bilddaten.
  • Aufgabe der vorliegenden Erfindung ist es somit, ein Verfahren, eine Vorrichtung und ein Kamerasystem zur Bildtransformation bereitzustellen, die einen geringen Ressourcenbedarf erfordern und zeitgleich eine flexible Anwendbarkeit hinsichtlich der Komplexität der Aufnahmesituation aufweisen.
  • Das erfindungsgemäße Verfahren zur Bildtransformation umfasst die folgenden Verfahrensschritte:
    1. (a) Einlesen eines mehrere Zeilen umfassenden Bildabschnittes eines zu transformierenden Bildes in einen ersten Bildzwischenspeicher;
    2. (b) Umschreiben des Bildabschnittes aus dem Bildzwischenspeicher in einen Gesamtspeicher, wobei jede Zeile in eine vorbestimmte Anzahl von X Speichersegmenten vorbestimmter Länge logisch unterteilt wird und eine Speichersegmentlänge geringer als eine Zeilenlänge des Bildes ist und wobei für die Speichersegmente 1 bis X aus mindestens zwei aufeinander folgenden Zeilen des Bildabschnittes das jeweils x-te (1 ≤ x ≤ X) Speichersegment jeweils zeilenweise fortlaufend in den Gesamtspeicher geschrieben wird; wobei
    3. (c) die Verfahrensschritte (a) und (b) wiederholt werden, bis alle Rohdaten des zu transformierenden Bildes als Bilddaten in den Gesamtspeicher umgeschrieben sind;
    4. (d) Auslesen von vorab gespeicherten die Bildtransformation beschreibenden Steuerdaten aus dem Gesamtspeicher in einen Steuerdatenzwischenspeicher, wobei die Steuerdaten explizit an eine Aufnahmesituation gebunden sind und abschnittweises Auslesen von mindestens einem, zu den ausgelesenen Steuerdaten zugehörigen Datensegment der Bilddaten aus dem Gesamtspeicher in einen zweiten Bildzwischenspeicher; und
    5. (e) Übertragen der ausgelesenen Steuerdaten und zugehöriger Bilddaten vom Steuerdatenzwischenspeicher und vom zweiten Bildzwischenspeicher in eine Bildtransformationseinheit und
    6. (f) Durchführen der Bildtransformation des mindestens einen Datensegments (91) gemäss der Steuerdaten (83) durch die Bildtransformationseinheit (93), wobei die zuvor erzeugten Steuerungsinformationen abgearbeitet werden und somit während der Bildtransformation durch die Bildtransformationseinheit (93) keine geometrische Berechnung stattfindet.
  • Die erfindungsgemäße Vorrichtung zur Bildtransformation umfasst
    • - einen Dateneingang, zum Einlesen eines mehrere Zeilen umfassenden Bildabschnittes eines zu transformierenden Bildes in einen ersten Bildzwischenspeicher;
    • - einen Gesamtspeicher zum Speichern einer vorbestimmten Anzahl (X) von vom ersten Bildzwischenspeicher bereitgestellten Speichersegmenten und zum Bereitstellen von vorab gespeicherten Steuerdaten, wobei die Steuerdaten (83) explizit an eine Aufnahmesituation gebunden sind;
    • - einen Controller, der ausgestaltet ist, jede Zeile in die vorbestimmte Anzahl (X) Speichersegmente logisch zu unterteilen, wobei eine vorbestimmte Speichersegmentlänge kleiner ist als eine Zeilenlänge des Bildes, und für die Speichersegmente 1 bis X aus mindestens zwei aufeinanderfolgenden Zeilen des Bildabschnittes das jeweils x-te (1 ≤ x s X) Speichersegment jeweils zeilenweise fortlaufend in den Gesamtspeicher zu schreiben;
    • - einen Steuerdatenzwischenspeicher zum Auslesen von Zwischenspeichern, zum Auslesen und Zwischenspeichern von die Bildtransformation beschreibenden Steuerdaten aus dem Gesamtspeicher;
    • - einen zweiten Bildzwischenspeicher zum Auslesen und Zwischenspeichern von mindestens einem Datensegment aus dem Gesamtspeicher; und
    • - eine Bildtransformationseinheit zum Empfangen der ausgelesenen Steuerdaten und des mindestens einen Datensegments und zum Transformieren der Bilddaten des mindestens einen Datensegments gemäß der aus dem Steuerdatenzwischenspeicher empfangenen Steuerdaten, sodass somit während der Bildtransformation durch die Bildtransformationseinheit (93) keine geometrische Berechnung stattfindet.
  • Das erfindungsgemäße Kamerasystem löst die obige Aufgabe dadurch, dass es eine erfindungsgemäße Vorrichtung mit einem Prozessor zur weiteren Bearbeitung des von der Vorrichtung ausgegebenen transformierten Bildes umfasst.
  • Die erfindungsgemäßen Lösungen können durch weitere, jeweils für sich vorteilhafte Ausgestaltungen weiter verbessert werden. Die technischen Merkmale der im Folgenden näher beschriebenen Ausgestaltungen können dabei beliebig miteinander kombiniert oder auch weggelassen werden, wenn es nicht auf den mit dem weggelassenen technischen Merkmal erzielten technischen Effekt ankommt.
  • Das zu transformierende Bild kann von einem bekannten Kamerasystem, beispielsweise basierend auf CCD oder CMOS Technologie geliefert werden. Der erste Bildzwischenspeicher, der zweite Bildzwischenspeicher und der Steuerdatenzwischenspeicher basieren bevorzugt auf schnellen Speichertechnologien, beispielsweise auf Cache-Speicher oder SRAM.
  • Im Allgemeinen sind solche schnellen Zwischenspeicher flüchtige und in ihrer Größe begrenzte Speicher. Aus diesem Grunde wird beim erfindungsgemäßen Verfahren lediglich ein Bildabschnitt des zu transformierenden Bildes in besagten ersten Bildzwischenspeicher eingelesen. Das Bild wird bevorzugt zeilenweise im Bildzwischenspeicher gespeichert und folglich auch zeilenweise vom Sensor, welcher das zu transformierende Bild liefert, ausgelesen.
  • Die erfindungsgemäße Vorrichtung kann insbesondere ein frei programmierbarer Speicherbaustein (field programmable gate array - FPGA) sein.
  • Im ersten Bildzwischenspeicher kann beispielweise ein Bildabschnitt, der vier Zeilen umfasst, zwischengespeichert sein. Die Zeilen dieses Bildabschnittes sind in die vorab festgelegte Anzahl von X Speichersegmenten vorbestimmter Länge logisch unterteilt. Die Anzahl als auch die Länge der Speichersegmente können insbesondere jeweils unabhängig voneinander änderbar sein. Ein Speichersegment kann beispielsweise und nicht einschränkend 32 Pixel umfassen. Insbesondere kann eine Zeile in X Speichersegmente gleicher Länge aufgeteilt sein. Besonders bevorzugt ist die Zeile vollständig in die Speichersegmente aufgeteilt.
  • Ein Speicher der Vorrichtung wird somit im erfindungsgemäßen Verfahren lediglich logisch, nicht physisch unterteilt. Die entsprechenden Zeilen bzw. Speicher- oder Datensegmente werden folglich mittels entsprechender Pointer oder look-up-Tabellen adressiert. Dies kann bevorzugt durch den Controller erfolgen.
  • Es ist vorteilhaft, wenn sich die Speichersegmente nicht überlappen. Beim Umschreiben des Bildabschnittes aus dem Bildzwischenspeicher in den Gesamtspeicher kann für jede Zeile die Laufvariable x zurückgesetzt werden, so dass der Zähler x jeweils nur in einer Zeile fortlaufend inkrementiert wird.
  • In einer Ausgestaltung des erfindungsgemäßen Verfahrens können das erste Segment der ersten Zeile, das erste Segment der zweiten Zeile, das erste Segment der dritten Zeile und das erste Segment der vierten Zeile fortlaufend in den Gesamtspeicher geschrieben werden. Dieses Umschreiben kann in der erfindungsgemäßen Vorrichtung autark geschehen.
  • Da die Verfahrensschritte (a) und (b) wiederholt werden, wird im Gesamtspeicher das zu transformierende Bild komplett abgelegt. Allerdings liegt das zu transformierende Bild nicht zeilenweise im Gesamtspeicher vor, sondern stückweise zeilenweise. Auf ein besonders vorteilhaftes Umschreiben des Bildabschnittes aus dem ersten Bildzwischenspeicher in den Gesamtspeicher wird später erneut eingegangen.
  • Durch das Umschreiben im Verfahrensschritt (b) können somit beim Auslesen der Datensegmente aus dem Gesamtspeicher untereinander fortlaufende Zeilensegmente des originalen Bildes aus dem Gesamtspeicher geladen werden, ohne dass jeweils die komplette Zeile ausgelesen werden muss. Die Erzeugung des transformierten Bildes durch die Bildtransformationseinheit erfolgt somit mit Speichersegmenten, die als kleinste Informationseinheit betrachtet werden, jedoch aus mehreren Bytes bestehen können.
  • Die aus dem Gesamtspeicher ausgelesenen Steuerdaten werden im Steuerdatenzwischenspeicher zwischengespeichert und können Information darüber enthalten, auf welche Datensegmente der Bilddaten aus dem Gesamtspeicher die in den Steuerdaten hinterlegte Transformationsvorschrift anzuwenden ist. Die jeweiligen benötigten Bilddaten werden im zweiten Bildzwischenspeicher zwischengespeichert. Der erste und zweite Bildzwischenspeicher sowie der Steuerdatenzwischenspeicher kann jeweils als schneller Speicherbaustein nach dem First In First Out (FIFO) Prinzip arbeiten oder als logisch adressierbarer RAM (beispielsweise SRAM) ausgebildet sein. Ein solcher logisch adressierbarer RAM ermöglicht bevorzugt als Dual-Port-RAM (DPRAM) bis zu zwei zeitgleiche Zugriffe. Mit Hilfe der ausgelesenen Steuerdaten und zugehöriger Bilddaten kann somit die Bildtransformation in der Bildtransformationseinheit durchgeführt werden.
  • In einer vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens können beim Umschreiben des Bildabschnittes aus dem ersten Bildzwischenspeicher in den Gesamtspeicher die Speichersegmente des aus M-Zeilen bestehenden und X-Speichersegmente pro Zeile aufgeteilten Bildes nach folgender Vorschrift fortlaufend im Gesamtspeicher gespeichert werden:
    • - zunächst nacheinander in dieser Reihenfolge die ersten Speichersegmente jeder Zeile 1 bis M; dann nacheinander in dieser Reihenfolge
    • - die zweiten Speichersegmente jeder Zeile 1 bis M; und schließlich entsprechend nacheinander in dieser Reihenfolge
    • - die weiteren Speichersegmente 3 bis X jede Zeile von 1 bis M.
  • Ohne Beschränkung der Allgemeinheit kann der fortlaufende Speicherinhalt des Gesamtspeichers somit bei einer Speichersegmentlänge von 32 Pixeln, wobei jeder Pixel einem 8-bit Grauwert entsprechen kann, wie folgt aussehen. Wird ein Bild mit M-Zeilen und N-Pixeln pro Zeile angenommen und beträgt die Länge eines Speichersegmentes 32 Pixel, so können als Erstes die Pixel 1 bis 32 der ersten, zweiten, dritten, bis hin zur M-ten Zeile im Gesamtspeicher gespeichert sein. Auf diese jeweils ersten Speichersegmente jeder der M-Zeilen können die jeweils zweiten Speichersegmente der ersten, zweiten, dritten, bis M-ten Zeile folgen, d.h. die Werte der Pixel 33 bis 64 aus ersten, zweiten, dritten, bis hin zur M-ten Zeile.
  • Da einige Bildtransformationen, d.h. beispielsweise die Berechnung eines Grauwertes, eines Pixels des Zielbildes nicht lediglich ein einzelnes Pixel des zu transformierenden Ausgangsbildes transformieren, sondern eine Vielzahl von Pixeln des zu transformierenden Ausgangsbildes für die Berechnung heranziehen können, ist es auf diese Weise, d.h. im Falle der oben beschriebenen Struktur des im Gesamtspeicher umgeschriebenen Bildes möglich, die Umgebung eines Pixels des Ausgangsbildes auszulesen, ohne dass mehrere komplette Zeilen aus dem Speicher gelesen werden müssen. Dies ist ressourcenschonend und beschleunigt das Verfahren.
  • Insbesondere kann in einer weiteren Ausgestaltung der Inhalt des ersten Bildzwischenspeichers im Burst-Modus in den Gesamtspeicher geschrieben werden. Ferner können auch die Steuerdaten und/oder das zugehörige mindestens eine Datensegment der Bilddaten im Burst-Modus gelesen, bzw. ausgelesen werden. Die entsprechenden Vorgänge können auch aus Lese- bzw. Schreib-Burst bezeichnet werden.
  • Unter dem Burst-Modus ist ein Übertragungsmodus zur Beschleunigung von Lese- oder Schreibvorgängen bei Speichereinheiten zu verstehen, wobei größere Datenblöcke als ununterbrochenes Bündel kleinerer Dateneinheiten übertragen werden, ohne dass Initialisierungen für jede dieser Untereinheiten neu erfolgen müssen.
  • Das heißt, dass Lese- bzw. Schreib-Bursts als das Lesen bzw. Schreiben in oder aus einer Speichereinheit der Vorrichtung zu verstehen sind, wobei nicht einzelne Bytes gelesen oder geschrieben werden, sondern blockweise größere, zusammenhängende Daten. Jeder Speicherzugriff erzeugt einen Overhead, der beispielsweise bei Paritätsbits, Line Valid Bits oder Frame Valid Bits (zur Überprüfung einer korrekten Datenübertragung) umfassen kann.
  • In einer entsprechenden erfindungsgemäßen Vorrichtung kann somit der Controller ausgestaltet sein, Lese- und/oder Schreib-Vorgänge zwischen den Speichern im Burst-Modus durchzuführen. Dabei verfügt der Controller bevorzugt über FIFO-Bausteine als Zwischenspeicher, die bei Zugriffen im Burst-Modus die Daten schnell und zusammenhängend zur Verfügung stellen bzw. entgegennehmen.
  • Wird auf das obige Beispiel der Speicherung des zu transformierenden Bildes in den Gesamtspeicher zurückgegriffen, so kann in einem Lese- bzw. Schreib-Burst jeweils ein Vielfaches von 32 Pixeln (ohne Beschränkung der Allgemeinheit) aus einem Speicher gelesen bzw. in einem Speicher geschrieben werden.
  • Die Bildtransformation erfolgt durch die Bildtransformationseinheit nach einem strengen Schema, welches durch die Steuerdaten vorgegeben ist. Dabei können die Steuerdaten lediglich relative Lage-Informationen über den Speicherort der Pixel enthalten. Der Zugriff auf die Pixeldaten kann beispielsweise lediglich über relative Adressen aus den Steuerdaten gelesen werden. Ein Auslesen aus dem Gesamtspeicher kann somit sequentiell erfolgen. Im weiteren Verlauf können die transformierten Pixeldaten des transformierten Bildes über einen weiteren Zwischenspeicher, der bevorzugt auch ein FIFO-Speicher ist, zeilenweise an eine nächste Verarbeitungseinheit übergeben werden. Dies kann insbesondere zusammen mit den üblichen Steuersignalen (clock enable, frame valid, line valid) erfolgen.
  • Diese relative Adressierung hat den Vorteil, dass relative Adressen typischerweise im Bereich von 0 bis 3 Spaltenpositionen und -1 bis 2 für Zeilenpositionen innerhalb des Zwischenspeichers liegen. Folglich genügen in der Regel jeweils 4 Bit pro Pixel zur korrekten Wiedergabe der relativen Adressen, was einen geringeren Datenfluss zufolge hat, welcher wiederrum ressourcenschonend ist und das Verfahren beschleunigt.
  • Im erfindungsgemäßen Verfahren kann die Bildtransformation eine Bildtransformation aus der Gruppe umfassend:
    • - eine perspektivische Verzeichnung;
    • - eine Objektivverzeichnung;
    • - eine Rotation;
    • - ein inhomogener Abbildungsmaßstab;
    • - eine inhomogene Bildhelligkeit
    sein.
  • Grundlage einer möglichen Transformation kann das bekannte Verfahren der bilinearen Interpolation sein, wobei darauf hingewiesen wird, dass andere Verfahren zu Berechnung eines Helligkeitswertes eines Bildpunktes anhand einer lokalen Pixelumgebung in gleicher Weise Anwendung finden können. Das Verfahren der bilinearen Interpolation nutzt beispielsweise vier aneinander angrenzende Pixel, die verwendet werden, um ein transformiertes Pixel, insbesondere dessen Helligkeitswert, zu erhalten. Die Pixelumgebung kann auf einfache Weise durch das oben beschriebene Umschreiben des zu transformierenden Bildes in den Gesamtspeicher ausgelesen werden, ohne dass die kompletten Zeilen auszulesen sind.
  • Das Verfahren der bilinearen Interpolation ist aus dem Stand der Technik bekannt und wird hier nicht näher erläutert.
  • Ferner können im erfindungsgemäßen Verfahren im Verfahrensschritt (e) ein zugehöriger kompletter Steuerdatensatz aus dem Gesamtspeicher gelesen werden, sofern dessen Größe nicht die Größe des Steuerdatenzwischenspeichers übersteigt. Ferner können im Gesamtspeicher mehrere Steuerdatensätze gespeichert sein, um unterschiedliche Begebenheiten der Bildaufnahme, wie beispielsweise verschiedene Kameras, unterschiedliche Lichtverhältnisse, unterschiedliche Kamerapositionen und dergleichen abzudecken.
  • Insbesondere ist es vorteilhaft, wenn die Steuerdaten vor Durchführen des Verfahrens einmalig im Gesamtspeicher gespeichert werden. Eine solche Kalibrierung kann folglich die komplette Aufnahmesituation, beispielsweise Lichtverhältnisse, Kamerastandort, Kameraparameter, die Objektivverzeichnung, die Helligkeitsverteilung oder weitere geometrische Abbildungseigenschaften zwischen dem aufzunehmenden Objekt und dem Kamerabild beinhalten und bei der Transformation des aufgenommenen Bildes berücksichtigen. Im Ergebnis einer solchen Kalibrierung kann jede Position in dem Bild zugeordneten Koordinatensystem in eine Position des dem Kamerabild zugeordneten Koordinatensystems überführt werden und umgekehrt.
  • Durch die Kalibrierung kann auch auf die Verwendung korrespondierender Koordinaten verzichtet werden. Ebenso ist die Berechnung geometrischer Parameter bei einer Interpolation überflüssig und eine hohe Wiederverwendbarkeit von Daten möglich. Ferner kann eine Kamerakalibrierung zu dem auf einfache Weise überschrieben, d.h. ausgetauscht bzw. um eine weitere Kalibrierung in Form von Steuerdaten bzw. einem Steuerdatensatz, erweitert werden.
  • Die Steuerdaten können beispielsweise innerhalb einer PC-Software im Vorfeld erzeugt werden und anschließend im Gesamtspeicher gespeichert werden. Die pixelweise Transformation des Kamerabildes erfolgt somit unter Verwendung dieser vorher erzeugten statischen Steuerdaten. Beispielsweise können diese Steuerdaten für jeden Bildpunkt beschreiben, welche Pixeldaten aus dem Bildzwischenspeicher zu lesen sind und mit welchen Faktoren diese zur Berechnung, beispielsweise eines Helligkeitswertes, zu wichten sind, falls das Verfahren der bilinearen Interpolation Anwendung findet.
  • Die vorher erzeugten statischen Steuerdaten können ebenso den Ablauf der Lesezugriffe auf den Gesamtspeicher innerhalb der Vorrichtung festlegen, so dass der Steuerdatenzwischenspeicher und der zweite Bildzwischenspeicher jeweils mit den aktuellen notwendigen Daten gefüllt sein kann.
  • Üblicherweise kann immer nur ein Zugriff auf den externen Speicher erfolgen. Dennoch können mehrere Module, wie beispielsweise der erste, der zweite Bildzwischenspeicher und der Steuerdatenzwischenspeicher um den Zugriff auf den Gesamtspeicher konkurrieren. Daher können gemäß einer Priorisierungsvorschrift die Zugriffe auf den Gesamtspeicher stattfinden. Die höchste Priorisierung können die Schreibvorgänge aus dem ersten Bildzwischenspeicher erhalten, damit während einer Bildaufnahme keine Bilddaten verloren gehen. Danach kann der Lesevorgang in den Steuerdatenzwischenspeicher erfolgen. Die geringste Priorität kann der Lesevorgang in den zweiten Bildzwischenspeicher aufweisen.
  • Das erfindungsgemäße Verfahren kann eine Shading-Korrektur realisieren, in welcher in den Steuerdaten pro Pixel berechnete Koeffizienten hinterlegt werden können. Diese Koeffizienten können den berechneten Helligkeitswert nochmals anpassen.
  • In den erfindungsgemäßen Lösungen ist die Ursache für ein verzerrt aufgenommenes Bild irrelevant. Im Gegensatz zu Lösungen aus dem Stand der Technik, bei denen immer die Umrechnung der Koordinaten Teil der Lösung ist, geschieht eine solche Umrechnung in den erfindungsgemäßen Lösungen nicht während der Bildtransformation in Echtzeit. Während der Transformation des Bildes finden keine geometrischen Berechnungen statt, sondern es werden zuvor erzeugte, in den Steuerdaten hinterlegte Steuerungsinformationen abgearbeitet. Da der Gesamtspeicher mehrere Datensätze mit Steuerdaten enthalten kann, kann folglich von Bild zu Bild des Kamerasystems die Vorschrift der Bildtransformation umgeschaltet werden. Ebenso ist es möglich, dass komplexe geometrische Bildentzerrungen in Echtzeit ausgeführt werden können, da diese nicht an eine Koordinatentransformation gebunden sind.
  • Komplexe Aufnahmesituationen, beispielweise ein umgelenkter Druckbogen oder ein Buchrücken können beispielsweise derart ausgeführt werden, dass die aufzunehmende Oberfläche mit einem feingerasterten Schachbrettmuster versehen wird. Durch eine, z.B. automatische Erkennung des kompletten Musters kann in Verbindung mit üblichen Interpolations- bzw. Extrapolationsverfahren der Zusammenhang zwischen beliebigen Koordinaten im Kamerabild und den korrespondierenden Koordinaten im korrigierten Bild hergestellt werden. Ein entzerrtes Bild hat den Vorteil, dass es maßstäblich hinsichtlich eines Weltkoordinatensystems ist, was z.B. für eine Robotersteuerung oder Meßaufgabe von Vorteil sein kann. Das zuvor beschriebene Verfahren beschreibt zwar vorrangig Intensitätsbilder, ist allerdings nicht auf solche Bilder beschränkt. In gleicher Weise können auch Mehrkanal-Bilder, also beispielsweise Farbbilder transformiert werden. Jeder Kanal kann dabei mit dem vorstehenden Verfahren separat verarbeitet werden. Ebenso ist es möglich, das im Zuge einer pixelweisen Bildtransformation das für Farbbilder oft erforderliche Verfahren des Demosaicings mit auszuführen.
  • Im Folgenden werden das erfindungsgemäße Verfahren sowie die erfindungsgemäße Vorrichtung anhand beispielhafter Zeichnungen näher erläutert. In den Zeichnungen sind rein beispielhafte Ausgestaltungen gezeigt, die jeweils für sich vorteilhaft sind. Technische Merkmale der Ausgestaltung können beliebig miteinander kombiniert werden. Gleiche technische Merkmale und Merkmale gleicher technischer Funktionen sind der Einfachheit halber mit denselben Bezugszeichen bezeichnet.
  • Es zeigen:
    • 1 Ein verzerrtes Kamerabild;
    • 2 Ein transformiertes Bild aus dem Kamerabild der 1;
    • 3 Eine lokale Umgebung im Kamerabild einer transformierten Pixelposition aus dem transformierten Bild;
    • 4 Eine lokale Umgebung im Kamerabild einer transformierten Pixelposition im transformierten Bild;
    • 5 Prinzipdarstellung der bilinearen Interpolation;
    • 6 Prinzipdarstellung des erfindungsgemäßen Verfahrens;
    • 7 Prinzipdarstellung der erfindungsgemäßen Vorrichtung;
    • 8 Notwendige Pixeldaten aus dem Kamerabild zur Berechnung eines Segment im transformierten Bild und tatsächlich gelesene Pixeldaten;
    • 9 Ausgewähltes Segment im transformierten Bild;
    • 10 Vergrößerung des transformierten Bildes;
    • 11 Verkleinerung des transformierenden Bildes; und
    • 12 Prinzipdarstellung einer komplexen Aufnahmesituation.
  • In 1 ist ein Kamerabild 1 gezeigt, welches eine Verzeichnung 3, als auch eine inhomogene Bildhelligkeit bzw. inhomogene Helligkeitsverteilung 5 aufweist. Es handelt sich somit um ein zu transformierendes Bild 7. Gezeigt ist ein Schachbrettmuster 8 zur Veranschaulichung.
  • Die Verzeichnung 3 äußert sich insbesondere an Seiten 9 bzw. in Ecken 11 des Kamerabildes 1. Die in 1 gezeigte inhomogene Helligkeitsverteilung 5 weist einen Abfall 13 der Helligkeit von einem Zentrum 15 des Kamerabildes 1 zu den Seiten 9 bzw. den Ecken 11 auf. Dies ist durch eine Schraffur 17 äußerer weißer Bereiche 19 des Schachbrettmusters 8 angedeutet. Der Übersichtlichkeit halber sind die äußeren Bereiche lediglich an der linken Seite 9 des Kamerabildes 1 eingezeichnet.
  • Die Verzeichnung 3 setzt sich aus einer perspektivischen Verzeichnung 3a und einer Objektivverzeichnung 3b zusammen, die im gezeigten Schachbrettmuster 8 aufsummiert sind.
  • In 2 ist ein aus dem Kamerabild 1 der 1 erhaltenes transformiertes Bild 21 gezeigt. Dieses stellt ein entzerrtes 23 bzw. korrigiertes Bild 25 dar.
  • Zu erkennen ist deutlich eine homogene Helligkeitsverteilung 27, die sich über das gesamte transformierte Bild 21 erstreckt. Ebenso weist das in 2 gezeigte Schachbrettmuster 8 keinerlei Verzeichnung 3 auf.
  • Eine notwendige Operation bei der in den 1 und 2 angedeuteten Transformation des Kamerabildes 1 soll nunmehr anhand der 3 bis 5 verdeutlicht werden.
  • Beginnt man mit der Betrachtung von 4, so ist in dieser das transformierte Bild 21, welches sich aus einer Vielzahl von Pixeln 27 zusammensetzt (lediglich drei der Pixel 27 sind mit einem Bezugszeichen versehen), als Ausschnitt dargestellt.
  • Jedes der Pixel 27 hat einen Helligkeitswert 29, der beispielsweise einen Wert zwischen 0 und 255 annehmen kann. Gezeigt ist ferner eine lokale Umgebung 31, die neun Pixel 27 umfasst.
  • Betrachtet man ein Zentralpixel 33 der lokalen Umgebung 31 (dies entspricht nicht dem Zentrum 15 der 1), so weist dieses einen zentralen Helligkeitswert 35 auf. Da das in 4 gezeigte transformierte Bild 21 bereits transformiert wurde, entspricht die lokale Umgebung 31 jener der in 3 gezeigten lokalen Umgebung 31.
  • Das Zentralpixel 33 des transformierten Bildes 21, insbesondere dessen Helligkeitswert 35 setzt sich somit aus vier Pixeln 27, genauer einem ersten Pixel 27a, einem zweiten Pixel 27b, einem dritten Pixel 27c und einem vierten Pixel 27d zusammen bzw. wird aus diesen vier Pixeln 27a-27d anteilig berechnet. Diese Pixel 27a-27d haben jeweils einen ersten 29a, einen zweiten 29b, einen dritten 29c bzw. einen vierten Helligkeitswert 29d.
  • In 3 ist ferner eine Rotation 37 der Pixel 27a-27d bezüglich der lokalen Umgebung 31 erkennbar. Eine solche Rotation 37 ist neben der perspektivischen Verzeichnung 3a und der Objektivverzeichnung 3b sowie der inhomogene Bildhelligkeit bzw. Helligkeitsverteilung 5 ein möglicher Bildparameter 39, der im Zuge einer Transformation des Kamerabildes 1 transformiert und somit korrigiert werden kann.
  • Ferner kann auch ein inhomogener Abbildungsmaßstab 41 auftreten. Dies ist beispielsweise der Fall, wenn ein Pixel 27 oder ein Bereich 19 in der Nähe der Seite 9 des Kamerabildes 1 größer abgebildet ist als ein Pixel 27 oder ein Bereich aus dem Zentrum 15. Auch ein inhomogener Abbildungsmaßstab 41 kann als zu korrigierender Bildparameter 39 betrachtet werden.
  • Aus den 3 und 4 ist ferner ersichtlich, dass die einzelnen Pixel 27 des Kamerabildes 1 mittels zweier Kamera-Pixelwerte, x' und y' adressiert werden, wohingegen die Pixel 27 des transformierten Bildes 21 über Bild-Pixelwerte x und y adressiert werden.
  • Für die Berechnung der Helligkeitswerte 29 des transformierten Bildes 21 kann das Verfahren der sogenannten bilinearen Interpolation 43 angewandt werden. Diese ist rein schematisch in 5 dargestellt.
  • Der zentrale Helligkeitswert 35 des schraffiert eingezeichneten Zentralpixels 33 ist eine geometrisch gewichtete Summe 45 der Helligkeitswerte 29a-29d der vier umgebenden Pixel 27a-27d.
  • Sowohl eine horizontale Verschiebung 47, als auch eine vertikale Verschiebung 49 fließen in die Berechnung des zentralen Helligkeitswertes 35 ein.
  • Das Verfahren der bilinearen Interpolation 43 ist aus dem Stand der Technik bekannt und soll an dieser Stelle nicht weiter erläutert werden.
  • In 6 ist der schematische Ablauf des erfindungsgemäßen Verfahrens angedeutet.
  • Ausgehend von einer Kameraeinheit 51 wird das Kamerabild 1 (hier in Form einer Pulsfolge 53 über einen Dateneingang 55 an eine Vorrichtung zur Bildtransformation 57 übertragen.
  • Die Vorrichtung zur Bildtransformation 57 kann datenübertragend mit einem Gesamtspeicher 81 verbunden sein. Insbesondere kann die Vorrichtung zur Bildtransformation 57 ein vor Ort programmierbare integrierte Schaltkreis, ein so genanntes field programmable gate array, oder kurz FPGA 58 sein. In einer anderen (nicht gezeigten) Ausgestaltung kann der FPGA 58 den Gesamtspeicher 81 umfassen.
  • Die Vorrichtung zur Bildtransformation 57 kann datenübertragend mit einem Prozessor 62 verbunden sein, welcher das transformierte Bild 21, auch in Form einer Pulsfolge 53 gezeigt, an einem Datenausgang 63 bereitstellt.
  • Der schematisch in 6 gezeigte Aufbau kann als Kamerasystem 65, beispielsweise als Industriekamera 67 bereitgestellt sein. Der Prozessor 62 kann ausgestaltet sein, dass von der Vorrichtung 57 ausgegebene transformierte Bild 21 weiter zu be- bzw. verarbeiten.
  • Die Vorrichtung zur Bildtransformation 57 ist in 7 näher anhand einer Schemazeichnung beschrieben.
  • Das Kamerabild 1 wird über den Dateneingang 55 in einen ersten Bildzwischenspeicher 69 übertragen. Insbesondere wird ein Bildabschnitt 71 des zu transformierenden Bildes 7 im ersten Bildzwischenspeicher 69 gespeichert. Der Bildabschnitt 71 ist schematisch gezeigt und kann mehrere Zeilen 73 umfassen.
  • Rein beispielhaft kann jede der Zeilen 73 (bevorzugt vollständig) in X Speichersegmente 75 aufgeteilt werden. In 7 beträgt die Anzahl X vier und lediglich die Speichersegmente 75 der ersten Zeile 73 sind mit Bezugszeichen versehen.
  • Ferner kann in der Vorrichtung 57 ein Controller 61 vorgesehen sein, wobei dieser nicht mit dem außerhalb der Vorrichtung 57 angeordneten Prozessor 62 des kompletten Kamerasystems 65 zu verwechseln ist.
  • Der Controller 61 ist ausgestaltet, jede Zeile 73 in die vorbestimmte Anzahl von X Speichersegmenten 75 logisch zu unterteilen, wobei eine vorbestimmte aber änderbare Speichersegmentlänge 77 (siehe 8) kleiner als eine Zeilenlänge 79 des Kamerabildes 1 ist, und wobei der Controller 61 für die Speichersegmente 1 bis X aus mindestens 2 aufeinanderfolgenden Zeilen 73 des Bildabschnittes 71 das jeweils x-te Speichersegment 75 fortlaufend in den Gesamtspeicher 81 schreibt. Dies ist schematisch mittels vier unterschiedlicher Schraffuren 17 dargestellt. Die Speichersegmente 75 können als Bilddaten 10 bezeichnet werden. Die Bilddaten 10 sind somit im ersten Bildzwischenspeicher 69, also auch im Gesamtspeicher 81 gespeichert.
  • Im Gesamtspeicher 81 können ferner die Bildtransformation beschreibende Steuerdaten 83 gespeichert sein. Die Steuerdaten 83 können als Steuerdatensatz 85 im Gesamtspeicher 81 gespeichert sein, wobei mehrere Steuerdatensätze 85 vorliegen können.
  • Die Vorrichtung 57 weist ferner einen Steuerdatenzwischenspeicher 87 auf, in welchem die Steuerdaten 83 nach dem Auslesen aus dem Gesamtspeicher 81 zwischengespeichert werden.
  • Das Speichern bzw. Auslesen von Daten aus bzw. in den Gesamtspeicher 81 oder die Zwischenspeicher 69 oder 87 kann vom Controller 61 gesteuert werden.
  • Ferner umfasst die Vorrichtung 57 einen zweiten Bildzwischenspeicher 89, in welchem Datensegmente 91, d.h. mindestens ein Datensegment 91 aus dem Gesamtspeicher 81 zwischengespeichert werden. Die Bilddaten 10 werden also im zweiten Bildzwischenspeicher 89 zwischengespeichert.
  • Hierbei kann aus den im Steuerdatenzwischenspeicher 87 gespeicherten Steuerdaten 83 hervorgehen, welche Datensegmente 91 aus dem Gesamtspeicher 81 in den zweiten Bildzwischenspeicher 89 zu übertragen sind.
  • Ein Datensegment 91 kann insbesondere einem Speichersegment 75 entsprechen oder aber mehrere Speichersegmente 75 umfassen.
  • Sowohl die Steuerdaten 83 aus dem Steuerdatenzwischenspeicher 87, als auch die Datensegmente 91 aus dem zweiten Bildzwischenspeicher 89 werden an eine Bildtransformationseinheit 93 übertragen.
  • Die Bildtransformationseinheit 93 transformiert das mindestens eine Datensegment 91 gemäß der aus dem Steuerdatenzwischenspeicher 87 empfangenen Steuerdaten 83. Die Steuerdaten 83 enthalten somit eine Transformationsvorschrift für bestimmte, klar vorab definierte Datensegmente 91.
  • In den 8 und 9 wird das selektive Auslesen von Datensegmenten zur Transformation des Kamerabildes 1 verdeutlicht.
  • In der 9 sind 32 Pixel 27 des transformierten Bildes 21 hervorgehoben. Um die Helligkeitswerte 29 der Pixel 27 zu berechnen sind gemäß dem mit Hilfe der 3 bis 5 beschriebenen Verfahren der bilinearen Interpolation auch die Pixel 27 der lokalen Umgebung 31 notwendig.
  • In der 8 sind diese notwendigen Daten 95 ebenfalls eingezeichnet. Diese notwendigen Daten 95 liegen im Kamerabild 1 jedoch in vier Zeilen 73.
  • Die Lösungen aus dem Stand der Technik erfordern das komplette Auslesen dieser vier Zeilen 73.
  • Durch die in 7 beschriebene Aufteilung der in den ersten Bildzwischenspeicher 69 eingelesenen Zeilen 73 in Speichersegmente 75 und die darauf folgende Neusortierung im Gesamtspeicher 81 und insbesondere durch geeignete Wahl der Größe der Speichersegmente 75, als auch der Größe der Datensegmente 91 (deren Größen sind bevorzugt gleich) ist es bei der vorliegenden Erfindung nicht notwendig, die kompletten vier Zeilen 73 aus dem Kamerabild 1 auszulesen.
  • Wird beispielsweise und nicht einschränkend eine Größe der Speichersegmente 75 (im Folgenden wird davon ausgegangen, dass die Speichersegmente 75 und die Datensegment 91 gleich groß sind) von zweiunddreißig Pixel 27 angenommen, so sind die ersten zweiunddreißig Pixel 27 einer ersten Zeile 73a und die ersten zweiunddreißig Pixel 27 einer zweiten Zeile 73b zusammenhängend, d.h. blockweise im Gesamtspeicher 81 abgelegt.
  • Analog sind im Gesamtspeicher 81 bei dieser Wahl der Größe der Speichersegmente 75 die Pixel 33-64 der ersten 73a, der zweiten 73b, sowie einer dritten Zeile 73c und einer vierten Zeile 73d zusammenhängend und aufeinanderfolgend im Gesamtspeicher 81 gespeichert.
  • Bevorzugt kann der Controller 61 Daten von den Zwischenspeichern 69, 87 und 89 in den Gesamtspeicher 81 und/oder aus dem Gesamtspeicher 81 in die Zwischenspeicher 69, 87 und 89 in einem sogenannten Burst Modus 98 schreiben bzw. lesen (siehe 7). Entsprechend können das Schreiben und das Lesen in diesem Modus als Schreib-Burst 97 bzw. Lese-Burst 99 bezeichnet werden.
  • Das heißt, dass nicht einzelne Bytes gelesen oder geschrieben werden, sondern größere zusammenhängende Datensegmente 91 bzw. Speichersegmente 75. Dies hat den Hintergrund, dass jeder Speicherzugriff einen sogenannten Overhead generiert, d.h. zusätzliche Daten, die unabhängig von der Größe der zu lesenden oder zu schreibenden Daten sind.
  • Demzufolge können die notwendigen Daten 95 der 8 aus dem Gesamtspeicher 81 gelesen werden, indem ein erster Block 101 bestehend aus zwei Datensegmenten 91 (diese stammen aus der ersten 73a bzw. der zweiten Zeile 73b) und ein zweiter Block 103 in einem Lese-Burst 99 aus dem Gesamtspeicher 81 gelesen werden. Der zweite Block 103 umfasst vier Datensegmente 91 aus den Zeilen 73a-73d.
  • Es kann somit vermieden werden, eine komplette Zeile 73 bzw. mehrere komplette Zeilen 73 auslesen zu müssen, um die notwendigen Daten 95 aus dem Gesamtspeicher 81 zu extrahieren.
  • Analog können die Speichersegmente 75 aus dem ersten Bildzwischenspeicher 69 im Schreib-Burst 97 in den Gesamtspeicher 81 übertragen werden.
  • Mögliche Anpassungen des transformierten Bildes 21 sind in den 10 und 11 gezeigt.
  • Der zuvor erwähnte Bildparameter 39 des inhomogenen Abbildungsmaßstabs 41 kann dadurch korrigiert werden, dass das transformierte Bild 21 entweder vergrößert wird, dies ist in 10 gezeigt, oder verkleinert wird, wie in 11.
  • Im ersten Fall befindet sich ein Selektionsrahmen 105 komplett innerhalb des Kamerabildes 1, sodass das transformierte Bild 21 vollständig mit dem Schachbrettmuster 8 ausgefüllt ist. Bei der Transformation des Kamerabildes 1 werden jedoch außerhalb des Selektionsrahmens 105 liegende Bereiche 107 des Kamerabildes 1 verworfen und stehen zur weiteren Auswertung nicht mehr zur Verfügung.
  • Im Gegensatz dazu hat die Verkleinerung der 11 den Vorteil, dass der Selektionsrahmen 105 das Kamerabild 1 gänzlich einschließt oder lediglich sehr kleine außerhalb liegende Bereiche 107 des Kamerabildes 1 verworfen werden müssen. Die Verkleinerung hat jedoch den Nachteil, dass im transformierten Bild 21 undefinierte Bereiche 109 an den Seiten 9 des transparenten Bildes 21 entstehen. Diese können jedoch mit Standardwerten 111 (default values) versehen werden.
  • Für die vorliegende Erfindung kann dahingestellt bleiben, was die Ursache für ein verzerrt aufgenommenes Kamerabild 1 ist. Erfindungsgemäß findet während der Bildtransformation durch die Bildtransformationseinheit 93 keine geometrische Berechnung statt, sondern es werden zuvor erzeugte Steuerungsinformationen abgearbeitet. Die Steuerdaten sind explizit an eine Aufnahmesituation gebunden. Allerdings ist es möglich mehrere Steuerdatensätze 85 im Gesamtspeicher 81 abzulegen, zwischen denen umgeschaltet werden kann.
  • Ferner können mit dem erfindungsgemäßen Verfahren bzw. der erfindungsgemäßen Vorrichtung 57 komplexe geometrische Transformationen an Kamerabildern in Echtzeit ausgeführt werden. Das Verfahren ist nicht an eine Koordinatentransformation gebunden, die durch eine bestimmte Formel abgebildet werden kann.
  • Beispielsweise kann ein gewölbtes Flaschenetikett (nicht gezeigt) entzerrt werden, obwohl die Verzerrung komplexer ist als die für ein Objektiv übliche Verzeichnung. Ebenso kann ein in 12 abgebildeter Druckbogen 113 entzerrt werden.
  • In diesem Beispiel kann die Kalibrierung der verwendeten Kamera (nicht gezeigt) dadurch erfolgen, dass die Oberfläche 115 des Druckbogens 113 mit einem Kalibriermuster 117 versehen ist. Das Kalibriermuster 117 kann beispielsweise ein Schachbrettmuster 8 sein, welches vermessen wird. Dies ist schematisch für eine Seite des Druckbogens 113 dargestellt. Der Controller 61 kann eine automatische Erkennung des kompletten Schachbrettmusters 8 vornehmen und mit den üblichen Interpolation- bzw. Extrapolationsverfahren den Zusammenhang zwischen den Bild-Pixelwerten x, y und den korrespondierenden Kamera-Pixelwerten x', y' herstellen. Dieser Zusammenhang kann in einem oder mehreren Steuerdatensätzen 85 im Gesamtspeicher 81 gespeichert werden.
  • Das Verfahren der bilinearen Interpolation 43 ist rein beispielhaft genannt. Im Wesentlichen können komplexere Verfahren, das heißt Transformationen durchgeführt werden, die unter Umständen größere Mengen an Steuerdaten und Bilddaten (mehr als vier Pixel) pro zu berechnende Pixel benötigen.

Claims (10)

  1. Verfahren zur Bildtransformation, umfassend die folgenden Verfahrensschritte: (a) Einlesen eines mehrere Zeilen (73) umfassenden Bildabschnittes (71) eines zu transformierenden Bildes (7) in einen ersten Bildzwischenspeicher (69); (b) Umschreiben des Bildabschnittes (71) aus dem Bildzwischenspeicher (69) in einen Gesamtspeicher (81), wobei jede Zeile (73) in eine vorbestimmte Anzahl (X) von Speichersegmenten (75) vorbestimmter Länge logisch unterteilt wird und eine Speichersegmentlänge (77) geringer als eine Zeilenlänge (79) des Bildes (1) ist und wobei für die Speichersegmente 1 bis X aus mindestens zwei aufeinanderfolgenden Zeilen (73) des Bildabschnittes (71) das jeweils x-te (1 ≤ x ≤ X) Speichersegment (75) jeweils zeilenweise fortlaufend in den Gesamtspeicher (81) geschrieben wird; wobei (c) die Verfahrensschritte (a) und (b) wiederholt werden, bis alle Rohdaten des zu transformierenden Bildes (7) als Bilddaten (10) in den Gesamtspeicher (81) umgeschrieben sind; (d) Auslesen von vorab gespeicherten die Bildtransformation beschreibenden Steuerdaten (83) aus dem Gesamtspeicher (81) in einen Steuerdatenzwischenspeicher (87), wobei die Steuerdaten explizit an eine Aufnahmesituation gebunden sind und abschnittsweises Auslesen von mindestens einem, zu den ausgelesenen Steuerdaten (83) zugehörigen Datensegment (91) der Bilddaten (10) aus dem Gesamtspeicher (81) in einen zweiten Bildzwischenspeicher (89); (e) Übertragen der ausgelesenen Steuerdaten (83) und zugehöriger Bilddaten (10) vom Steuerdatenzwischenspeicher (87) und vom zweiten Bildzwischenspeicher (89) in eine Bildtransformationseinheit (93); (f) Durchführen der Bildtransformation des mindestens einen Datensegments (91) gemäss der Steuerdaten (83) durch die Bildtransformationseinheit (93), wobei die zuvor erzeugten Steuerungsinformationen abgearbeitet werden und somit während der Bildtransformation durch die Bildtransformationseinheit (93) keine geometrische Berechnung stattfindet.
  2. Verfahren nach Anspruch 1, wobei eine Zeile (73) in die Anzahl (X) Speichersegmente (75) gleicher Länge (77) aufgeteilt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei beim Umschreiben des Bildabschnittes (71) aus dem ersten Bildzwischenspeicher (69) in den Gesamtspeicher (81) die Speichersegmente (75) des aus M-Zeilen (73) bestehenden und in die Anzahl (X) Speichersegmente (75) pro Zeile (73) aufgeteilten Bildes (1) nach folgender Vorschrift fortlaufend im Gesamtspeicher (81) gespeichert werden: - Zunächst nacheinander in dieser Reihenfolge die ersten Speichersegmente (75) jeder Zeile 1 bis M; dann nacheinander in dieser Reihenfolge - die zweiten Speichersegmente (75) jeder Zeile (73) 1 bis M; und schließlich entsprechend nacheinander in dieser Reihenfolge - die weiteren Speichersegmente (73) 3 bis X jeder Zeile (73) von 1 bis M.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Inhalt des ersten Bildzwischenspeichers (69) im Burst-Modus (98) in den Gesamtspeicher (81) geschrieben wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Steuerdaten (83) und/oder das zugehörige mindestens eine Datensegment (91) der Bilddaten (10) im Burst-Modus (98) ausgelesen werden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Bildtransformation eine Bildtransformation aus der Gruppe umfassend: - eine perspektivische Verzeichnung (3a); - eine Objektivverzeichnung (3b); - eine Rotation (37); - ein inhomogener Abbildungsmaßstab (41); und - eine inhomogene Bildhelligkeit (5) ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Steuerdaten (83) vor Durchführen des Verfahrens einmalig im Gesamtspeicher (81) gespeichert werden.
  8. Vorrichtung (57) zur Bildtransformation, umfassend - einen Dateneingang (55) zum Einlesen eines mehrere Zeilen (73) umfassenden Bildabschnittes (71) eines zu transformierenden Bildes (7) in einen ersten Bildzwischenspeicher (69); - einen Gesamtspeicher zum Speichern einer vorbestimmten Anzahl (X) von vom ersten Bildzwischenspeicher (69) bereitgestellten Speichersegmenten (75) und - zum Bereitstellen von vorab gespeicherten Steuerdaten (83), wobei die Steuerdaten (83) explizit an eine Aufnahmesituation gebunden sind; - einen Controller (61), der ausgestaltet ist, jede Zeile (73) in die vorbestimmte Anzahl (X) Speichersegmente (75) logisch zu unterteilen, wobei eine vorbestimmte Speichersegmentlänge (77) kleiner ist als eine Zeilenlänge (79) des Bildes (1), und für die Speichersegmente (75) 1 bis X aus mindestens zwei aufeinanderfolgenden Zeilen (73) des Bildabschnittes (71) das jeweils x-te (1 ≤ x ≤ X) Speichersegment (75) jeweils zeilenweise fortlaufend in den Gesamtspeicher (81) zu schreiben; - einen Steuerdatenzwischenspeicher (87) zum Auslesen und Zwischenspeichern von die Bildtransformation beschreibenden Steuerdaten (85) aus dem Gesamtspeicher (81); - einen zweiten Bildzwischenspeicher (89) zum Auslesen und Zwischenspeichern von mindestens einem Datensegment (91) aus dem Gesamtspeicher (81); und - eine Bildtransformationseinheit (93) zum Empfangen und Abarbeiten der ausgelesenen Steuerdaten (83) und des mindestens einen Datensegments (91) und zum Transformieren der Bilddaten (10) des mindestens einen Datensegments (91) gemäß der aus dem Steuerdatenzwischenspeicher (87) empfangenen Steuerdaten (83), sodass somit während der Bildtransformation durch die Bildtransformationseinheit (93) keine geometrische Berechnung stattfindet.
  9. Vorrichtung nach Anspruch 8, wobei der Controller (61) ausgestaltet ist Lese- und/oder Schreibvorgänge zwischen den Speichern (69, 81, 87, 89) im Burst-Modus (98) durchzuführen.
  10. Kamerasystem (65), umfassend eine Vorrichtung nach Anspruch 8 oder 9 und einen Prozessor (62) zur weiteren Bearbeitung des von der Vorrichtung (57) ausgegebenen transformierten Bildes (21).
DE102018004391.7A 2018-06-04 2018-06-04 Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation Active DE102018004391B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102018004391.7A DE102018004391B4 (de) 2018-06-04 2018-06-04 Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018004391.7A DE102018004391B4 (de) 2018-06-04 2018-06-04 Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation

Publications (2)

Publication Number Publication Date
DE102018004391A1 DE102018004391A1 (de) 2019-12-05
DE102018004391B4 true DE102018004391B4 (de) 2022-12-01

Family

ID=68575991

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018004391.7A Active DE102018004391B4 (de) 2018-06-04 2018-06-04 Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation

Country Status (1)

Country Link
DE (1) DE102018004391B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008050345A1 (de) 2007-10-03 2009-04-16 Qimonda Ag System und Methode für Datenbearbeitung in Speichern
US20110122298A1 (en) 2009-11-26 2011-05-26 Megachips Corporation Image processing apparatus, and method of operating an image processing apparatus
DE102012202215A1 (de) 2011-02-14 2012-08-16 Xerox Corp. Systeme, Verfahren und Vorrichtungen zum Drehen von Bildkacheln unter Verwendung von Liniensegmentlesepuffer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008050345A1 (de) 2007-10-03 2009-04-16 Qimonda Ag System und Methode für Datenbearbeitung in Speichern
US20110122298A1 (en) 2009-11-26 2011-05-26 Megachips Corporation Image processing apparatus, and method of operating an image processing apparatus
DE102012202215A1 (de) 2011-02-14 2012-08-16 Xerox Corp. Systeme, Verfahren und Vorrichtungen zum Drehen von Bildkacheln unter Verwendung von Liniensegmentlesepuffer

Also Published As

Publication number Publication date
DE102018004391A1 (de) 2019-12-05

Similar Documents

Publication Publication Date Title
EP0276800B1 (de) Einrichtung zur Darstellung eines zusammengesetzten Bildes
DE3339178C2 (de)
DE102011056970A1 (de) Rasterausgabe von rotierten, interpolierten Pixeln, die für digitale Bildstabilisierung optimiert ist
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE19721713C2 (de) Elektronisches Endoskop
DE3438512A1 (de) Computer-display-system
DE2902134A1 (de) Fehlerkompensiervorrichtung fuer einen festkoerper-bildabnehmer
DE3546337A1 (de) Glaettungsverfahren und -vorrichtung fuer binaerkodierte bilddaten
DE1524565B2 (de) Einrichtung zur wiedergabe von bildmustern
DE3629462C2 (de) Verfahren und Vorrichtung zur elektronischen Bildverarbeitung mit Zwischenspeicherung
DE3231067A1 (de) Verfahren zum herstellen von auswahlmasken
DE2714346B2 (de) Vorrichtung zum Darstellen von Zeichen mittels eines Sichtgerätes
DE3153360C2 (de)
DE3141882A1 (de) Dynamische schreib- und lesespeichervorrichtung
DE3143429C2 (de)
DE102005025025A1 (de) Integrierte Schaltung mit Warping-Berechnungseinheit
DE3243248A1 (de) Einrichtung zur digitalen bilddarstellung
DE2720994A1 (de) Bildkonstruktion
DE102018004391B4 (de) Verfahren, Vorrichtung und Kamerasystem zur Bildtransformation
DE60015271T2 (de) Schaltungsanordnung zur parallel/seriell-wandlung
DE3900489C2 (de) Einrichtung zur Erzeugung von Steuersignalen für eine Videomischeinrichtung
EP0121766B1 (de) Verfahren und Vorrichtung zur Darstellung von Bildinformationen
DE3114888A1 (de) Verfahren und vorrichtung zum korrigieren von raum- und abschattungsfehlern von farbfernsehkameras
EP0132455A1 (de) Verfahren und Vorrichtung zur hochauflösenden Darstellung von Strichgrafiken
DE3204134C2 (de) Vorrichtung zur Erzeugung eines Monitorbildes als beliebiger Teilausschnitt aus einem Großbild

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final