DE102018115991B4 - DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE - Google Patents
DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE Download PDFInfo
- Publication number
- DE102018115991B4 DE102018115991B4 DE102018115991.9A DE102018115991A DE102018115991B4 DE 102018115991 B4 DE102018115991 B4 DE 102018115991B4 DE 102018115991 A DE102018115991 A DE 102018115991A DE 102018115991 B4 DE102018115991 B4 DE 102018115991B4
- Authority
- DE
- Germany
- Prior art keywords
- correction
- value
- image
- pixel
- values
- 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
Links
- 230000000694 effects Effects 0.000 title claims abstract description 33
- 238000012937 correction Methods 0.000 claims abstract description 225
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000006870 function Effects 0.000 claims description 274
- 239000013598 vector Substances 0.000 claims description 59
- 230000003287 optical effect Effects 0.000 claims description 42
- 238000010606 normalization Methods 0.000 claims description 16
- 238000012935 Averaging Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 62
- 239000011159 matrix material Substances 0.000 description 29
- 230000009466 transformation Effects 0.000 description 18
- 238000009826 distribution Methods 0.000 description 15
- 238000011161 development Methods 0.000 description 14
- 230000000750 progressive effect Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 239000003086 colorant Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000013178 mathematical model Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 238000012886 linear function Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 4
- 238000013316 zoning Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000008078 mathematical effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000003702 image correction Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 241000134942 Botrychium lineare Species 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 210000002023 somite Anatomy 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G06T5/80—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/81—Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3877—Image rotation
- H04N1/3878—Skew detection or correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/84—Camera processing pipelines; Components thereof for processing colour signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/10—Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
- H04N25/11—Arrangement of colour filter arrays [CFA]; Filter mosaics
- H04N25/13—Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/60—Noise processing, e.g. detecting, correcting, reducing or removing noise
- H04N25/61—Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"
Abstract
Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes (I1) einer elektronischen Kamera (10), umfassend:- Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und- Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von einer Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit einem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.Correction method for correcting a vignetting effect in values of pixels of an image (I1) of an electronic camera (10), comprising: - determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel, the correction function being a Exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, where the value of the correction function at the position of the pixel based on a cascading of feedback multiplications, which are carried out by a circuit of at least two cascaded feedback multipliers, are determined such that the values of the correction function at the positions of the pixels are continuously calculated, multiplying the value of the pixel by the value of the correction function at the position of the Pixel is carried out with a multiplier connected downstream of the at least two cascaded feedback multipliers.
Description
Die Erfindung betrifft ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera. Die Erfindung betrifft ferner eine entsprechende Korrektureinrichtung sowie eine elektronische Kamera, die einen Bildsensor und die Korrektureinrichtung umfasst. Die Erfindung betrifft ferner eine Computervorrichtung und ein Computerprogram-Produkt.The invention relates to a correction method for correcting a vignetting effect in pixel values of an image from an electronic camera. The invention further relates to a corresponding correction device and an electronic camera which includes an image sensor and the correction device. The invention further relates to a computer device and a computer program product.
HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION
Elektronische Kameras werden unter anderem in industriellen Anwendungen eingesetzt, wie sie z.B. in dem EP-Patent
In einer industriellen Anwendung ist die Kamera oftmals Teil einer Maschine. Aus Gründen der Rentabilität ist es oftmals gewünscht, dass die Maschine schnell läuft. Dies erfordert auch von der Kamera, dass Bilder in hoher Geschwindigkeit vom Bildsensor 12 aufgenommen, in der Bildverarbeitungseinheit 13 schnell verarbeitet und dann schnell übertragen werden. Wie in
Bildsensoren bestehen im Allgemeinen aus einer großen Zahl von Pixeln. Diese können beispielsweise in Form einer eindimensionalen Matrix angeordnet sein, wie in
Der Bildsensor kann monochrom ausgeführt sein, so wie es in
Das Auslesen des Rohbildes aus dem Bildsensor 12 erfolgt typischerweise progressiv.
In
Weiterhin sind Bildsensoren bekannt, die in jedem Taktzyklus eines Auslesevorgangs mehr als einen Pixelwert übermitteln, z.B. der Bildsensor PB-MV13 der Photobit Corporation. Dies ist anhand der
Eine bestimmte Art des Auslesens führt zu einem Datenformat, in dem die Bilddaten des Rohbildes vorliegen. Es ist üblich, Datenformate in andere Datenformate umzuwandeln. Beispielsweise können Bilddaten, die mit „split readout“ ausgelesen wurden, in progressive Daten umgewandelt werden, indem die Bilddaten einer Zeile zwischengespeichert und nachfolgend mit doppelter Frequenz progressiv ausgelesen werden. Auch ist es möglich, Vektorbreiten zu vergrößern oder zu verkleinern, z.B. indem die Taktfrequenz um den entsprechenden Faktor herunter- oder heraufgesetzt wird.A certain type of reading leads to a data format in which the image data of the raw image is available. It is common to convert data formats into other data formats. For example, image data that was read out with “split readout” can be converted into progressive data by buffering the image data of a line and then progressively reading it out at double the frequency. It is also possible to increase or decrease vector widths, for example by Clock frequency is reduced or increased by the corresponding factor.
Wie in
In den genannten Schaltkreisen FPGA, SOC und ISP erfolgt die Berechnung in einer durch Konfiguration oder Chipdesign bereitgestellten speziellen digitalen Hardware. Grundsätzlich ist es auch immer noch möglich, solche Berechnungen in analogen Schaltkreisen vorzunehmen, wenngleich auch diese in den letzten Jahrzehnten kontinuierlich an Bedeutung für die Bildverarbeitung verloren haben.In the FPGA, SOC and ISP circuits mentioned, the calculation takes place in special digital hardware provided by configuration or chip design. In principle, it is still possible to carry out such calculations in analog circuits, although these have steadily become less important for image processing in recent decades.
In digitalen Schaltkreisen ist es vergleichsweise einfach, ressourcensparend und kostengünstig, Additionen, Subtraktionen und Multiplikationen durchzuführen. Beispielsweise können im FPGA Additionen und Subtraktionen mit Hilfe von Logikelementen durchgeführt werden. Für Multiplikationen stehen alternativ auch dedizierte Multiplizierer zur Verfügung. Daher werden diese Operationen hier als hardwarefreundliche Operationen bezeichnet und ihre Verwendung in Hardware wird als vorteilhaft angesehen. Andere Operationen, wie die Division, das Wurzelziehen oder die Berechnung transzendenter Funktionen, wie z.B. Cosinus, Cosinus Hyperbolicus, Exponentialfunktion und Logarithmus, sind dort hingegen in Hardware mit erheblichem Aufwand beziehungsweise Kosten verbunden. Diese Operationen werden hier als hardwareunfreundliche Operationen bezeichnet und ihre Verwendung in Hardware wird als nachteilig angesehen.In digital circuits, it is comparatively easy, resource-saving and cost-effective to carry out additions, subtractions and multiplications. For example, additions and subtractions can be carried out in the FPGA using logic elements. Alternatively, dedicated multipliers are also available for multiplications. Therefore, these operations are referred to here as hardware-friendly operations and their use in hardware is considered beneficial. Other operations, such as division, taking roots or calculating transcendental functions such as cosine, hyperbolic cosine, exponential function and logarithm, require considerable effort or costs in hardware. These operations are referred to herein as hardware-unfriendly operations and their use in hardware is considered disadvantageous.
Wie in
Elektronische Kameras werden in industriellen Anwendungen häufig für Messaufgaben verwendet. Hierbei werden beispielsweise zu prüfende Werkstücke mit einer Kamera aufgenommen und die Helligkeit wird vom Computer pixelweise mit einem Sollwert verglichen. Dabei werden häufig untere und/oder obere Schwellwerte herangezogen, um eine Entscheidung über eine Fehlerhaftigkeit des Werkstückes zu treffen. Daher ist es grundsätzlich wünschenswert, dass gleich helle Teile der Szene 17 im Ergebnisbild gleichermaßen hell erscheinen, denn eine inhomogene Helligkeitsverteilung könnte diese Entscheidungsbildung stören.Electronic cameras are often used for measurement tasks in industrial applications. For example, workpieces to be tested are recorded with a camera and the brightness is compared pixel by pixel by the computer with a target value. Lower and/or upper threshold values are often used to make a decision about whether the workpiece is defective. Therefore, it is fundamentally desirable that equally bright parts of the
Es ist bekannt, dass Objektive grundsätzlich keine gleichermaßen helle Abbildung vornehmen. Sie erzeugen zumeist einen sogenannten Randlichtabfall, der oft auch Randabschattung genannt wird. Manchmal wird dieser Effekt auch verallgemeinert als Vignettierung bezeichnet. Auf Englisch spricht man von „vignetting“ oder „lens roll-off“. Der Randlichtabfall bewirkt, dass vor allem äußere Teile des Bildes gegenüber anderen, vor allem zentralen Teilen zu dunkel erscheinen. Es handelt sich also grundsätzlich um einen Intensitätsfehler. Eine gute Beschreibung und Darstellung dieses Effektes findet sich im in B. Jähne et al. (Hrsg.), „Handbook of Computer Vision and Applications“, Academic Press, 1999.It is known that lenses generally do not produce equally bright images. They usually create a so-called edge light fall-off, which is often also called edge shading. Sometimes this effect is also generally referred to as vignetting. In English we speak of “vignetting” or “lens roll-off”. The edge light falloff causes outer parts of the image in particular to appear too dark compared to other, especially central, parts. So it is basically an intensity error. A good description and presentation of this effect can be found in B. Jähne et al. (Ed.), “Handbook of Computer Vision and Applications”, Academic Press, 1999.
Es ist wünschenswert, diese Intensitätsfehler zu korrigieren, um eine gleichmäßig helle Abbildung zu erzielen. Dabei soll das Ergebnisbild die Intensitätsverteilung auf dem Objekt 18 korrekt wiedergeben, also so, wie sie sich ohne durch das Objektiv 11 erzeugten Intensitätsfehler ergeben würden.It is desirable to correct these intensity errors to achieve a uniformly bright image. The resulting image should correctly reproduce the intensity distribution on the
STAND DER TECHNIKSTATE OF THE ART
Zur Korrektur des Randlichtabfalls gibt es eine beachtliche Menge an Publikationen, z.B. die US- bzw. EP-Patente
Ein anderes grundsätzliches Vorgehen wird beispielsweise in dem US-Patent
Zahlreiche Verfahren zur Korrektur des Randlichtabfalls arbeiten radial und beziehen sich dabei auf einen Mittelpunkt, z.B. die US- bzw. EP-Patente
Der optische Mittelpunkt 72 hingegen beschreibt das Zentrum der vom Objektiv ausgehenden Effekte. Er hat typischerweise einen Versatz zum geometrischen Mittelpunkt 71 und fällt häufig mit der Lage der optischen Achse des Objektives auf dem Bildsensor zusammen. Da der Effekt der Randabschattung oder Vignettierung meist in guter Näherung radialsymmetrisch um den optischen Mittelpunkt 72 auftritt, liefert eine Korrektur, die auf dem optischen Mittelpunkt 72 statt auf dem geometrischen Mittelpunkt 71 beruht, meist bessere Ergebnisse. Dem steht gegenüber, dass die korrekte Bestimmung des optischen Mittelpunktes 72 grundsätzlich mit technischen Schwierigkeiten verbunden ist und teilweise umfangreiche Berechnungen erfordert, wie dies z.B. aus
Es besteht grundsätzlich die Möglichkeit, das gesamte Bild als eine einheitliche Zone 73 zu behandeln, in der die Korrektur in einheitlicher Weise, d.h. insbesondere mit identischen Parametern P, durchgeführt wird. Dies wird in
Alternativ kann das Bild auch wie in
Das mathematische Modell M beruht grundsätzlich auf einer mathematischen Funktion, die vom Radius oder einer Potenz des Radius oder von Koordinaten oder Differenzen von Koordinaten oder einer anderen Funktion von Koordinaten abhängen. Dabei kommen im Stand der Technik verschiedenste Funktionen zum Einsatz:
- In
US 8,472,712 B2 US 8,218,037 B2 US 7,961,973 B2
- In
US 8,472,712 B2 US 8,218,037 B2 US 7,961,973 B2
Lineare Funktionen bilden Polynome ersten Grades. Daraus lässt sich der Gedanke ableiten, die Korrektur zu verbessern, indem stattdessen Polynomfunktionen höheren Grades verwendet werden, die in der Lage sind, die tatsächlich benötigte Funktion besser zu approximieren. Solche Polynomfunktionen werden häufig als Funktion des Radius verwendet, wie z.B. in
Ein weiterer Ansatz verwendet Oberflächenkurven, die auf zweidimensionalen Spline- oder Bezier-Funktionen beruhen, und wird beispielsweise in
Eine weitere Möglichkeit bietet schließlich die Verwendung trigonometrischer Funktionen und daraus abgeleiteter Funktionen, wie z.B. cos4. Dies wird ebenfalls in
Es ist wünschenswert, die Korrektur in einer Bildverarbeitungseinheit, vorzugsweise in einer Kamera, in hoher Geschwindigkeit durchführen zu können. Dabei ist es wünschenswert, für die digitalen Operationen, die in hoher Geschwindigkeit durchgeführt werden, digitale Ressourcen einzusparen, hardwarefreundliche Operationen zu verwenden, deren Anzahl möglichst auf ein Minimum zu reduzieren und auf hardwareunfreundliche Operationen weitest möglich zu verzichten.It is desirable to be able to carry out the correction in an image processing unit, preferably in a camera, at high speed. It is desirable to save digital resources for the digital operations that are carried out at high speed, to use hardware-friendly operations, to reduce their number to a minimum if possible and to avoid hardware-unfriendly operations as much as possible.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Der Erfindung liegt die Aufgabe zugrunde, ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitzustellen, das geeignet ist, ein oder mehrere, bevorzugt möglichst viele, der vorstehend genannten Anforderungen zu erfüllen. Des Weiteren liegt der Erfindung die Aufgabe zugrunde, eine entsprechende Korrektureinrichtung sowie eine Computervorrichtung und ein Computerprogram-Produkt bereitzustellen. Schließlich liegt der Erfindung die Aufgabe zugrunde, eine elektronische Kamera, die die erfindungsgemäße Korrektureinrichtung umfasst, bereitzustellen. The invention is based on the object of providing a correction method for correcting a vignetting effect in values of pixels of an image from an electronic camera, which is suitable for meeting one or more, preferably as many as possible, of the requirements mentioned above. Furthermore, the invention is based on the object of providing a corresponding correction device as well as a computer device and a computer program product. Finally, the invention is based on the object of providing an electronic camera which includes the correction device according to the invention.
Gemäß einem ersten Aspekt der Erfindung wird ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, umfassend:
- - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und
- - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,
- wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,
- wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von einer Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,
- wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit einem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.
- - Determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and
- - correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel,
- wherein the correction function comprises an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2,
- wherein the value of the correction function at the position of the pixel is determined based on a cascading of feedback multiplications carried out by a circuit of at least two cascaded feedback multipliers, such that the values of the correction function at the positions of the pixels are continuously calculated,
- wherein the multiplication of the value of the pixel by the value of the correction function at the position of the pixel is carried out with a multiplier connected downstream of the at least two cascaded feedback multipliers.
Hier wird davon ausgegangen, dass sich typische Vignettierungseffekte gut oder hinreichend gut durch das sogenannte cos4-Gesetz beschreiben lassen. Wie vorstehend erwähnt, handelt es sich bei der Berechnung der Werte der cos4-Funktion jedoch um eine hardwareunfreundliche Operation. Der Erfinder hat nun erkannt, dass sich die cos4-Funktion sehr gut durch eine Exponentialfunktion zu einer Basis, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, z.B. eine Gaußsche Normalverteilung, beschreiben lässt. Eine solche Funktion hat nach der Erkenntnis des Erfinders viele Eigenschaften, die sie für die Verwendung als Korrekturfunktion zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera prädestinieren. Beispielsweise liefert eine Negation ihres Arguments den Reziprokwert, so dass die Funktion mit einer sehr einfachen Operation zur Korrektur der Werte der Pixel entweder mittels eines Dividierens oder aber eines Multiplizierens der Werte der Pixel mit den Werten der Funktion an den Positionen der Pixel umgerechnet werden kann. Damit erlaubt es die Verwendung der beanspruchten Exponentialfunktion als Korrekturfunktion, ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitzustellen, das die vorstehend genannten Anforderungen in hohem Maße erfüllt.It is assumed here that typical vignetting effects can be described well or sufficiently well by the so-called cos 4 law. However, as mentioned above, calculating the values of the cos 4 function is a hardware-unfriendly operation. The inventor has now recognized that the cos 4 function can be described very well by an exponential function to a basis, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, for example a Gaussian normal distribution. According to the inventor's knowledge, such a function has many properties that predestine it for use as a correction function to correct a vignetting effect in pixel values of an image from an electronic camera. For example, a negation of its argument gives the reciprocal value, so that the function can be converted with a very simple operation to correct the values of the pixels either by dividing or multiplying the values of the pixels by the values of the function at the positions of the pixels. The use of the claimed exponential function as a correction function thus makes it possible to provide a correction method for correcting a vignetting effect in values of pixels of an image from an electronic camera that largely meets the above-mentioned requirements.
Der Erfinder hat erkannt, dass sich für eine Korrekturfunktion, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, der Wert der Korrekturfunktion an der Position eines Pixels sehr einfach und auf Basis von hardwarefreundlichen Operationen iterativ oder rekursiv durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels bestimmen lässt. Dies ermöglicht es, die Korrektur auch bei einer großen Anzahl von Pixeln mit hoher Geschwindigkeit, vorzugsweise in einer Kamera, entweder in Hardware oder aber auch in Software durchzuführen.The inventor has recognized that for a correction function that includes an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, the value the correction function The position of a pixel can be determined very easily and based on hardware-friendly operations iteratively or recursively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel. This makes it possible to carry out the correction even with a large number of pixels at high speed, preferably in a camera, either in hardware or in software.
Zudem lässt sich eine Struktur basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen sehr einfach und effizient sowohl in Hardware als aber auch in Software realisieren.In addition, a structure based on a cascading of feedback multiplications can be implemented very easily and efficiently in both hardware and software.
Gemäß einer weiteren vorteilhaften Weiterbildung der Erfindung werden Faktoren der rückgekoppelten Multiplikationen jeweils als Wert der Exponentialfunktion zu der Basis bestimmt, deren Argument eine gewichtete Summe eines oder mehrerer der Koeffizienten des Polynoms, ist.According to a further advantageous development of the invention, factors of the feedback multiplications are each determined as the value of the exponential function to the base, the argument of which is a weighted sum of one or more of the coefficients of the polynomial.
Gemäß einer weiteren vorteilhaften Weiterbildung der Erfindung ist das Bild ein zweidimensionales Bild und die Kaskadierung der rückgekoppelten Multiplikationen umfasst erste rückgekoppelte Multiplikationen in eine erste Richtung, z.B., in Zeilenrichtung, des Bildes und zweite rückgekoppelte Multiplikationen in eine zweite Richtung, z.B., in Spaltenrichtung, des Bildes, wobei ein Ausgabewert der zweiten rückgekoppelten Multiplikationen einen Eingangswert der ersten rückgekoppelten Multiplikationen liefert.According to a further advantageous development of the invention, the image is a two-dimensional image and the cascading of the feedback multiplications includes first feedback multiplications in a first direction, for example in the row direction, of the image and second feedback multiplications in a second direction, for example in the column direction Image, wherein an output value of the second feedback multiplications provides an input value of the first feedback multiplications.
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist das Bestimmen der Werte der Korrekturfunktion an den Positionen der Pixel parallelisiert, dergestalt, dass die Pixel in eine Anzahl von Kanälen eingeteilt sind, die:
- - jeweils separat voneinander verarbeitet werden, oder
- - so verarbeitet werden, dass in einem Zeitschritt das Bestimmen der Werte der Korrekturfunktion an den Positionen von Pixeln mindestens zweier verschie dener Kanäle auf Grundlage eines gemeinsamen bereits bestimmten Wertes der Korrekturfunktion an der Position eines anderen Pixels erfolgt.
- - each processed separately from each other, or
- - be processed in such a way that the values of the correction function at the positions of pixels of at least two different channels are determined in one time step on the basis of a common already determined value of the correction function at the position of another pixel.
Indem man das Bestimmen der Werte der Korrekturfunktion an den Positionen der Pixel parallelisiert kann die Geschwindigkeit der Korrektur weiter erhöht werden. Dabei bietet die Einteilung der Pixel in eine Anzahl von Kanälen, die jeweils separat voneinander verarbeitet werden, den Vorteil einer sehr einfachen Struktur. Allerdings kann dies den Nachteil haben, dass sich dabei Berechnungsfehler, z.B. Rundungsfehler, in verschiedenen Kanälen auf unterschiedliche Weise akkumulieren können, was zu sichtbaren Unterschieden in Pixeln verschiedener Kanäle und so zu unerwünschten sichtbaren Streifen im Ergebnisbild führen kann. Dies kann vermieden werden, indem die in die Anzahl von Kanälen eingeteilten Pixel so verarbeitet werden, dass in einem Zeitschritt das Bestimmen der Werte der Korrekturfunktion an den Positionen von Pixeln mindestens zweier verschiedener Kanäle auf Grundlage eines gemeinsamen bereits bestimmten Wertes der Korrekturfunktion an der Position eines anderen Pixels erfolgt.By parallelizing the determination of the values of the correction function at the positions of the pixels, the speed of the correction can be further increased. The division of the pixels into a number of channels, each of which is processed separately from one another, offers the advantage of a very simple structure. However, this can have the disadvantage that calculation errors, e.g. rounding errors, can accumulate in different ways in different channels, which can lead to visible differences in pixels of different channels and thus to undesirable visible stripes in the resulting image. This can be avoided by processing the pixels divided into the number of channels in such a way that in one time step the values of the correction function at the positions of pixels of at least two different channels are determined based on a common already determined value of the correction function at the position of one another pixel.
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist das Bild ein Farbbild, welches als Bild eines Mosaikfilters vorliegt, wobei der Wert jedes Pixels jeweils einem Farbkanal zugeordnet ist.According to an advantageous development of the invention, the image is a color image which is present as an image of a mosaic filter, with the value of each pixel being assigned to a color channel.
Gemäß einer vorteilhaften Weiterbildung der Erfindung sind die Werte der Pixel des Bildes Farbwerte von zwei oder mehr Farbkanälen und das Korrigieren der Werte der Pixel umfasst:
- - Korrigieren der Werte der Pixel mit einer eigenen Korrekturfunktion für jeden Farbkanal, vorzugsweise dergestalt, dass sich die Korrekturfunktionen für jeweils zwei unterschiedliche Kanäle nur in einem konstanten Offset der Werte der Korrekturfunktion unterscheiden, oder
- - Korrigieren der Werte der Pixel mit einer für alle Farbkanäle gemeinsamen Korrekturfunktion.
- - Correcting the values of the pixels with a separate correction function for each color channel, preferably in such a way that the correction functions for two different channels only differ in a constant offset of the values of the correction function, or
- - Correcting the values of the pixels with a correction function common to all color channels.
Auf diese Weise können auch Farbbilder mit der erfindungsgemäßen Korrektur in geeigneter Weise verarbeitet werden.In this way, color images can also be processed in a suitable manner with the correction according to the invention.
Gemäß einer vorteilhaften Weiterbildung der Erfindung werden nur Werte von Pixeln eines Ausschnitts des Bildes korrigiert und eine Verschiebung des Ursprungs des Ausschnitts relativ zu dem Ursprung des Bildes durch eine entsprechende Verschiebung der Korrekturfunktion wird dergestalt berücksichtigt, dass zumindest ein Teil der Parameter der Korrekturfunktion durch verschobene Parameter der Korrekturfunktion ersetzt werden. Auf diese Weise kann die Korrektur sehr effizient auf einen Ausschnitt des Bildes, z.B. eine „area of interest“ oder „region of interest“, angewandt werden.According to an advantageous development of the invention, only values of pixels of a section of the image are corrected and a shift in the origin of the section relative to the origin of the image by a corresponding shift in the correction function is taken into account in such a way that at least some of the parameters of the correction function are represented by shifted parameters the correction function can be replaced. In this way, the correction can be applied very efficiently to a section of the image, e.g. an “area of interest” or “region of interest”.
Gemäß einer vorteilhaften Weiterbildung der Erfindung sind mehrere Zonen in dem Bild definiert und das Korrigieren der Werte der Pixel für jede Zone jeweils mit für diese Zone eigenen Parametern der Korrekturfunktion. Mit Hilfe einer solchen Zonierung ist es ggf. möglich, eine noch höhere Genauigkeit der Korrektur zu erzielen. Dies ist insbesondere der Fall, wenn der Vignettierungseffekt sich nicht für das gesamte Bild ausreichend genau mit einem einzigen Satz von Parametern der Korrekturfunktion beschreiben lässt.According to an advantageous development of the invention, several zones are defined in the image and the values of the pixels for each zone are corrected with parameters of the correction function specific to this zone. With the help of such zoning it may be possible to achieve even greater accuracy of the correction. This is particularly the case if the vignetting effect does not apply to the entire image with sufficient precision with a single Set of parameters of the correction function can be described.
Gemäß einer vorteilhaften Weiterbildung der Erfindung sind die jeweils eigenen Parameter der Korrekturfunktion für zwei angrenzende Zonen dergestalt, dass der Übergang der Korrekturfunktion zwischen den beiden Zonen stetig, und vorzugsweise stetig differenzierbar, erfolgt. Auf diese Weise können sichtbare Artefakte beim Übergang von einer Zone zur nächsten vermieden werden.According to an advantageous development of the invention, the respective parameters of the correction function for two adjacent zones are such that the transition of the correction function between the two zones is continuous, and preferably continuously differentiable. In this way, visible artifacts can be avoided when transitioning from one zone to the next.
Gemäß noch einer vorteilhaften Weiterbildung der Erfindung beziehen die Zonen sich auf einen Mittelpunkt, vorzugsweise den optischen Mittelpunkt, des Bildes. Dies ist vorteilhaft, da der Mittelpunkt, insbesondere der optische Mittelpunkt, des Bildes in der Regel auch das Zentrum des Vignettierungseffekts darstellt und dieser in vielen Fällen zudem radialsymmetrisch ausgeprägt ist.According to another advantageous development of the invention, the zones relate to a center, preferably the optical center, of the image. This is advantageous because the center, in particular the optical center, of the image usually also represents the center of the vignetting effect and in many cases this is also radially symmetrical.
Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst das Korrekturverfahren ein Schätzen des optischen Mittelpunkts eines Bildes, das vorzugsweise eine homogene Szene zeigt, dergestalt, dass für den Fall, dass das Bild mit einem eindimensionalen Bildsensor erzeugt wurde, das Schätzen der Koordinate des optischen Mittelpunkts in der einen Dimension umfasst:
- - Erzeugen eines eindimensionalen Datenvektors in der einen Dimension aus den Werten der Pixel des Bildes,
- - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor,
und dass für den Fall, dass das Bild mit einem zweidimensionalen Bildsensor erzeugt wurde, das Schätzen einer Koordinate des optischen Mittelpunkts in einer ersten Dimension umfasst:
- - Mitteln der Werte der Pixel des Bilder in der zweiten Dimension zum Erzeugen eines eindimensionalen Datenvektors von gemittelten Werten in der ersten Dimension, und
- - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor.
- - Generating a one-dimensional data vector in one dimension from the values of the pixels of the image,
- - iterative fitting of a one-dimensional balancing parabola to the one-dimensional data vector,
and in the event that the image was generated with a two-dimensional image sensor, estimating a coordinate of the optical center in a first dimension comprises:
- - averaging the values of the pixels of the images in the second dimension to produce a one-dimensional data vector of averaged values in the first dimension, and
- - iterative fitting of a one-dimensional balancing parabola to the one-dimensional data vector.
Dieses Verfahren bietet eine recht einfache aber robuste Möglichkeit den optischen Mittelpunkt des Bildes zu schätzen, wenn dies beispielsweise zur Durchführung einer Zonierung des Bildes erforderlich ist. Sowohl in dem Fall, dass das Bild mit einem eindimensionalen Bildsensor aufgenommen wurde, als auch in dem Fall, dass das Bild mit einem zweidimensionalen Bildsensor aufgenommen wurde, kann das Erzeugen des eindimensionalen Datenvektor auch noch ein Mitteln der Werte der Pixel zeitlich nacheinander aufgenommener Bilder umfassen.This method offers a fairly simple but robust way to estimate the optical center of the image if this is required, for example, to perform zoning of the image. Both in the case that the image was recorded with a one-dimensional image sensor and in the case that the image was recorded with a two-dimensional image sensor, generating the one-dimensional data vector can also include averaging the values of the pixels of images recorded one after the other in time .
Gemäß noch einer vorteilhaften Weiterbildung der Erfindung erfolgt das iterative Fitten in jeder Iteration in einem Datenbereich des eindimensionalen Datenvektors um eine aktuell geschätzte Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension herum erfolgt, wobei der Datenbereich vorzugsweise symmetrisch zu der aktuell geschätzten Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension ist und/oder das iterative Fitten mit der Koordinate des geometrischen Mittelpunkts des Bildes in der einen bzw. ersten Dimension als die aktuell geschätzte Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension initialisiert wird. Hierbei konvergiert die jeweils aktualisierte geschätzte Koordinate in der Regel sehr schnell gegen den tatsächlichen optischen Mittelpunkt, so dass eine gute Schätzung zumeist schon mit wenigen Iterationen erhalten werden kann.According to another advantageous development of the invention, the iterative fitting takes place in each iteration in a data area of the one-dimensional data vector around a currently estimated coordinate of the optical center in the one or first dimension, the data area preferably being symmetrical to the currently estimated coordinate of the optical Center point in the one or first dimension and / or the iterative fitting is initialized with the coordinate of the geometric center of the image in the one or first dimension as the currently estimated coordinate of the optical center in the one or first dimension. The updated estimated coordinate usually converges very quickly towards the actual optical center, so that a good estimate can usually be obtained with just a few iterations.
Gemäß einer weiteren vorteilhaften Weiterbildung umfasst das Korrekturverfahren ein Bestimmen von Parametern der Korrekturfunktion basierend auf einem Referenzbild, das vorzugsweise eine homogene Szene zeigt, wobei das Bestimmen der Parameter der Korrekturfunktion ein Normieren der Korrekturfunktion dergestalt umfasst, dass die Korrekturfunktion in ihrem Scheitelpunkt einen vorbestimmten Wert, vorzugsweise den Wert 1, aufweist. Zum einen braucht die Bestimmung der Parameter der Korrekturfunktion damit im Idealfall nur einmal zur Einrichtungszeit, z.B. während der Produktion einer Kamera oder während der Inbetriebnahme einer Maschine, in der eine Kamera zum Einsatz kommt, durchgeführt werden. Zudem kann durch eine geeignete Wahl des Referenzbildes, beispielsweise so, dass das Bild eine homogene Szene zeigt, die Auswertung des Bildes und damit die Bestimmung der Parameter der Korrekturfunktion auf eine vergleichsweise einfache Weise erfolgen. Darüber hinaus kann durch die Normierung gewährleistet werden, dass durch die Korrektur die Helligkeit im Zentrum des Vignettierungseffekts nicht verändert wird.According to a further advantageous development, the correction method includes determining parameters of the correction function based on a reference image, which preferably shows a homogeneous scene, wherein determining the parameters of the correction function includes normalizing the correction function such that the correction function has a predetermined value at its apex, preferably has the
Gemäß noch einer weiteren vorteilhaften Weiterbildung der Erfindung erfolgt das Normieren so, dass der Koeffizient nullter Ordnung des Polynoms durch einen normierenden Koeffizienten nullter Ordnung ersetzt wird, der sich aus den Koeffizienten höherer Ordnung des Polynoms berechnet. Damit kann die Normierung auf einfache Weise erfolgen, ohne dass hierfür die Bestimmung des optischen Mittelpunkts erforderlich wäre.According to yet another advantageous development of the invention, the normalization is carried out in such a way that the zero-order coefficient of the polynomial is replaced by a zero-order normalizing coefficient, which is calculated from the higher-order coefficients of the polynomial. This means that normalization can be carried out in a simple manner without the need to determine the optical center.
Gemäß einem weiteren Aspekt der Erfindung wird eine Korrektureinrichtung zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, wobei die Korrektureinrichtung eine Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken und einen den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator umfasst und ausgebildet ist zum:
- - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und
- - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,
- wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,
- wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von der Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,
- wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.
- - Determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and
- - correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel,
- wherein the correction function comprises an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2,
- wherein the value of the correction function at the position of the pixel is determined based on a cascading of feedback multiplications carried out by the circuit of at least two cascaded feedback multipliers, such that the values of the correction function at the positions of the pixels are continuously calculated,
- wherein the multiplication of the value of the pixel by the value of the correction function at the position of the pixel is carried out with the multiplier connected downstream of at least two cascaded feedback multipliers.
Gemäß einem weiteren Aspekt der Erfindung wird eine elektronische Kamera (10) bereitgestellt, wobei die elektronische Kamera umfasst:
- - einen Bildsensor mit Pixeln zur Erzeugung eines Bildes; und
- - die
Korrektureinrichtung nach Anspruch 15 zur Korrektur eines Vignettierungseffekts in Werten von Pixeln des Bildes.
- - an image sensor with pixels to generate an image; and
- - The correction device according to claim 15 for correcting a vignetting effect in values of pixels of the image.
Gemäß einem weiteren Aspekt der Erfindung wird eine Computervorrichtung bereitgestellt, wobei die Computervorrichtung eine Recheneinheit umfasst, die zur Durchführung des Korrekturverfahrens nach einem der Ansprüche 1 bis 14 ausgestaltet ist.According to a further aspect of the invention, a computer device is provided, wherein the computer device comprises a computing unit which is designed to carry out the correction method according to one of
Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogramm-Produkt bereitgestellt, wobei das Computerprogramm-Produkt Codemitteln umfasst zum Veranlassen einer Computervorrichtung zum Ausführen des Korrekturverfahrens nach einem der Ansprüche 1 bis 14, wenn das Computerprogramm-Produkt auf der Computervorrichtung ausgeführt wird.According to a further aspect of the invention, a computer program product is provided, wherein the computer program product comprises code means for causing a computing device to execute the correction method according to any one of
Es versteht sich, dass das Korrekturverfahren nach Anspruch 1, die Korrektureinrichtung nach Anspruch 15, die elektronische Kamera nach Anspruch 16, die Computervorrichtung nach Anspruch 17 und das Computerprogramm-Produkt nach Anspruch 18 ähnliche und/oder identische bevorzugte Ausführungsformen, insbesondere wie in den abhängigen Ansprüchen definiert, haben.It is understood that the correction method according to
Es versteht sich, dass eine bevorzugte Ausführungsform der Erfindung auch jede Kombination der abhängigen Ansprüche mit dem entsprechenden unabhängigen Anspruch sein kann.It is understood that a preferred embodiment of the invention can also be any combination of the dependent claims with the corresponding independent claim.
KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Bevorzugte Ausführungsformen der Erfindung werden im Folgenden unter Bezugnahme auf die beigefügten Figuren näher beschrieben, wobei
-
1 schematisch und exemplarisch die Anwendung und den Aufbau einer elektronischen Kamera zeigt, und -
2 schematisch und exemplarisch einen Bildsensor zeigt, der z.B. als (a) eindimensionale Matrix, (b) zweidimensionale Matrix oder (c) zweidimensionale Matrix mit einer Anordnung aus Farbfiltern ausgebildet sein kann, -
3 schematisch und exemplarisch ein progressives Auslesen zeigt, -
4 schematisch und exemplarisch ein (a) blockweise geteiltes und (b) vektorisiertes Auslesen eines Bildsensors zeigt, -
5 schematisch und exemplarisch den grundsätzlichen Ablauf der Korrektur zeigt, -
6 schematisch und exemplarisch die Durchführung einer Korrektur mit Division zeigt, -
7 schematisch und exemplarisch die Durchführung der Korrektur durch Multiplikation eines Models, das mit dem reziproken Referenzbild ermittelt wurde, zeigt, -
8 schematisch und exemplarisch (a) den geometrischen und optischen Mittelpunkt eines Bildes, (b) eine Aufteilung eines Bildes in radial Zonen und (c) eine Aufteilung des Bildes in kartesische Zonen zeigt, -
9 schematisch und exemplarisch den Fit einer (a-c) cos4-Funktion und (d-f) cos-4-Funktion durch (a,d) eine Parabel, (b,e) eine cash-Funktion und (c,f) eine gaußverteilungsförmige bzw. eine reziproke gaußverteilungsförmige Funktion zeigt, -
10 schematisch und exemplarisch den Ersatz der hardwareunfreundlichen Division durch eine Transformation zeigt, -
11 schematisch und exemplarisch Polynomexponentialfunktionen in (a) x-Richtung, (b) in y-Richtung und (c) eine zweidimensionale Polynomexponentialfunktion zeigt, -
12 schematisch und exemplarisch Beispiele der Auswahl von Pixeln für die Bestimmung der Parameter zeigt, -
13 schematisch und exemplarisch ein rückgekoppeltes Multiplizierwerk in zwei alternativen Ausführungsformen zeigt, -
14 schematisch und exemplarisch eine Kaskadierung zweier rückgekoppelter Multiplizierwerke mit nachfolgender Korrektur eines Pixelwertes zeigt, -
15 schematisch und exemplarisch eine Kaskadierung von n rückgekoppelten Multiplizierwerken mit nachgeschaltetem Multiplikator zur Korrektur von Pixelwerten zeigt, -
16 schematisch und exemplarisch zeigt, wie zwei kaskadierte rückgekoppelte Multiplizierwerke zu einem zweidimensional kaskadierten rückgekoppelten Multiplizierwerk verbunden werden, -
17 schematisch und exemplarisch zeigt, wie eine Mehrzahl kaskadierter rückgekoppelter Multiplizierwerke zu einem zweidimensional kaskadierten rückgekoppelten Multiplizierwerk zur Korrektur mit einer zweidimensionalen Polynomexponentialfunktion des Grades n × m verbunden werden, -
18 schematisch und exemplarisch zeigt, dass verschiedene Farbkanäle unterschiedliche Helligkeiten aufweisen können, -
19 schematisch und exemplarisch zeigt, dass logarithmierte Farbwerte verschiedener Farbkanäle einen unterschiedlichen Offset aufweisen und (a) getrennt oder (b) gemeinsam beschrieben werden können. -
20 schematisch und exemplarisch einen Bildausschnitt zeigt, -
21 schematisch und exemplarisch eine serielle Korrektur von Pixeln durch ein kaskadiertes rückgekoppeltes Multiplizierwerk zeigt, -
22 schematisch und exemplarisch eine Teilparallelisierung der Berechnung durch mehrere kaskadierte rückgekoppelte Multiplizierwerke zeigt, -
23 schematisch und exemplarisch eine Stabilisierung der teilparallelisierten Berechnung durch einen gemeinsamen Rückbezug von Korrekturwerten zeigt, -
24 schematisch und exemplarisch verschiedene Formen der Zonierung zeigt, -
25 schematisch und exemplarisch einen Überblick über einen Algorithmus zum Finden des optischen Mittelpunkts zeigt, -
26 schematisch und exemplarisch die Wirkung einer zeilen- oder spaltenweisen Mittelung zeigt, -
27 schematisch und exemplarisch die erste Iteration der Bestimmung der Koordinate des optischen Mittelpunkts zeigt, und -
28 schematisch und exemplarisch die zweite Iteration der Bestimmung der Koordinate des optischen Mittelpunkts zeigt.
-
1 shows schematically and as an example the application and structure of an electronic camera, and -
2 shows schematically and by way of example an image sensor which can be designed, for example, as a (a) one-dimensional matrix, (b) two-dimensional matrix or (c) two-dimensional matrix with an arrangement of color filters, -
3 shows schematically and exemplarily a progressive readout, -
4 shows schematically and as an example a (a) block-by-block and (b) vectorized readout of an image sensor, -
5 shows schematically and as an example the basic process of correction, -
6 shows schematically and as an example how to carry out a correction with division, -
7 shows schematically and as an example how the correction is carried out by multiplying a model that was determined with the reciprocal reference image, -
8th shows schematically and as an example (a) the geometric and optical center of an image, (b) a division of an image into radial zones and (c) a division of the image into Cartesian zones, -
9 schematically and exemplarily the fit of an (ac) cos 4 function and (df) cos -4 function tion by (a,d) a parabola, (b,e) a cash function and (c,f) a Gaussian distribution or a reciprocal Gaussian distribution function, -
10 shows schematically and as an example the replacement of the hardware-unfriendly division by a transformation, -
11 shows schematically and exemplarily polynomial exponential functions in (a) x-direction, (b) in y-direction and (c) a two-dimensional polynomial exponential function, -
12 shows schematically and exemplary examples of the selection of pixels for determining the parameters, -
13 shows schematically and as an example a feedback multiplier in two alternative embodiments, -
14 shows schematically and as an example a cascading of two feedback multipliers with subsequent correction of a pixel value, -
15 shows schematically and as an example a cascading of n feedback multipliers with a downstream multiplier for correcting pixel values, -
16 shows schematically and as an example how two cascaded feedback multipliers are connected to form a two-dimensional cascaded feedback multiplier, -
17 shows schematically and as an example how a plurality of cascaded feedback multipliers are connected to a two-dimensional cascaded feedback multiplier for correction with a two-dimensional polynomial exponential function of degree n × m, -
18 shows schematically and as an example that different color channels can have different brightnesses, -
19 shows schematically and as an example that logarithmic color values of different color channels have a different offset and can be described (a) separately or (b) together. -
20 shows a section of the image schematically and as an example, -
21 shows schematically and as an example a serial correction of pixels by a cascaded feedback multiplier, -
22 shows schematically and as an example a partial parallelization of the calculation by several cascaded feedback multipliers, -
23 shows schematically and as an example a stabilization of the partially parallelized calculation by a common reference of correction values, -
24 shows schematically and exemplary different forms of zoning, -
25 shows schematically and as an example an overview of an algorithm for finding the optical center, -
26 shows schematically and as an example the effect of row or column averaging, -
27 shows schematically and as an example the first iteration of determining the coordinate of the optical center, and -
28 shows schematically and as an example the second iteration of determining the coordinate of the optical center.
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELEDETAILED DESCRIPTION OF THE EMBODIMENTS
In den Figuren sind gleiche bzw. sich entsprechende Elemente oder Einheiten jeweils mit gleichen bzw. sich entsprechenden Bezugszeichen versehen. Wenn ein Element oder eine Einheit bereits im Zusammenhang mit einer Figur beschrieben worden ist, wird ggf. im Zusammenhang mit einer anderen Figur auf eine ausführliche Darstellung verzichtet. Die innerhalb der Beschreibung der Figuren ggf. verwendeten Begriffe „links“, „rechts“, „oben“, „unten“ usw. beziehen sich auf die entsprechende Figur in einer Ausrichtung mit normal lesbarer Figurenbezeichnung und Bezugszeichen.In the figures, identical or corresponding elements or units are each provided with identical or corresponding reference numerals. If an element or unit has already been described in connection with a figure, a detailed description may be omitted in connection with another figure. The terms “left”, “right”, “top”, “bottom”, etc., which may be used within the description of the figures, refer to the corresponding figure in an orientation with normally readable figure names and reference symbols.
Wie beschrieben kann gemäß der Erfindung ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt werden, das geeignet ist, ein oder mehrere, bevorzugt möglichst viele, Anforderungen hinsichtlich hoher Geschwindigkeit, Einsparung von Ressourcen, Verwendung hardwarefreundlicher Operationen usw. zu erfüllen. Dies geschieht, indem das Korrigieren der Werte der Pixel basierend auf einer Korrekturfunktion erfolgt, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, oder die mathematisch in eine solche Funktion umformbar ist, wobei das Korrigieren des Wertes eines Pixels ein Dividieren oder vorzugsweise ein Multiplizieren des Wertes des Pixels durch den bzw. mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst.As described, according to the invention, a correction method for correcting a vignetting effect in values of pixels of an image of an electronic camera can be provided, which is suitable for meeting one or more, preferably as many, requirements as to high speed, saving resources, using hardware-friendly operations, etc. to fulfill. This is done by correcting the values of the pixels based on a correction function comprising an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, or which is mathematically convertible into such a function, wherein correcting the value of a pixel comprises dividing or preferably multiplying the value of the pixel by or with the value of the correction function at the position of the pixel.
Wie dies in verschiedenen Ausführungsformen der Erfindung erfolgen kann, wird im Folgenden in den Ziffern 1 bis 11 beispielhaft erläutert. In diesem Zusammenhang sei angemerkt, dass die in diesen Ziffern beschriebenen Erfindungsgedanken vom Fachmann in geeigneter Weise kombiniert werden können und diese Kombinationen jeweils Ausführungsformen der Erfindung darstellen:How this can be done in various embodiments of the invention is explained below by way of example in
1. Korrekturfunktion1. Correction function
Es wird davon ausgegangen, dass der durch das Objektiv erzeugte Randlichtabfall durch das sogenannte cos4-Gesetz gut oder hinreichend gut beschrieben wird. Auf dieses Gesetz wird auch in
Eine cos4-Funktion lässt sich durch eine lineare Funktion oder durch eine Polynomfunktion nur schwer beschreiben. Dies wird anhand von
In
In
Der Erfindung liegt die Erkenntnis des Erfinders zugrunde, dass die cos4-förmige Funktion in ihrer Form sehr einer Gaußverteilung ähnelt, die auch als Gaußsche Normalverteilung bezeichnet wird:
Diese Gleichung der Gaußverteilung besteht aus einem Normalisierungsfaktor
So entsteht die Idee, die cos4-Funktion der Vignettierung durch eine Polynomexponentialfunktion zu beschreiben. In
Da, wie vorstehend erläutert, grundsätzlich auch die Möglichkeit besteht, zur Korrektur eine reziproke Funktion zu verwenden, die eine reziproke Helligkeitsverteilung beschreibt, werden im folgenden Approximationen einer reziproken cos4-förmigen Funktion dargestellt, also einer 1/cos4- bzw. cos-4-förmigen Funktion 104. Diese Funktion ist ebenfalls proportional auf den in der Bildverarbeitung üblichen Wertebereich von 0 bis 255 skaliert. Sie ist wiederum über einer freien Variable z dargestellt, deren Darstellungsbereich genau so gewählt ist wie in
Dies zeigt eine gute Eignung der Polynomexponentialfunktion einerseits dafür, als mathematisches Modell M eine Vignettierung zu beschreiben, wobei die Koeffizienten c Parameter P im Sinne der vorstehenden Beschreibung darstellen. Eine Korrektur K kann dann mithilfe einer Division erfolgen. Andererseits ist die Polynomexponentialfunktion auch geeignet, als reziprokes Modell M die reziproke Vignettierung zu beschreiben, so dass die Korrektur K als Multiplikation erfolgen kann.This shows, on the one hand, that the polynomial exponential function is well suited to describing vignetting as a mathematical model M, where the coefficients c represent parameters P in the sense of the above description. A correction K can then be made using division. On the other hand, the polynomial exponential function is also suitable for describing the reciprocal vignetting as a reciprocal model M, so that the correction K can take place as a multiplication.
Weiterhin besitzt die Exponentialfunktion die günstige Eigenschaft, dass eine Negation des Arguments den Reziprokwert liefert:
Hierauf beruht die Idee des Erfinders, die beschriebenen hardwareunfreundlichen Divisionen durch hardwarefreundliche Multiplikationen zu ersetzen. Das darauf beruhende Verfahren ist dargestellt in
Die Negation kann auch durch Anwendung eines Negationsoperators N auf die in einem Spaltenvektor zusammengefassten Koeffizienten der Polynomexponentialfunktion durchgeführt werden. Der Negationsoperator lässt sich in Matrixschreibweise formulieren und besteht jeweils aus einer mit -1 multiplizierten Einheitsmatrix. Für den in Gleichung (1.2) genannten Fall lautet diese Matrix folgendermaßen:
Die genannte eindimensionale Polynomexponentialfunktion zweiten Grades gemäß Gleichung (1.2) kann nun unmittelbar dazu eingesetzt werden, auf die genannte Weise Bilder von Zeilensensoren zu korrigieren.The one-dimensional second degree polynomial exponential function mentioned according to equation (1.2) can now be used directly to correct images from line sensors in the manner mentioned.
Der Großteil der elektronischen Kameras weist jedoch zweidimensionale Matrixsensoren auf, bei denen die Vignettierung zweidimensional auftritt. Daher wird der Gedanke dahingehend weiterentwickelt, die Vignettierung vorzugsweise durch eine zweidimensionale Polynomexponentialfunktion zu beschreiben, die sich als Funktion der beiden Koordinaten x und y darstellen lässt. Dabei wird davon ausgegangen, dass es sich bei der Vignettierung um einen rein multiplikativen Ansatz handelt, so dass sich daraus die Idee ergibt, die zweidimensionale Polynomexponentialfunktion gemäß
Hierbei sind cx.0, cx.1 und cx.2 die Koeffizienten für die horizontale Polynomexponentialfunktion und cy.0, cy.1 und cy.2 die Koeffizienten für die vertikale Polynomexponentialfunktion. Durch Anwendung der Rechenregeln für die Exponentialfunktion können beide Exponentialfunktionen in eine Exponentialfunktion vereint werden, indem die Argumente addiert werden:
Hierbei tritt im Argument die Summe von cx.0 und cy.0 auf. Beide Koeffizienten können durch Summierung zu einem einzigen Koeffizienten c0.0 = cx.0 + cy.0 zusammengefasst werden. Dies zeigt beispielhaft, wie sich durch mathematische Umformungen zahlreiche äquivalente Darstellungen der Polynomexponentialfunktion erzeugen lassen.The sum of c x.0 and c y.0 appears in the argument. Both coefficients can be summed to form a single coefficient c 0.0 = c x.0 + c y.0 . This exemplifies how mathematical transformations can be used to generate numerous equivalent representations of the polynomial exponential function.
Die sich ergebende zweidimensionale Polynomexponentialfunktion gemäß
Durch mathematischen Beweis lässt sich überdies zeigen, dass die Polynomexponentialfunktion die einzige Funktionenklasse ist, bei der sich durch Multiplikation einer horizontalen und einer gleichen vertikalen Funktion vorteilhafterweise eine radialsymmetrische Funktion erzeugen lässt.It can also be shown by mathematical proof that the polynomial exponential function is the only class of functions in which a radially symmetric function can advantageously be generated by multiplying a horizontal and an equal vertical function.
Die Korrektur des Randlichtabfalls oder der Vignettierung mit einer Polynomexponentialfunktion kann grundsätzlich erfolgen, indem unkorrigierte Pixelwerte p mit dem Funktionswert der Polynomexponentialfunktion g multipliziert oder durch den Funktionswert der Polynomexponentialfunktion g dividiert werden. Wie bereits erläutert, unterscheiden sich beide Fälle lediglich in der Wahl des Vorzeichens der Koeffizienten und sind mathematisch betrachtet stets beide möglich. Wegen der höheren Hardwarefreundlichkeit ist die Multiplikation jedoch in der Regel zu bevorzugen.The correction of edge light fall-off or vignetting with a polynomial exponential function can in principle be done by multiplying uncorrected pixel values p by the function value of the polynomial exponential function g or dividing by the function value of the polynomial exponential function g. As already explained, both cases only differ in the choice of sign of the coefficients and, from a mathematical point of view, both are always possible. However, due to its greater hardware friendliness, multiplication is usually preferable.
Allgemein kann eine eindimensionale Polynomexponentialfunktion n-ten Grades g durch eine Exponentialfunktion beschrieben werden, die auf ein eindimensionales Polynom n-ten Grades angewandt wird:
Die Verwendung von Termen und Koeffizienten höherer Ordnung hat den Vorteil, dass sich die Genauigkeit weiter erhöhen lässt. Allerdings erhöht sich dadurch ggf. auch der Berechnungsaufwand. Daraus lässt sich weiterhin auch der Gedanke entwickeln, dass sich im zweidimensionalen Fall die Genauigkeit weiter erhöhen lässt, indem eine Polynomexponentialfunktion g mit dem Grad m × n verwendet wird. Hierbei bezeichnet n den horizontalen Grad der zweidimensionalen Polynomexponentialfunktion und m den vertikalen Grad. Dann kann g beispielsweise folgendermaßen berechnet werden:
Da das zugrundeliegende Vignettierungsproblem zumeist radialsymmetrisch ist und somit keine Vorzugsrichtung aufweist, bietet es sich an, den horizontalen Grad n und den vertikalen Grad m gleich zu wählen. Dadurch wird keiner dieser beiden Richtungen bei der Korrektur bevorzugt behandelt.Since the underlying vignetting problem is usually radially symmetrical and therefore has no preferred direction, it makes sense to choose the same horizontal degree n and vertical degree m. As a result, neither of these two directions is given preferential treatment in the correction.
Selbstverständlich lassen sich auch hier zahlreiche äquivalente Darstellungsformen finden, z.B. durch eine Veränderung der Summierungsreihenfolge. Weiterhin ist die Lösung hier als Exponentialfunktion angegeben, also als eine Potenzfunktion mit der Eulerschen Zahl e als Basis. Es lässt sich auch nahezu jede beliebige andere Zahl als Basis verwenden, z.B. die besonders oft für solche Zwecke verwendeten Zahlen 2 oder 10. Die entsprechende Umrechnung folgt der folgenden, bekannten Formel. Dadurch erfordert ein entsprechender Wechsel der Basis lediglich eine entsprechende Anpassung der Koeffizienten:
In dieser Gleichung bezeichnen abweichend vom Rest der Beschreibung a und b zwei unterschiedliche Basen einer jeweiligen Exponentialfunktion und x ist eine beliebige freie Variable.In this equation, unlike the rest of the description, a and b denote two different bases of a respective exponential function and x is any free variable.
2. Bestimmung der Parameter2. Determination of parameters
Nachfolgend werden erfindungsgemäße Arten der Bestimmung der Koeffizienten der Polynomexponentialfunktion g als Parameter P für die Korrektur beispielhaft beschrieben.Types of determining the coefficients of the polynomial exponential function g as parameters P for the correction according to the invention are described below by way of example.
Zunächst werden Pixelwerte pi ausgewählt. Eine solche Auswahl kann auf verschiedenerlei Weise und unter Würdigung der Gegebenheiten hinsichtlich der Ausprägung der Vignettierung und der zur Verfügung stehenden Speicher- und Rechenressourcen getroffen werden. Einige Beispiele sind in
Anschließend können die Parameter auf Basis der Pixelwerte pi ermittelt werden. Dies kann erfindungsgemäß z.B. als Fit durch eine Anwendung eines Fitting-Algorithmus auf die Eingangsdaten vorgenommen werden. Als Eingangsdaten können die Pixelwerte des Referenzbildes I0 dienen oder aber auch die reziproken Pixelwerte des Referenzbildes I0. Dabei wird ein Fehlermaß zwischen den Eingangsdaten und der anzufittenden Funktion minimiert. Ein Beispiel für solch einen Fitting-Algorithmus ist die sogenannte „Levenberg-Marquardt ordinary least-squares method“.The parameters can then be determined based on the pixel values p i . According to the invention, this can be done, for example, as a fit by applying a fitting algorithm to the input data. The pixel values of the reference image I 0 or the reciprocal pixel values of the reference image I 0 can serve as input data. This minimizes the amount of error between the input data and the function to be fitted. An example of such a fitting algorithm is the so-called “Levenberg-Marquardt ordinary least-squares method”.
Eine bevorzugte Alternative bei der Bestimmung der Parameter besteht darin, auf eine Division 60 (vgl.
Dies lässt sich beispielsweise dadurch bewerkstelligen, dass die Eingangsdaten, welche aus logarithmierten Werten von Pixeln pi mit Koordinaten xi und yi bestehen, zu einem Zielvektor d zusammengefasst werden. In der nachstehenden Formel wird beispielhaft der natürliche Logarithmus zur Basis e verwendet:
Weiterhin können die Parameter in einer beispielhaften Reihenfolge zu einem Parametervektor c zusammengefasst werden. Dabei umfasst c0.0 wie beschrieben sowohl den x-Offset cx.0 als auch den y-Offset cy.0:
Schließlich kann eine Matrix gebildet werden, die spaltenweise die verschiedenen, jeweils zu den Koeffizienten gehörenden Potenzen der Koordinaten xi und yi enthält:
Dann lässt sich unter Verwendung eines zu minimierenden quadratischen Fehlers das überbestimmte Optimierungsproblem folgendermaßen schreiben:
Eine einfache, bekannte Möglichkeit, dieses Problem zu lösen, besteht in der Anwendung der Pseudoinversen nach Moore-Penrose, die auch Moore-Penrose Inverse genannt wird:
So können die Koeffizienten der Polynomexponentialfunktion auf einfache Weise und mit geringem Aufwand berechnet werden. Für den Fall, dass gezielt nach Koeffizienten für eine radialsymmetrische Korrektur gesucht wird, kann eine zusätzliche Nebenbedingung eingeführt werden, dass z.B. cx.2 = cy.2 ist. Die Bestimmung der Parameter kann dann unter Verwendung der Methode des kleinsten quadratischen Fehlers mit Nebenbedingung gesucht werden.In this way, the coefficients of the polynomial exponential function can be calculated easily and with little effort. In the event that a specific search is being made for coefficients for a radially symmetric correction, an additional secondary condition can be introduced, for example c x.2 = c y.2 . The determination of the parameters can then be sought using the least square error method with constraints.
Eine weitere Alternative besteht darin, die beiden gleichzusetzenden Parameter zunächst unabhängig voneinander zu ermitteln und sie anschließend beide ihrem gemeinsamen Mittelwert gleichzusetzen.Another alternative is to first determine the two parameters to be equated independently of each other and then equate them both to their common mean.
Schließlich ist es auch möglich, beide Parameter cx.2 und cy.2 durch einen Parameter c2 zu ersetzen und die zweidimensionale Polynomexponentialfunktion zweiter Ordnung zu schreiben als:
Dementsprechend kann dann der Parametervektor c aus den Parametern c0, cx.1, cy.1 und c2 aufgebaut werden, wobei dann die c2 zugeordnete Spalte von M jeweils die Werte
Diese Methode der Bestimmung der Parameter bietet den Vorteil, dass es möglich ist, auf einfache Weise die Parameter P zu ermitteln, ohne dass dafür eine schwierige Bestimmung eines optischen Mittelpunktes erforderlich wäre.This method of determining the parameters offers the advantage that it is possible to easily determine the parameters P without this would require a difficult determination of an optical center.
Weiterhin lässt sich diese Methode auch auf leichte Weise auf die Bestimmung der Parameter von Polynomexponentialfunktionen höherer Ordnung erweitern, indem die entsprechenden Koeffizienten in den Parametervektor c aufgenommen und die Matrix M um die entsprechenden Spalten der den Parametern zugehörigen Potenzen bzw. Potenzprodukten der Koordinatenwerte erweitert wird.Furthermore, this method can also be easily extended to the determination of the parameters of higher-order polynomial exponential functions by including the corresponding coefficients in the parameter vector c and expanding the matrix M to include the corresponding columns of the powers or power products of the coordinate values associated with the parameters.
3. Normierung3. Normalization
Es ist vorteilhaft, wenn durch eine Korrektur die Helligkeit im optischen Mittelpunkt konstant bleibt. Da bisher auf eine Bestimmung eines optischen Mittelpunktes im Zuge einer Vereinfachung bewusst verzichtet wurde, stellt sich nun die Frage, wie eine solche Normierung ohne eine Bestimmung eines optischen Mittelpunktes vorgenommen werden kann.It is advantageous if the brightness at the optical center remains constant through a correction. Since previously the determination of an optical center point was deliberately avoided in the course of simplification, the question now arises as to how such a standardization can be carried out without determining an optical center point.
Eine erfindungsgemäße Möglichkeit einer solchen Normierung besteht darin, für alle Bildpunkte den Wert der Funktion des mathematischen Modells zu bestimmen. Anhand eines geeigneten Extremwerts, also des Maximums oder des Minimums, kann nachfolgend die Funktion durch diesen Wert geteilt oder mit seiner Inversen oder mit einer durch diesen Wert geteilten Zahl multipliziert werden. Nachteilig an diesem Vorgehen ist, dass es einen relativ hohen Rechenaufwand benötigt.One possibility of such normalization according to the invention is to determine the value of the function of the mathematical model for all pixels. Using a suitable extreme value, i.e. the maximum or the minimum, the function can subsequently be divided by this value or multiplied by its inverse or by a number divided by this value. The disadvantage of this approach is that it requires a relatively high amount of computing effort.
Um einen einfacheren Weg der Normierung zu beschreiten, wird zunächst die Anwendung der Polynomexponentialfunktion betrachtet. Da mit dieser Funktion multipliziert oder durch sie dividiert wird, sollte sie an der gewünschten Stelle konstanter Helligkeit bevorzugt den diesbezüglich neutralen Wert 1 annehmen. Dazu wird weiterhin ihre Definition gemäß Gleichung (1.2) betrachtet. Die Exponentialfunktion nimmt genau dann den Wert 1 an, wenn ihr Argument bestehend aus einem Polynom zweiten Grades den Wert 0 annimmt. Die Idee besteht nun darin, die Wahl des Parameters c0 so zu treffen, dass das Argument der Exponentialfunktion genau im Extremwert der Funktion g gleich 0 wird. Dazu wird in der Herleitung g differenziert, gleich 0 gesetzt, nach einem Ort x aufgelöst, dessen Wert wiederum für x in das Argument der Funktion g eingesetzt, dieses ebenfalls gleich 0 gesetzt und nach c0 aufgelöst. Damit ergibt sich der folgende normierende Wert ĉ0 für c0:
Die erläuterten Rechenschritte der Herleitung dienen lediglich der Nachvollziehbarkeit des Zustandekommens der Gleichung (3.1). Zur Laufzeit müssen sie nicht jeweils nachvollzogen werden. In der Polynomexponentialfunktion ersetzt dann der normierende Wert ĉ0 den vorherigen Wert c0. Damit ist die Polynomexponentialfunktion normiert.The calculation steps explained in the derivation only serve to make it easier to understand how equation (3.1) came about. They do not have to be reproduced at runtime. In the polynomial exponential function, the normalizing value ĉ 0 then replaces the previous value c 0 . This means that the polynomial exponential function is normalized.
Für den zweidimensionalen Fall kann man grundsätzlich genauso vorgehen. Dort erfolgt statt der Differenzierung eine Gradientenbildung nach einem Vektor aus den Werten x und y, die nach Nullsetzung für diesen Vektor einen zweidimensionalen Koordinatenwert liefert. Genau wie zuvor werden die x bzw. y entsprechenden Elemente dieses Wertes für x bzw. y in das Argument der Funktion g eingesetzt, dieses wird wiederum gleich 0 gesetzt und nach c0.0 aufgelöst. Alternativ können auch die Zeilen der hier genannten Vektorgleichung einzeln berechnet und anschließend eingesetzt werden. Es ergibt sich der folgende normierende Wert ĉ0.0 für c0.0:
Dieser beispielhafte Ausdruck lässt sich leicht in verschiedene äquivalente Darstellungsformen umwandeln. Beispielhaft sei hier die folgende Darstellung für den Fall der Anwendbarkeit von cx.2 = c2 = cy.2 genannt:
Die Gleichungen (3.1) bis (3.3) stellen jeweils eine einfache normierende Transformation N der Parameter P gemäß
Vorausgreifend sei an dieser Stelle noch eine vereinfachende Notation eingeführt. Und zwar handelt es sich bei den Gleichungen (3.1) bis (3.3) um nichtlineare Berechnungen. Diese Berechnungen lassen sich etwas vereinfacht schreiben, indem zunächst der Vektor der Polynomexponentialfunktionskoeffizienten c sowie der Vektor der normierten Polynomexponentialfunktionskoeffizienten ĉ eingeführt wird. Für den eindimensionalen Fall lauten diese folgendermaßen:
Mit diesen Vektoren kann man einen nichtlinearen Normierungsoperator im Parameterraum F definieren:
Auch für den zweidimensionalen Fall lassen sich entsprechend Vektoren und ein Normierungsoperator F definieren.Vectors and a normalization operator F can also be defined for the two-dimensional case.
4. Iteration4th iteration
Bisher bestand bei der Anwendung einer Polynomexponentialfunktion das grundsätzliche technische Problem, dass die Exponentialfunktion eine hardwareunfreundliche Funktion ist, deren pixelweise Berechnung einen hohen Rechenaufwand bzw. umfangreiche Hardwareressourcen erfordert. Daher wurde eine detaillierte Analyse durchgeführt, wie die Berechnung der Polynomexponentialfunktion auf hardwarefreundliche Operationen zurückgeführt werden kann.Until now, the fundamental technical problem when using a polynomial exponential function was that the exponential function is a hardware-unfriendly function, the pixel-by-pixel calculation of which requires a lot of computing effort or extensive hardware resources. Therefore, a detailed analysis was carried out on how the calculation of the polynomial exponential function can be reduced to hardware-friendly operations.
Die zugrundeliegende Erkenntnis folgt dem mathematischen Gedanken der Definition des Hyper-Operators. Beim Hyper-Operator ergibt sich eine Operation einer bestimmten Stufe jeweils durch eine Mehrfachausführung von Operationen einer um eins niedrigeren Stufe. Bei der Exponentialfunktion handelt es sich um eine Potenzfunktion und somit um eine Operation der dritten Stufe des Hyper-Operators. Diese kann gemäß der Definition des Hyper-Operators durch mehrfaches Ausführen von Operationen der zweiten Stufe des Hyper-Operators berechnet werden, zu welchen auch die Multiplikation zählt.The underlying insight follows the mathematical idea of the definition of the hyper operator. With the hyper operator, an operation of a certain level results from multiple execution of operations of a level one lower. The exponential function is a power function and therefore an operation of the third level of the hyper operator. According to the definition of the hyper-operator, this can be calculated by repeatedly executing operations of the second stage of the hyper-operator, which also includes multiplication.
Diesem Gedanken folgend wurde die Wirkungsweise eines rückgekoppelten Multiplizierwerkes analysiert, welches in zwei alternativen Ausführungsformen in
Es gibt grundsätzlich verschiedene Möglichkeiten, die Reihenfolge von Multiplikation 202, Selektion 200, Verzögerung 201 und Speicherung in der Variable h0 vorzunehmen. So ist es beispielsweise wie in
Das mathematische Verhalten rückgekoppelter Multiplizierwerke wird nachfolgend diskutiert. Dabei werden ein Zeitschritt z und ein Zählwert für Zeitschritte i verwendet. Ohne Beschränkung der Allgemeinheit wird angenommen, dass zu einem Zeitschritt z = 0 ein Initialisierungssignal r gesetzt wird. Dabei bedeutet ein gesetztes Signal, dass es einen Wert annimmt, der dazu führt, dass die Selektion 200 den Startwert d0 auswählt uneingedenk dessen, ob dabei für das Initialisierungssignal r ein logischer Wert von 0 oder von 1 erforderlich ist. Weiterhin wird angenommen, dass für alle Zeitschritte z > 0 bzw. i > 0 das Initialisierungssignal r nicht gesetzt wird, wobei ein nicht gesetztes Initialisierungssignal r dazu führt, dass die Selektion 200 das Ergebnis des Multiplikators 202 auswählt. Unter diesen Annahmen liegt nach einem Zeitschritt z = 0 am Ausgang q der Wert a0 an. Dabei wird ohne Beschränkung der Allgemeinheit davon ausgegangen, dass während des Zeitschritts z = 0 das durch die Selektion 200 ausgewählte Signal d0 mit dem Wert a0 an der Verzögerung 201 anliegt, so dass nach dem Zeitschritt z = 0 dieser Wert von der Verzögerung 201 an die Variable h0 und an den Ausgang q weiter gegeben wird. Es ist möglich, dass nach dem Zeitschritt z = 0 bereits der Zeitschritt z = 1 vorliegt, jedoch ist dies nicht zwingend erforderlich. Nach jedem weiteren Zeitschritt liegt dann am Ausgang q ein Wert an, der jeweils mit dem am Eingang d anliegenden Wert a1 multipliziert wurde. Daraus ergibt sich für den Wert am Ausgang q nach dem Zeitschritt z die folgende rekursive Gleichung:
Diese Rekursion kann in die folgende Iterationsformel überführt und, unter der Annahme, dass a0 und a1 positiv sind, folgendermaßen weiter umgeformt werden:
Hierbei werden Koeffizienten c0 und c1 verwendet, aus denen sich im genannten Fall die Werte a0 und a1 gemäß folgender Formel ergeben:
Durch diese Umformung und in dieser Schreibweise ist erkennbar, dass ein rückgekoppeltes Multiplizierwerk in der Lage ist, die Werte einer Polynomexponentialfunktion ersten Grades mit Koeffizienten b0 und b1 für eine ganzzahlige freie Variable z fortlaufend zu berechnen.Through this transformation and in this notation it can be seen that a feedback multiplier is able to continuously calculate the values of a polynomial exponential function of the first degree with coefficients b 0 and b 1 for an integer free variable z.
Aus der Erkenntnis heraus, dass ein rückgekoppeltes Multiplizierwerk eine Polynomexponentialfunktion ersten Grades fortlaufend berechnen kann, stellt sich die Frage, wie durch rückgekoppelte Multiplizierwerke eine Polynomexponentialfunktion zweiten Grades fortlaufend berechnet und wie damit ein Pixel bezüglich einer Vignettierung korrigiert werden kann.Based on the knowledge that a feedback multiplier can continuously calculate a polynomial exponential function of the first degree, the question arises as to how a polynomial exponential function of the second degree can be continuously calculated by feedback multipliers and how a pixel can thus be corrected for vignetting.
Hierzu wird eine Verschaltung zweier rückgekoppelter Multiplizierwerke gemäß
Die Kaskadierung wird im Detail so vorgenommen, dass jeweils der Ausgang q eines rückgekoppelten Multiplizierwerkes, z.B. W1, mit dem Eingang d des nachfolgenden rückgekoppelten Multiplizierwerkes, z.B. W0 verbunden wird. Genau wie in
Die im Laufe der Kaskadierung abnehmende Nummerierung der rückgekoppelten Multiplizierwerke, z.B. W1, danach W0 ist an dieser Stelle motiviert durch die übliche mathematische Schreibweise der durch die Kaskadierung erzielten mathematischen Wirkung. Zu deren Erläuterung werden die zuvor gewählten Zeitschritte und ihre Nummerierung auf jeweils gleiche Weise beibehalten.The decreasing numbering of the feedback multipliers in the course of cascading, eg W 1 , then W 0 is motivated at this point by the usual mathematical notation of the mathematical effect achieved by cascading. To explain this, the previously selected time steps and their numbering are retained in the same way.
Die mathematische Wirkung des rückgekoppelten Multiplizierwerkes kann wiederum zunächst rekursiv beschrieben werden. Dabei wird in runden Klammern jeweils die Nummer des Zeitschrittes z angegeben, nach dem dieser Wert angenommen wird:
Der Ausgangswert q des ersten rückgekoppelten Multiplizierwerkes 222 nimmt nach dem Zeitpunkt z den Wert h0(z) an. Zum besseren Verständnis werden die sich nach den Zeitpunkten z = 0 bis z = 4 ergebenden Werte hier explizit angegeben:
Allgemein gesprochen lässt sich der Wert von h0(z) ausdrücken, indem im ersten Schritt der Gleichung (4.2) für das einfache rückgekoppelte Multiplizierwerk der Wert a1, der das dort am Eingang d anliegende Signal repräsentiert, für alle vorangegangenen Zeitschritte i ersetzt wird durch den jeweiligen Ausgangswert q des vorgeschalteten rückgekoppelten Multiplizierwerkes 221. Dadurch ergibt sich die folgende Iterationsformel, die nachfolgend weiter zu einer Polynomexponentialfunktion umgeformt werden kann:
Zum besseren Verständnis und zur vereinfachten Notation wurden hier eine Substitution mit Werten b0, b1 und b2 und c0, c1 und c2 vorgenommen. Es zeigt sich, dass durch das Kaskadieren zweier rückgekoppelter Multiplizierwerke grundsätzlich eine Polynomexponentialfunktion zweiten Grades berechnet werden kann.For better understanding and simplified notation, a substitution with values b 0 , b 1 and b 2 and c 0 , c 1 and c 2 was made here. It turns out that by cascading two feedback multipliers, a polynomial exponential function of the second degree can basically be calculated.
Zur Berechnung der Werte a0, a1 und a2, b0, b1 und b2 aus den Koeffizienten c0, c1 und c2 aus der Polynomexponentialfunktion, werden drei Vektoren a, b und c definiert: :
Die Vektoren a und b sind miteinander durch die Exponentialfunktion verbunden, wobei die Anwendung der Exponentialfunktion auf einen Vektor hier als jeweilige Anwendung der Exponentialfunktion auf die jeweiligen Elemente des Vektors verstanden wird:
Der Zusammenhang zwischen b und c kann aus dem zweitletzten Schritt der Gleichung (4.11) entnommen und durch eine lineare Transformation beschrieben werden, die durch eine inverse Transformationsmatrix T-1 dargestellt werden kann:
Dabei lassen sich die Werte für T-1 direkt der Gleichung (4.11) entnehmen:
Diese lineare Transformation wird hier deshalb als eine inverse Matrix definiert, weil in der Anwendung die Berechnung meist in umgekehrter Reihenfolge erfolgt, also b aus c berechnet wird:
Dann ergibt sich T als Inverse der inversen Transformationsmatrix:
Zusammenfassend können der Vektor der Werte a für das rückgekoppelte Multiplizierwerk gemäß
Es lässt sich also mit einer Kaskadierung zweier rückgekoppelter Multiplizierwerke 221 und 222 und einem nachgeschalteten Multiplikator 224 gemäß
In der Weiterführung dieses Gedankens können auch mehr als zwei rückgekoppelte Multiplizierwerke kaskadiert werden. Das ist in
Bisher erfolgte die Berechnung einer Polynomexponentialfunktion zur Korrektur einer Vignettierung mittels kaskadierten rückgekoppelten Multiplizierwerken eindimensional und eignete sich daher vor allem für die Vignettierungskorrektur von mit eindimensionalen Bildsensoren, z.B. Zeilensensoren, aufgenommenen Bildern. Zur Korrektur zweidimensionaler Bildsensoren ist es grundsätzlich vorteilhaft, auch eine zweidimensionale Polynomexponentialfunktion mittels kaskadierter rückgekoppelter Multiplizierwerke vornehmen zu können.Until now, the calculation of a polynomial exponential function to correct vignetting was carried out one-dimensionally using cascaded feedback multipliers and was therefore particularly suitable for vignetting correction of images recorded with one-dimensional image sensors, e.g. line sensors. To correct two-dimensional image sensors, it is fundamentally advantageous to also be able to carry out a two-dimensional polynomial exponential function using cascaded feedback multipliers.
Diese Architektur ist grundsätzlich dafür ausgelegt, die Berechnung einer Polynomexponentialfunktion in progressiver Reihenfolge gemäß
Dabei führen die beiden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 grundsätzlich verschiedene Zeitschritte aus, denn innerhalb einer Zeile werden jeweils alle Spalten durchlaufen. Daher wird zwischen vertikalen Zeitschritten für das vertikale kaskadierte rückgekoppelte Multiplizierwerk 230 und horizontalen Zeitschritten für das horizontale kaskadierte rückgekoppelte Multiplizierwerk 231 unterschieden. Es erfolgen beispielhaft so viele vertikale Zeitschritte, wie das Bild I1 Zeilen besitzt. Für jede Zeile erfolgt beispielhaft ein vertikaler Zeitschritt und innerhalb dieser Zeile erfolgen dann beispielhaft jeweils nachfolgend so viele horizontale Zeitschritte, wie das Bild I1 Spalten besitzt. So kann für jeden Pixel des Bildes I1 ein Wert der Polynomexponentialfunktion errechnet werden.The two cascaded
Eine Trennung der vertikalen und horizontalen Zeitschritte kann z.B. dadurch erreicht werden, dass die entsprechenden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 jeweils an verschiedene Taktsignale angeschlossen sind, die in
Die beiden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 arbeiten im genannten Beispiel nicht nur zu verschiedenen Zeitschritten, sondern sie werden auch zu verschiedenen Startzeitpunkten und verschieden häufig initialisiert. Daher benötigen sie auch getrennte Initialisierungssignale, die in
Durch einen solchen Betrieb des zweidimensional kaskadierten rückgekoppelten Multiplizierwerkes gemäß
Entsprechend den Rechenschritten von Gleichung (4.11) und Gleichung (1.5) nach Gleichung (1.6) lässt sich Gleichung (4.19) umwandeln in folgende Berechnungsformel:
Dabei ergibt sich analog zu Gleichung (4.18) wiederum ein Vektor der Werte a aus den Koeffizienten c durch elementweise Anwendung der Exponentialfunktion auf die Elemente eines Vektors b, welcher ich durch Anwendung einer geeigneten Transformation T auf einen Vektor aus Koeffizienten c ergibt:
Beispielhaft können die Vektoren a und c folgendermaßen gewählt werden:
Dann nimmt die Transformation beispielhaft und in Anlehnung an Gleichung (4.17) folgende Form an:
5. Farbe5. Color
Das zu korrigierende Bild kann einfarbig, also monochrom sein oder es kann sich um ein Farbbild handeln, welches z.B. als Bild eines Mosaikfilters (wie beschrieben) oder z.B. als interpoliertes Farbbild gemäß
Bei der Beschreibung der Vignettierung von Farbbildern stellt sich das grundsätzliche Problem, dass möglicherweise durch Effekte wie z.B. die Farbigkeit der Lichtquelle oder die ungleiche Lichtempfindlichkeit der verschiedenen Farbkanäle dazu führen, dass die Farbkanäle im Vergleich zueinander verschiedene Helligkeiten aufweisen. Diese Helligkeitsabweichung führt grundsätzlich zu Schwierigkeiten bei der Beschreibung mit einem mathematischen Modell.When describing the vignetting of color images, the fundamental problem arises that effects such as the color of the light source or the unequal light sensitivity of the different color channels may lead to the color channels having different brightnesses compared to each other. This deviation in brightness generally leads to difficulties when describing it with a mathematical model.
Dies ist in
An dieser Stelle wird davon ausgegangen, dass es sich bei der Helligkeitsabweichung der verschiedenen Farbkanäle grundsätzlich um einen multiplikativen Effekt handelt. Dieser multiplikative Effekt lässt sich durch das erfindungsgemäße Logarithmieren der Werte gemäß Gleichung (2.1) in einen additiven Effekt überführen, d.h. die Farbverläufe weisen danach einen grundsätzlich gleichen Verlauf auf und sind nur durch unterschiedliche Offsets im Wertebereich gegeneinander verschoben. Dies ist in
Eine Vignettierungskorrektur kann grundsätzlich einerseits vorgenommen werden, indem die Farbkanäle jeweils getrennt voneinander betrachtet, für jeden der Farbkanäle und die ihm zugeordneten Werte von Bildpunkten jeweils separate Korrekturparameter P ermittelt und mit jeweils einer separaten Korrektur K korrigiert werden. Dies ist in
Eine weitere Möglichkeit besteht darin, die logarithmierten Farbwerte kanalweise durch jeweils eine Polynomfunktion zu beschreiben, wobei sich die Polynomfunktionen für die verschiedenen Farbkanäle jeweils lediglich in ihren Offsetwerten voneinander unterscheiden und in allen anderen Koeffizienten übereinstimmen. Dann kann für die Beschreibung und für die Korrektur eines bestimmten Farbkanals jeweils der diesem Farbkanal zugehörige Offset verwendet werden. Beispielsweise lassen sich die Helligkeitsverteilungen zweier Farbkanäle mit Werten r und g, wobei die Symbole hier beispielhaft für Rot und Grün stehen, im eindimensionalen Fall auf die folgende Weise in Analogie zu Gleichung (1.2) beschreiben:
Dabei bezeichnen r und g jeweils auch die Zugehörigkeit eines Bildpunktes bzw. eines Farbwertes zur entsprechenden Farbe. Bei der Bestimmung der Koeffizienten c ist es möglich, die verschiedenen Koeffizienten analog zu Gleichung (2.2) zu einem Vektor c zusammenzufassen und analog zu Gleichung (2.3) eine dementsprechende Matrix zu formulieren, bei der dann in jeder Zeile nur bei dem der entsprechenden Farbe zugehörenden Wert c0.r oder c0.g eine 1 steht und bei den der entsprechenden Farbe nicht zugehörenden Werten jeweils eine 0. Dann können damit auf die in Gleichung (2.5) genannte Weise die Werte des Koeffizientenvektors c bestimmt werden. Dabei wird zumeist im Rahmen einer nachfolgend durchgeführten Normierung die Situation entstehen, dass die aus den Koeffizienten c0.r und c0.g erzeugten normierten Koeffizienten ĉi.r und ĉi.g gleiche Werte annehmen. Dies führt dazu, dass die zunächst verschiedenen Polynomfunktionen für verschiedene Farbkanäle nach der Normierung identisch werden und somit durch eine einzige Polynomfunktion beschrieben werden können.r and g also denote the affiliation of an image point or a color value to the corresponding color. When determining the coefficients c, it is possible to combine the various coefficients into a vector c analogous to equation (2.2) and to formulate a corresponding matrix analogous to equation (2.3), in which then in each row only the one belonging to the corresponding color The value c 0.r or c 0.g is a 1 and the values that do not belong to the corresponding color are each a 0. Then the values of the coefficient vector c can be determined in the manner mentioned in equation (2.5). In the context of a subsequent normalization, the situation will usually arise that the standardized coefficients ĉ ir and ĉ ig generated from the coefficients c 0.r and c 0.g assume the same values. This means that the initially different polynomial functions for different color channels become identical after normalization and can therefore be described by a single polynomial function.
Auf dieser Erkenntnis beruht eine erfindungsgemäße dritte Möglichkeit, alle Farbkanäle gemeinsam zu betrachten und alle Farbwerte uneingedenk ihrer Zugehörigkeit zu einem Farbkanal zu behandeln. Dann können für die Farbkanäle gemeinsame Korrekturparameter P ermittelt und mit einer gemeinsamen Korrektur K korrigiert werden. Dies wird durch
Dass eine solche gemeinsame Betrachtung der Farbkanäle möglich ist, wird durch ein Zusammenspiel zwischen der Logarithmierung der Eingangswerte, der im Mosaikfilter und auch im interpolierten Farbbild meist konstanten Häufigkeitsverteilung der Farben im selben räumlichen Bereich und der Methode der kleinsten Fehlerquadrate erreicht.The fact that such a joint observation of the color channels is possible is achieved through an interaction between the logarithm of the input values, the frequency distribution of the colors in the same spatial area, which is usually constant in the mosaic filter and also in the interpolated color image, and the least squares method.
Bei einer gemeinsamen Betrachtung der Fehlerquadrate werden Parameter für eine Polynomexponentialfunktion gefunden, die geeignet sind, die Form der Intensitätsverteilung und ihre räumliche Lage genau zu beschreiben, nicht jedoch deren Offset im Raum der logarithmierten Werte, der einem Faktor im linearen Raum der Werte entspricht. Bezogen auf Gleichung (1.2) bedeutet das, dass auf diesem Wege die Parameter c1 und c2 exakt ermittelt werden können, nicht jedoch der Parameter c0. Bei nachfolgender Anwendung einer Normierung gemäß Ziffer 3 stellt dies jedoch keinen Nachteil dar, weil durch die Normierung der nicht korrekt oder ungenau bestimmte Parameter c0 durch einen normierten Parameter c0 ersetzt wird. Zur Berechnung dieses normierten Parameters c0 ist keine Kenntnis des Parameters c0 erforderlich, weil z.B. gemäß Gleichung (3.1) c0 nicht in die Berechnung von ĉ0 eingeht.When the error squares are considered together, parameters for a polynomial exponential function are found that are suitable for precisely describing the shape of the intensity distribution and its spatial position, but not its offset in the space of logarithmic values, which corresponds to a factor in the linear space of values. In relation to equation (1.2), this means that the parameters c 1 and c 2 can be determined exactly in this way, but not the parameter c 0 . However, if standardization is subsequently applied in accordance with point 3, this does not represent a disadvantage because the standardization replaces the incorrectly or inaccurately determined parameter c 0 with a standardized parameter c 0 . No knowledge of the parameter c 0 is required to calculate this standardized parameter c 0 because, for example, according to equation (3.1), c 0 is not included in the calculation of ĉ 0 .
Die genannten Formeln und Zusammenhänge lassen sich unter Anwendung der genannten mathematischen Prinzipien, Zusammenhänge und Vorgehensweisen auf eine dem Fachmann verständliche Weise auf weitere Farben, z.B. Blau, um weitere Grade und/oder um eine zweite Dimension erweitern. Ebenso ist eine Erweiterung auf interpolierte Farbbilder, bei denen für jeden Pixel mehrere Farbwerte, z.B. RGB, vorliegen, möglich.The formulas and relationships mentioned can be extended to further colors, e.g. blue, by further degrees and/or by a second dimension, using the mathematical principles, relationships and procedures mentioned in a way that is understandable to those skilled in the art. An extension to interpolated color images, where there are several color values, e.g. RGB, for each pixel, is also possible.
6. Verschiebung und AOI6. Displacement and AOI
Manchmal wird im Betrieb einer elektronischen Kamera kein gesamtes Bild 120, sondern nur ein Bildausschnitt 121 benötigt, der auch englisch als „area of interest“ (AOI) oder als „region of interest“ (ROI) bezeichnet wird. Diese Situation ist in
Ohne Beschränkung der Allgemeinheit wird hier angenommen, dass ein progressives Auslesen vorliegt. Somit beginnt das Auslesen des gesamten Bildes 120 in einem Startpunkt 122, der zumeist in dessen oberer linker Ecke liegt, und das Auslesen des Bildausschnittes 121 in einem verschobenen Startpunkt 123, der zumeist wiederum in dessen oberer linker Ecke liegt. Der horizontale Verschiebungswert wird hierbei als Δx und der vertikale als Δy bezeichnet.Without loss of generality, it is assumed here that there is a progressive readout. The reading of the
Dann kann bei Verwendung einer Polynomexponentialfunktion gemäß beispielsweise Gleichung (1.2) oder Gleichung (1.6) eine Umrechnung der Koordinaten des Bildausschnittes xa und ya in die Koordinaten des gesamten Bildes x und y erfolgen, indem die entsprechenden Verschiebungswerte zu den Koordinaten addiert werden:
Beide Gleichungen können auch auf einfache Weise nach xa und ya aufgelöst werden. Nach einer solchen Umrechnung kann die Korrektur des Bildausschnittes mit den für das gesamte Bild ermittelten Parametern unter Verwendung der errechneten Koordinaten x und y erfolgen.Both equations can also be easily solved for x a and y a . After such a conversion, the image section can be corrected with the parameters determined for the entire image using the calculated coordinates x and y.
Wird jedoch für eine Korrektur ein kaskadiertes rückgekoppeltes Multiplizierwerk gemäß Ziffer 4 verwendet, gestaltet sich die Situation etwas schwieriger. Läuft nämlich eine solches kaskadiertes rückgekoppeltes Multiplizierwerk auf dem gesamten Bild 120, so stellen sich bis zum Erreichen beispielsweise der linken oberen Ecke des Bildausschnitts 123, welche um Δx und Δy verschobene Koordinaten aufweist, in jedem der rückgekoppelten Multiplizierwerke bestimmte Werte ein. Soll hingegen in dem Startpunkt 123 begonnen werden, so müssen alle beteiligten rückgekoppelten Multiplizierwerke mit den entsprechenden Werten initialisiert werden. Dafür wird eine jeweilige Neuberechnung des Wertevektors gemäß Gleichung (4.12) benötigt.However, if a cascaded feedback multiplier according to point 4 is used for a correction, the situation becomes somewhat more difficult. If such a cascaded feedback multiplier runs on the
Eine einfache Art, diese Neuberechnung aus einem bereits bestimmten Koeffizientenvektor c gemäß Gleichung (4.12) vorzunehmen, besteht darin, das Polynom im Argument der Polynomexponentialfunktion zu verschieben. Das zugrunde liegende mathematische Vorgehen wird aus Gründen der Einfachheit für ein eindimensionales Polynom zweiten Grades in Abhängigkeit einer allgemeinen freien Variable z erläutert. Für eine Verschiebung im Koordinatenraum um einen Verschiebungswert Δz wird im Argument aus Gleichung (1.2) z durch die Differenz z - Δz ersetzt. Es ergibt sich die folgende Gleichung, die nachfolgend weiter umgeformt werden kann:
Es zeigt sich, dass durch Verschiebung der Polynomexponentialfunktion mit Koeffizienten c0, c1 und c2 um Δz wiederum eine Polynomexponentialfunktion mit zumeist anderen Koeffizienten c̃0, c̃1 und c̃2 entsteht. Die Koeffizienten c̃0, c̃1 und c2 werden wiederum einem Vektor c̃ zusammengefasst:
Dann lässt sich die Berechnung von c̃ aus c mittels eines linearen Verschiebeoperators S durchführen, der sich gemäß dem zweiten Schritt von Gleichung (6.2) in Matrixform aufschreiben lässt:
Folglich ergibt sich c̃ aus c durch Anwendung des Verschiebeoperators S:
Wird nun der verschobene Wertevektor c mit seiner Berechnungsformel gemäß Gleichung (6.5) in Gleichung (4.15) eingesetzt, ergibt sich die Berechnung des Wertevektors a für die um Δz verschobenen Koordinaten im eindimensionalen Fall als:
Unter Anwendung gleicher oder ähnlicher mathematischer Konzepte, Gesetze und Überlegungen kann der Fachmann auch Verschiebungsoperatoren für Polynomexponentialfunktionen höheren Grades oder mehrerer Dimensionen bestimmen. Als Beispiel sei die zweidimensionale Verschiebungsmatrix für einen Wertevektor c gemäß Gleichung (4.19) um einen horizontalen Verschiebungswert Δx und einen vertikalen Verschiebungswert Δy für eine zweidimensionale Polynomexponentialfunktion explizit angegeben:
Durch Anwendung einer solchen Verschiebung können auf einfache Weise und mit geringen Rechenaufwand Startwerte als Elemente des Wertevektors a ermittelt werden, mit denen ein kaskadiertes rückgekoppeltes Multiplizierwerk initialisiert werden kann, um ohne vorangehende Rechenschritte direkt mit der Berechnung von Korrekturwerten für den Bildausschnitt 121 in dessen Startpunkt 123 zu starten.By applying such a shift, starting values can be determined in a simple manner and with little computational effort as elements of the value vector a, with which a cascaded feedback multiplier can be initialized in order to directly start calculating correction values for the
7. Spiegelung und Umkehr der Ausleserichtung7. Mirroring and reversing the reading direction
Um die erfindungsgemäße Korrektur auf einem Sensor mit einem „split readout“ (wie vorstehend beschrieben) unter Verwendung kaskadierter rückgekoppelter Multiplizierwerke anzuwenden, kann es vorteilhaft sein, mehrere kaskadierte rückgekoppelte Multiplizierwerke zu verwenden, z.B. eines für den linken Block und eines für den rechten Block. Dabei wird der rechte Block in einer gegenüber dem progressiven Auslesen des linken Blocks horizontal gespiegelten Richtung ausgelesen.In order to apply the correction according to the invention to a sensor with a "split readout" (as described above) using cascaded feedback multipliers, it may be advantageous to use several cascaded feedback multipliers, e.g. one for the left block and one for the right block. The right block is read out in a horizontally mirrored direction compared to the progressive reading of the left block.
Dies kann bei der Verwendung eines kaskadierten rückgekoppelten Multiplizierwerkes, z.B. gemäß
Dabei besteht das grundsätzliche Problem, den Vektor a für das horizontal gespiegelt arbeitende, kaskadierte rückgekoppelte Multiplizierwerk zu ermitteln. Grundsätzlich lässt sich das Polynom im Argument der Polynomexponentialfunktion dadurch an der Linie mit der Koordinate x = 0 spiegeln, dass dort überall x durch -x ersetzt wird. Ein äquivalenter mathematischer Effekt kann allerdings auch durch eine Anpassung des Koeffizientenvektors c mit einem Spiegeloperator M vorgenommen werden. Dabei wird ein gespiegelter Koeffizientenvektor č erhalten:
Der Spiegeloperator nimmt z.B. für eine eindimensionale Polynomexponentialfunktion zweiten Grades folgende Form an:
Nun wird in den seltensten Fällen eine Spiegelung an der Linie x = 0 benötigt, sondern zumeist an einer anderen Linie, z.B. an der Trennlinie zwischen dem linken Block und dem rechten. Dazu kann zunächst eine erste Verschiebung des Polynoms zur entsprechenden Trennlinie mit einem Verschiebungsoperator S erfolgen, dort kann die Spiegelung vorgenommen werden und nachfolgend kann eine Rückverschiebung stattfinden, die z.B. mit dem zur ersten Verschiebung S inversen Verschiebungsoperator S-1 vorgenommen werden kann oder mit einem zweiten Verschiebungsoperator mit einem gegenüber dem ersten Verschiebungsoperator negierten Argument. Die für diese Operationen verwendeten Matrizen können durch Matrizenmultiplikationen vereint werden.Now, in the rarest of cases, a reflection is required at the line x = 0, but usually at another line, for example at the dividing line between the left block and the right one. For this purpose, a first shift of the polynomial to the corresponding dividing line can take place with a shift operator S, the mirroring can be carried out there and subsequently a backward shift can take place, which can be carried out, for example, with the shift operator S -1, which is inverse to the first shift S, or with a second one Shift operator with an argument negated from the first shift operator. The matrices used for these operations can be unified using matrix multiplications.
8. Vektorisierung und Parallelisierung8. Vectorization and parallelization
Die vorstehend unter Ziffer 4 vorgeschlagene Art, eine Polynomexponentialfunktion iterativ zu berechnen, arbeitet grundsätzlich seriell. Dabei wird für die Korrektur jedes Pixels jeweils ein Zeitschritt benötigt.The way of iteratively calculating a polynomial exponential function suggested under point 4 basically works serially. One time step is required to correct each pixel.
Diese Situation wird in
Manchmal kann es erforderlich sein, an Stelle der seriellen Berechnung eine teilweise parallelisierte Berechnung vorzunehmen. Dadurch kann beispielsweise eine höhere Bandbreite für die Korrektur erreicht werden, indem mehr Pixel pro Zeiteinheit korrigiert werden.Sometimes it may be necessary to perform a partially parallel calculation instead of the serial calculation. This makes it possible, for example, to achieve a higher correction bandwidth by correcting more pixels per unit of time.
Das kann z.B. dadurch erfolgen, dass mehrere kaskadierte rückgekoppelte Multiplizierwerke gleichzeitig arbeiten. Diese Arbeitsweise wird als parallel bezeichnet und ist in
Eine erfindungsgemäße Möglichkeit, dies zu vermeiden, besteht bei Verwendung mehrerer paralleler kaskadierter rückgekoppelter Multiplizierwerke darin, diese Berechnungsschritte so ausführen zu lassen, dass in einem von mehreren parallelen kaskadierten rückgekoppelten Multiplizierwerken durchgeführten Berechnungsschritt den Berechnungen der einzelnen rückgekoppelten Multiplizierwerke jeweils gemeinsam derselbe Wert eines vorbestimmten Kanals zugrunde gelegt wird.One way according to the invention to avoid this is, when using several parallel cascaded feedback multipliers, to have these calculation steps carried out in such a way that in a calculation step carried out by several parallel cascaded feedback multipliers, the calculations of the individual feedback multipliers are based on the same value of a predetermined channel is placed.
Dies ist in
9. Zonierung9. Zoning
Es ist grundsätzlich möglich, die vorgeschlagene Korrektur auf dem gesamten Bild in gleicher Weise anzuwenden. Zur Erzielung einer höheren Genauigkeit für die Korrektur kann es aber auch vorteilhaft sein, mehrere Zonen im Bild zu definieren. Dies kann z.B. durch die Definition von radialen Zonen oder eine Einteilung des Bildes in rechteckige Bereiche vorgenommen werden, wie in
Praktische Beobachtungen zeigen, dass die Randabschattung realer Objektive die Annahme der Radialsymmetrie manchmal nicht vollständig erfüllt. In solchen Fällen können bessere Ergebnisse erzielt werden, wenn Zonen nicht nur in radialer Richtung, sondern auch in Umfangsrichtung unterteilt werden, wie z.B. in
Weiterhin lässt sich der Berechnungsaufwand für die Einteilung in Zonen verringern, oder hardwarefreundlicher gestalten, wenn die Trennlinien zwischen den Zonen gradlinig ausgeführt werden. Dann ergeben sich Zonen in Form von Polygonen, wie sie z.B. in 24 (c) bis (e) dargestellt sind.Furthermore, the calculation effort for the division into zones can be reduced or made more hardware-friendly if the dividing lines between the zones are made straight. This then results in zones in the form of polygons, such as those shown in Figures 24 (c) to (e).
Schließlich ist es auch möglich, Zonen so zu definieren, dass kein Bezug zu einem Mittelpunkt vorliegt. Dies erleichtert die Berechnung, weil dann die Notwendigkeit der Bestimmung eines Mittelpunkts entfällt. Eine solche Einteilung kann beispielsweise vorgenommen werden wie in
Dabei wird innerhalb jeder Zone die Korrektur mit einer Polynomexponentialfunktion vorgenommen, wobei sich die Parameter der Polynomexponentialfunktionen in verschiedenen Zonen voneinander unterscheiden können. Die verschiedenen, auf unterschiedlichen Zonen definierten Polynomexponentialfunktionen, bilden gemeinsam dann eine Korrekturfunktion.Within each zone, the correction is made with a polynomial exponential function, whereby the parameters of the polynomial expo nential functions in different zones can be distinguished from one another. The various polynomial exponential functions defined on different zones then together form a correction function.
Um sichtbare Artefakte beim Übergang von einer Zone zur nächsten zu vermeiden, ist es wichtig, dass bei aneinander angrenzenden Zonen die auf diesen Zonen definierten Polynomexponentialfunktionen bei der Bildung der Korrekturfunktion stetig ineinander übergehen. Dies kann dadurch gewährleistet werden, dass die Polynomexponentialfunktionen zweier angrenzender Zonen jeweils an derselben Stelle den selben Wert annehmen. Da auch Änderungen in Helligkeitsgradienten gut sichtbar sein können, werden sichtbare Artefakte weiterhin dadurch vermieden, dass bei aneinander angrenzenden Zonen die auf diesen Zonen definierten Polynomexponentialfunktionen bei der Bildung der Korrekturfunktion stetig differenzierbar ineinander übergehen. Dies kann dadurch erreicht werden, dass die Polynomexponentialfunktionen zweier angrenzender Zonen jeweils an derselben Stelle dieselbe Ableitung annehmen, indem sie z.B. denselben Gradientenvektor aufweisen.In order to avoid visible artifacts when moving from one zone to the next, it is important that in adjacent zones the polynomial exponential functions defined on these zones continuously merge into one another when forming the correction function. This can be ensured by ensuring that the polynomial exponential functions of two adjacent zones each assume the same value at the same point. Since changes in brightness gradients can also be clearly visible, visible artifacts are further avoided by the fact that, in adjacent zones, the polynomial exponential functions defined on these zones merge into one another in a continuously differentiable manner when forming the correction function. This can be achieved by the polynomial exponential functions of two adjacent zones each assuming the same derivative at the same point, for example by having the same gradient vector.
Diese Bedingungen können bei einer gemeinsamen Bestimmung von Koeffizienten, z.B. nach der Methode der kleinsten Quadrate und auf logarithmierten Bildwerten, erfüllt werden, indem sie mathematisch als Nebenbedingungen formuliert werden. Die anschließende Berechnung einer Lösung mit kleinstem quadratischen Fehler kann unter Anwendung einer sogenannten „constrained least squares“-Methode bestimmt werden.These conditions can be met when determining coefficients together, e.g. using the least squares method and on logarithmic image values, by formulating them mathematically as secondary conditions. The subsequent calculation of a solution with least square error can be determined using a so-called “constrained least squares” method.
10. Alternative Ausführungsformen10. Alternative Embodiments
In der vorliegenden Beschreibung wurden mehrere beispielhafte Berechnungsmöglichkeiten für den Wertevektor a und für die Werte, die seine Elemente bilden, genannt, z.B. in Ziffer 1 die Negation mit dem Negationsoperator N, in Ziffer 3 die Normierung mit dem Normierungsoperator F, in Ziffer 4 die Transformation mit dem Transformationsoperator T, in Ziffer 6 die Verschiebung mit dem Verschiebungsoperator S und in Ziffer 8 die Spiegelung mit dem Spiegelungsoperator M. Diese Operatoren können zur Berechnung des Wertevektors a je nach Bedarf miteinander kombiniert werden, z.B. in folgender Form:
Darüber hinaus ist es auch möglich, die Reihenfolgen der Operatoren zu tauschen, sofern sie im Einzelfall kommutieren. So gilt z.B.:
Weiterhin können mehrere Operatoren auch zu gemeinsamen Operatoren zusammengefasst werden. Sofern es sich bei den Operatoren um lineare Operatoren in Matrixschreibweise handelt, kann dies durch Anwendung der Matrizenmultiplikation auf die mehreren Operatoren durchgeführt werden. So kann man z.B. eine Matrix A definieren mit:
Dann lässt sich Gleichung (10.1) umschreiben zu:
Unter Anwendung ähnlicher mathematischer Ideen und Vorgehensweisen können auch zahlreiche weitere äquivalente Darstellungsformen der Berechnung von Parametern erzielt werden.Using similar mathematical ideas and procedures, numerous other equivalent representations of the calculation of parameters can also be achieved.
In Ziffer 4 wurde eine Berechnung in digitaler Hardware geschildert. Es ist ebenso auch möglich, die angegebenen Operationen auch teilweise oder vollständig in Analogelektronik auszuführen und z.B. digitale Multiplizierer durch Analogmultiplizierer zu ersetzen. In der Analogelektronik sind auch weitere Vereinfachungen möglich. Z.B. lässt sich die Wirkungsweise eines rückgekoppelten Multiplizierwerkes 221, dessen Eingänge jeweils mit konstanten Werten beschaltet sind und dessen mathematische Wirkungsweise in Gleichung (4.2) beschrieben ist, auch unter Verwendung eines sogenannten RC-Gliedes erzielen, dessen Spannung ebenfalls im Laufe von linear aufeinanderfolgenden Zeitschritten exponentiell abfällt.A calculation in digital hardware was described in point 4. It is also possible to carry out the specified operations partially or completely in analog electronics and, for example, to replace digital multipliers with analog multipliers. Further simplifications are also possible in analog electronics. For example, the operation of a
Weiterhin lassen sich alle für die Berechnung in digitaler Hardware dargelegten Berechnungsschritte grundsätzlich auch in Software durchführen. Die Rückkopplung kann dabei programmiertechnisch z.B. in Form einer Schleife programmiert werden, die dann bei jedem Schleifendurchlauf die Berechnung für einen Zeitschritt durchführt.Furthermore, all calculation steps outlined for the calculation in digital hardware can in principle also be carried out in software. The feedback can be programmed, for example in the form of a loop, which then carries out the calculation for a time step with each loop run.
Weiterhin kann die Berechnung von Korrekturwerten oder die Korrektur von Pixeln auch in anderer Reihenfolge vorgenommen werden. Beispielsweise ist es auch möglich, die Korrektur Spalte für Spalte und innerhalb jeder Spalte dann für die Pixel dieser Spalte zeilenweise vorzunehmen. Dazu können jeweils die Koeffizienten bzw. Initialisierungswerte entsprechend ausgetauscht oder angepasst werden.Furthermore, the calculation of correction values or the correction of pixels can also be carried out in a different order. For example, it is also possible to carry out the correction column by column and then within each column for the pixels of this column line by line. For this purpose, the coefficients or initialization values can be exchanged or adjusted accordingly.
Außerdem ist es auch möglich, für Korrekturwerte eine Vorberechnung vorzunehmen und die Korrekturwerte bis zur Anwendung der Korrektur zu speichern. Die Vorberechnung kann beispielsweise zur Einrichtungszeit oder auch zu einem anderen, der Laufzeit vorgelagerten Zeitpunkt vorgenommen werden. Dabei können Korrekturwerte für jeden einzelnen Pixel oder für Gruppen von Pixeln einer Speicherung unterzogen werden. Das ermöglicht, sie während der Laufzeit abzurufen und ohne die Notwendigkeit ihrer Berechnung zur Laufzeit anzuwenden. Dadurch können in Hardware Logikressourcen eingespart werden.It is also possible to carry out a preliminary calculation for correction values and to save the correction values until the correction is applied. The pre-calculation can be carried out, for example, at the setup time or at another time before the runtime become. Correction values can be saved for each individual pixel or for groups of pixels. This allows them to be retrieved at runtime and applied without the need to calculate them at runtime. This allows logic resources to be saved in hardware.
Es kann auch eine Speicherung von horizontalen Korrekturwerten g(x) und von vertikalen Korrekturwerten g(y) vorgenommen werden. Zur Laufzeit kann dann eine Multiplikation von horizontalen und vertikalen Korrekturwerten gemäß Gleichung (1.5) vorgenommen werden. Auch hierdurch wird eine zweidimensionale Polynomexponentialfunktion g(x, y) erhalten, die zur Vignettierungskorrektur verwendet werden kann. Der hierbei zur Laufzeit auftretende Berechnungsaufwand von g(x,y) besteht aus nur einer Multiplikation, die z.B. durch einen Multiplizierer vorgenommen werden kann, und ist gering. Gleichzeitig wird für ein solches Vorgehen sehr viel weniger Speicherplatz zur Speicherung von Korrekturwerten benötigt, als bei einer pixelweisen Speicherung. Dies ist insofern von Bedeutung, als dass in zahlreichen Schaltkreisen, die als Bildverarbeitungsmittel 13 verwendet werden können, z.B. in einem FPGA, in einem MCU oder in einem DSP, nur relativ wenig Speicher zur Verfügung steht und dass auch generell statischer Speicher, der einen schnellen Zugriff ermöglicht, viel teure Chipfläche benötigt.Horizontal correction values g(x) and vertical correction values g(y) can also be stored. A multiplication of horizontal and vertical correction values can then be carried out at runtime according to equation (1.5). This also results in a two-dimensional polynomial exponential function g(x, y), which can be used for vignetting correction. The calculation effort of g(x,y) that occurs at runtime consists of just one multiplication, which can be carried out by a multiplier, for example, and is low. At the same time, such a procedure requires much less storage space to store correction values than with pixel-by-pixel storage. This is important because in numerous circuits that can be used as image processing means 13, for example in an FPGA, in an MCU or in a DSP, only relatively little memory is available and that generally static memory, which has a fast Access allows, requires a lot of expensive chip space.
Schließlich ist es natürlich auch möglich, Teile der Korrekturwerte vor der Laufzeit zu speichern und Teile der Korrekturwerte zur Laufzeit zu berechnen. So können z.B. vertikale Korrekturwerte gespeichert und als Initialisierungswerte für ein horizontales kaskadiertes rückgekoppeltes Multiplizierwerk verwendet werden. Hierdurch können die zuvor genannten Vorteile entsprechend kombiniert werden.Finally, it is of course also possible to save parts of the correction values before runtime and to calculate parts of the correction values during runtime. For example, vertical correction values can be saved and used as initialization values for a horizontal cascaded feedback multiplier. This allows the aforementioned advantages to be combined accordingly.
11. Bestimmung des Mittelpunktes11. Determination of the center point
Einige der vorgenannten Verfahren benötigen eine Bestimmung eines optischen Mittelpunktes. Dieser kann aufgrund der meist hinreichend gut zutreffenden Annahme ermittelt werden, dass eine Vignettierung radialsymmetrisch auftritt.Some of the aforementioned methods require the determination of an optical center. This can be determined based on the usually sufficiently accurate assumption that vignetting occurs radially symmetrically.
Gemäß
Dieses Bild wird nun entweder zur Bestimmung der vertikalen Koordinate yc des optischen Mittelpunktes einer horizontalen Mittelung 501 oder zur Bestimmung der horizontalen Koordinate xc des optischen Mittelpunktes einer vertikalen Mittelung 502 unterzogen. Dabei wird bei einer horizontalen Mittelung ein Mittelwert oder ein Vielfaches des Mittelwertes der Pixelwerte jeder Zeile berechnet und bei einer vertikalen Mittelung ein Mittelwert oder ein Vielfaches der Pixelwerte jeder Zeile. Diese Mittelung liefert einen Datenvektor 503. Wie z.B. in
Nun kann eine Schätzung der entsprechenden x- oder y-Koordinate des Mittelpunktes 504 erfolgen. Diese Schätzung kann z.B. eine Koordinate des geometrischen Mittelpunktes zugrunde legen. Dieser Schätzwert wird als ein aktueller Mittelpunkt 505 im ersten Schritt 510 übernommen. Ausgehend von diesem aktuellen Mittelpunkt wird ein Datenbereich ausgewählt. Eine solche Auswahl erfolgt bevorzugt symmetrisch, sodass auf beiden Seiten des aktuellen Mittelpunktes gleich viele Daten des Datenvektors 503 zu dem Datenbereich gehören. Nachfolgend erfolgt die Ermittlung einer Ausgleichsparabel 507 mit minimalem quadratischen Fehler auf dem Datenbereich. Die Wahl des Datenbereichs symmetrisch um den aktuellen Mittelpunkt besitzt dabei den Vorteil, dass auch bei deutlicher Abweichung des Datenvektors von einer Parabel die höheren Momente symmetrisch auftreten, sodass sie nicht zu einer Abweichung der Koordinate des Scheitelpunktes führen. Daher kann diese Koordinate des Scheitelpunktes 508 mit höherer Genauigkeit bestimmt werden und führt zu einem aktualisierten Mittelpunkt 509, der in den nachfolgenden Schritten 511 den bisherigen aktuellen Mittelpunkt ersetzt.An estimate of the corresponding x or y coordinate of the
In
Dabei beschreiben c1 und c2 die entsprechenden Koeffzienten der Parabel als Polynom zweiten Grades.c 1 and c 2 describe the corresponding coefficients of the parabola as a second degree polynomial.
Das weitere Vorgehen wird anhand von
Weitere Variationen der offenbarten Ausführungsformen können von einem die beanspruchte Erfindung praktizierenden Fachmann aus einer Betrachtung der Zeichnungen, der Beschreibung und der beigefügten Ansprüche verstanden und ausgeführt werden.Further variations of the disclosed embodiments may be understood and carried out by one skilled in the art practicing the claimed invention from a review of the drawings, description and appended claims.
In den Ansprüchen schließen die Wörter „aufweisen“ und „umfassen“ nicht andere Elemente oder Schritte aus und der unbestimmte Artikel „ein“ schließt eine Mehrzahl nicht aus.In the claims, the words "comprising" and "comprising" do not exclude other elements or steps and the indefinite article "a" does not exclude a plurality.
Eine einzelne Einheit oder Vorrichtung kann die Funktionen mehrerer Elemente durchführen, die in den Ansprüchen aufgeführt sind. Die Tatsache, dass einzelne Funktionen und/oder Elemente in unterschiedlichen abhängigen Ansprüchen aufgeführt sind, bedeutet nicht, dass nicht auch eine Kombination dieser Funktionen und/oder Elemente vorteilhaft verwendet werden könnte.A single unit or device can perform the functions of several elements listed in the claims. The fact that individual functions and/or elements are listed in different dependent claims does not mean that a combination of these functions and/or elements could not also be used advantageously.
Die Bezugszeichen in den Ansprüchen sind nicht derart zu verstehen, dass der Gegenstand und der Schutzbereich der Ansprüche durch diese Bezugszeichen eingeschränkt wären.The reference numerals in the claims should not be understood as limiting the subject matter and scope of the claims by these reference numerals.
Zusammengefasst wurde ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, wobei das Korrekturverfahren umfasst:
- - Korrigieren der Werte der Pixel basierend auf einer Korrekturfunktion, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, oder die mathematisch in eine solche Funktion umformbar ist,
- wobei das Korrigieren des Wertes eines Pixels ein Dividieren oder vorzugsweise ein Multiplizieren des Wertes des Pixels durch den bzw. mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst.
- - Correcting the values of the pixels based on a correction function comprising an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, or the can be mathematically transformed into such a function,
- wherein correcting the value of a pixel includes dividing or preferably multiplying the value of the pixel by the value of the correction function at the position of the pixel.
Claims (18)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018115991.9A DE102018115991B4 (en) | 2018-07-02 | 2018-07-02 | DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE |
CN201910589742.5A CN110677555A (en) | 2018-07-02 | 2019-07-02 | Digital circuit for correcting vignetting effect in pixel values of an image of an electronic camera |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018115991.9A DE102018115991B4 (en) | 2018-07-02 | 2018-07-02 | DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102018115991A1 DE102018115991A1 (en) | 2020-01-02 |
DE102018115991B4 true DE102018115991B4 (en) | 2023-12-07 |
Family
ID=68885847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018115991.9A Active DE102018115991B4 (en) | 2018-07-02 | 2018-07-02 | DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110677555A (en) |
DE (1) | DE102018115991B4 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113393389B (en) * | 2021-06-02 | 2022-05-31 | 武汉博宇光电系统有限责任公司 | Image enhancement method without artificial halation |
DE102021133867A1 (en) | 2021-12-20 | 2023-06-22 | Carl Zeiss Microscopy Gmbh | Microscopy system and method for reducing image vignetting |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US37A (en) | 1836-09-28 | Crane-stove | ||
US262A (en) | 1837-07-11 | Combined | ||
US576A (en) | 1838-01-20 | Ftjbnace of stoves fob bubning anthracite | ||
US700A (en) | 1838-04-21 | Photo-litho | ||
US7408A (en) | 1850-06-04 | Improvement in suspending venetian blinds | ||
US7548A (en) | 1850-08-06 | Hanging and operating gates | ||
US7692A (en) | 1850-10-01 | Door-spring | ||
US8218A (en) | 1851-07-15 | Improvement in machines for dressing sisal hemp | ||
US3971065A (en) | 1975-03-05 | 1976-07-20 | Eastman Kodak Company | Color imaging array |
US6175613B1 (en) | 1997-07-11 | 2001-01-16 | Ge Medical Systems S.A. | Method for processing a sequence of radiological images of an object |
US7362358B2 (en) | 2003-08-07 | 2008-04-22 | Canon Kabushiki Kaisha | Correction of level difference between signals output from split read-out type image sensing apparatus |
US7388610B2 (en) | 2002-08-16 | 2008-06-17 | Zoran Corporation | Techniques of modifying image field data by extrapolation |
US7391450B2 (en) | 2002-08-16 | 2008-06-24 | Zoran Corporation | Techniques for modifying image field data |
US7408576B2 (en) | 2002-08-16 | 2008-08-05 | Zoran Corporation | Techniques for modifying image field data as a function of radius across the image field |
US7453502B2 (en) | 2004-02-13 | 2008-11-18 | Digital Imaging Systems Gmbh | Lens shading algorithm |
US7548262B2 (en) | 2004-06-07 | 2009-06-16 | Nokia Corporation | Method, apparatus, imaging module and program for improving image quality in a digital imaging device |
US7634152B2 (en) | 2005-03-07 | 2009-12-15 | Hewlett-Packard Development Company, L.P. | System and method for correcting image vignetting |
US7692700B2 (en) | 2003-02-12 | 2010-04-06 | Digital Imaging Systems Gmbh | Vignetting compensation |
US7920171B2 (en) | 2007-05-18 | 2011-04-05 | Aptina Imaging Corporation | Methods and apparatuses for vignetting correction in image signals |
US7961973B2 (en) | 2004-09-02 | 2011-06-14 | Qualcomm Incorporated | Lens roll-off correction method and apparatus |
US8130292B2 (en) | 2008-12-31 | 2012-03-06 | Aptina Imaging Corporation | Scene illumination adaptive lens shading correction for imaging devices |
US8472712B2 (en) | 2009-10-20 | 2013-06-25 | Apple Inc. | System and method for applying lens shading correction during image processing |
EP2278788B1 (en) | 2009-07-08 | 2013-09-11 | Samsung Electronics Co., Ltd. | Method and apparatus for correcting lens shading |
US8577140B2 (en) | 2011-11-29 | 2013-11-05 | Microsoft Corporation | Automatic estimation and correction of vignetting |
US8712183B2 (en) | 2009-04-16 | 2014-04-29 | Nvidia Corporation | System and method for performing image correction |
EP2929503B1 (en) | 2013-01-10 | 2016-10-26 | Basler AG | Method and device for creating an improved colour image with a sensor with a colour filter |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7548661B2 (en) * | 2005-12-23 | 2009-06-16 | Microsoft Corporation | Single-image vignetting correction |
JP5489392B2 (en) * | 2007-05-09 | 2014-05-14 | オリンパス株式会社 | Optical system evaluation apparatus, optical system evaluation method, and optical system evaluation program |
CN101609211B (en) * | 2008-06-18 | 2011-05-11 | 中国科学院自动化研究所 | Method for modeling free-space light propagation model in noncontact type optical imaging |
EP2734976B1 (en) * | 2011-07-21 | 2019-02-20 | Imax Corporation | Generalized normalization for image display |
US8823841B2 (en) * | 2012-06-20 | 2014-09-02 | Omnivision Technologies, Inc. | Method and apparatus for correcting for vignetting in an imaging system |
KR101662407B1 (en) * | 2014-12-23 | 2016-10-05 | 포항공과대학교 산학협력단 | Method for vignetting correction of image and apparatus therefor |
WO2016168307A1 (en) * | 2015-04-13 | 2016-10-20 | Universidade De Coimbra | Methods and systems for camera characterization in terms of response function, color, and vignetting under non-uniform illumination |
-
2018
- 2018-07-02 DE DE102018115991.9A patent/DE102018115991B4/en active Active
-
2019
- 2019-07-02 CN CN201910589742.5A patent/CN110677555A/en active Pending
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US37A (en) | 1836-09-28 | Crane-stove | ||
US262A (en) | 1837-07-11 | Combined | ||
US576A (en) | 1838-01-20 | Ftjbnace of stoves fob bubning anthracite | ||
US700A (en) | 1838-04-21 | Photo-litho | ||
US7408A (en) | 1850-06-04 | Improvement in suspending venetian blinds | ||
US7548A (en) | 1850-08-06 | Hanging and operating gates | ||
US7692A (en) | 1850-10-01 | Door-spring | ||
US8218A (en) | 1851-07-15 | Improvement in machines for dressing sisal hemp | ||
US3971065A (en) | 1975-03-05 | 1976-07-20 | Eastman Kodak Company | Color imaging array |
US6175613B1 (en) | 1997-07-11 | 2001-01-16 | Ge Medical Systems S.A. | Method for processing a sequence of radiological images of an object |
US8218037B2 (en) | 2002-08-16 | 2012-07-10 | Csr Technology Inc. | Techniques of modifying image field data by extrapolation |
US7817196B1 (en) | 2002-08-16 | 2010-10-19 | Zoran Corporation | Techniques of modifying image field data by extrapolation |
US7391450B2 (en) | 2002-08-16 | 2008-06-24 | Zoran Corporation | Techniques for modifying image field data |
US7408576B2 (en) | 2002-08-16 | 2008-08-05 | Zoran Corporation | Techniques for modifying image field data as a function of radius across the image field |
US7388610B2 (en) | 2002-08-16 | 2008-06-17 | Zoran Corporation | Techniques of modifying image field data by extrapolation |
US7907195B2 (en) | 2002-08-16 | 2011-03-15 | Zoran Corporation | Techniques for modifying image field data as a function of radius across the image field |
US7834921B1 (en) | 2002-08-16 | 2010-11-16 | Zoran Corporation | Compensation techniques for variations in image field data |
US7692700B2 (en) | 2003-02-12 | 2010-04-06 | Digital Imaging Systems Gmbh | Vignetting compensation |
US7362358B2 (en) | 2003-08-07 | 2008-04-22 | Canon Kabushiki Kaisha | Correction of level difference between signals output from split read-out type image sensing apparatus |
EP1700268B1 (en) | 2003-12-30 | 2015-01-14 | Qualcomm Technologies, Inc. | Techniques for modifying image field data |
EP1711880B1 (en) | 2004-02-02 | 2014-04-23 | Zoran Corporation | Techniques of modifying image field data by extrapolation |
US7453502B2 (en) | 2004-02-13 | 2008-11-18 | Digital Imaging Systems Gmbh | Lens shading algorithm |
US7548262B2 (en) | 2004-06-07 | 2009-06-16 | Nokia Corporation | Method, apparatus, imaging module and program for improving image quality in a digital imaging device |
US7961973B2 (en) | 2004-09-02 | 2011-06-14 | Qualcomm Incorporated | Lens roll-off correction method and apparatus |
US7634152B2 (en) | 2005-03-07 | 2009-12-15 | Hewlett-Packard Development Company, L.P. | System and method for correcting image vignetting |
US7920171B2 (en) | 2007-05-18 | 2011-04-05 | Aptina Imaging Corporation | Methods and apparatuses for vignetting correction in image signals |
US8130292B2 (en) | 2008-12-31 | 2012-03-06 | Aptina Imaging Corporation | Scene illumination adaptive lens shading correction for imaging devices |
US8712183B2 (en) | 2009-04-16 | 2014-04-29 | Nvidia Corporation | System and method for performing image correction |
US9414052B2 (en) | 2009-04-16 | 2016-08-09 | Nvidia Corporation | Method of calibrating an image signal processor to overcome lens effects |
EP2278788B1 (en) | 2009-07-08 | 2013-09-11 | Samsung Electronics Co., Ltd. | Method and apparatus for correcting lens shading |
US8472712B2 (en) | 2009-10-20 | 2013-06-25 | Apple Inc. | System and method for applying lens shading correction during image processing |
US8577140B2 (en) | 2011-11-29 | 2013-11-05 | Microsoft Corporation | Automatic estimation and correction of vignetting |
EP2929503B1 (en) | 2013-01-10 | 2016-10-26 | Basler AG | Method and device for creating an improved colour image with a sensor with a colour filter |
Non-Patent Citations (4)
Title |
---|
A. A. Sawchuk, „Real-Time Correction of Intensity Nonlinearities in Imaging Systems", IEEE, Transactions on Computers, 1977, S. 34-39 |
A. Kordecki et al., „Fast Vignetting Reduction Method for Digital Still Camera", IEEE, International Conference on Methods and Models in Automation and Robotics (MMAR), 2015, S. 1145-1150 |
KORDECKI, A. et al.: Fast vignetting reduction method for digital still camera. IEEE, Int. Conf. on Methods and Models in Automation and Robotics (MMAR), 2015, S. 1145-1150. |
SAWCHUCK A.: Real-Time Correction of Intensity Nonlinearities in Imaging Systems. IEEE, Trans. On Computers, 1977, Seiten 34-39. |
Also Published As
Publication number | Publication date |
---|---|
CN110677555A (en) | 2020-01-10 |
DE102018115991A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102014015353B4 (en) | DYNAMIC COMPRESSION | |
EP1231564B1 (en) | Digital local control of image properties by means of masks | |
DE602005004694T2 (en) | Method and apparatus for locally adaptive image processing filters | |
DE60026925T2 (en) | Adjust the contrast of a digital image with an adaptive, recursive filter | |
DE60317472T2 (en) | OPTIMIZED IMAGE PROCESSING FOR WAVE FRONT CODED PICTURE SYSTEMS | |
EP2929503B1 (en) | Method and device for creating an improved colour image with a sensor with a colour filter | |
DE60103535T2 (en) | GRAPHICAL SYSTEM | |
DE102015116599A1 (en) | Electronic device and method for controlling its cameras | |
DE102016121734A1 (en) | IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD AND COMPUTER READABLE STORAGE MEDIUM | |
DE4444583B4 (en) | Approximation device and approximation method for determining a technical system | |
EP2052550A2 (en) | Image processing device for colour image data and method for processing colour image data | |
DE102018115991B4 (en) | DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE | |
DE112017001458T5 (en) | Image processing apparatus, imaging apparatus and control method thereof | |
DE602004012125T2 (en) | ROBUST RECYCLED COVER OPERATORS FOR QUICKLY PROCESSING RETINEX-TYPE IMAGES | |
DE102015114162A1 (en) | Efficient interpolation | |
DE102021102233B4 (en) | Device and method for correspondence analysis in images | |
DE112011101632T5 (en) | Two-dimensional superresolution scale | |
DE112014006672T5 (en) | An image processing apparatus, an image forming apparatus, a microscope system, an image processing method and an image processing program | |
DE602004005879T2 (en) | METHOD AND SYSTEM FOR DIFFERENTIALLY AND REGULARLY MODIFYING A DIGITAL IMAGE TO PIXELS | |
DE112017006779T5 (en) | CAMERA SYSTEM INCLUDING OBJECTIVE WITH MAGNIFICATION GRADIENT | |
DE69827540T2 (en) | Signal processing system | |
DE102018008064A1 (en) | Downscaling images with pixel sets selected by a blue noise scan | |
EP3384461A1 (en) | Method and device for image correction | |
WO2018224444A1 (en) | Method and device for image correction | |
DE102015109878B3 (en) | Correction of a patterned image defect |
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 |