DE19715491A1 - Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung - Google Patents

Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung

Info

Publication number
DE19715491A1
DE19715491A1 DE19715491A DE19715491A DE19715491A1 DE 19715491 A1 DE19715491 A1 DE 19715491A1 DE 19715491 A DE19715491 A DE 19715491A DE 19715491 A DE19715491 A DE 19715491A DE 19715491 A1 DE19715491 A1 DE 19715491A1
Authority
DE
Germany
Prior art keywords
pixel
image
value
source image
point
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.)
Withdrawn
Application number
DE19715491A
Other languages
English (en)
Inventor
H Shahzad Naqvi
Russell J Huonder
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19715491A1 publication Critical patent/DE19715491A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/393Enlarging or reducing
    • H04N1/3935Enlarging or reducing with modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation

Description

Diese Erfindung bezieht sich auf eine Transformation von di­ gitalen Bildern und insbesondere auf Interpolationsverfahren und -Vorrichtungen, die eine schnelle Bildvergrößerung erge­ ben.
Ein digitales Bild eines Objekts ist als ein Array von Zei­ len und Spalten von Pixeln gebildet, die Pixeln auf einem Anzeigebildschirm oder einem anderen Anzeigegerät entspre­ chen. Pixel sind typischerweise durch ihre x-, y-Koordinaten in dem Pixelarray gekennzeichnet. Jedes Pixel weist einen oder mehrere zugeordnete Werte auf, die einen inkrementalen Bereich des Objekts darstellen. Wenn das Bild ein Schwarz­ weißbild ist, stellt der Pixelwert eine Graustufe des inkre­ mentalen Bereichs dar. Wenn das Bild ein Farbbild ist, wer­ den jedem Pixel Rot-, Grün- und Blauwerte zugeordnet. Bei­ spiele digitaler Bilder umfassen, sind jedoch nicht darauf begrenzt, medizinische Bilder, wie z. B. digitale Röntgen­ strahl- und MRI-Bilder, Digitalfilmbilder, Digitalvideobil­ der und Satellitenbilder.
Verschiedene räumliche Transformationen können an einem di­ gitalen Bild durchgeführt werden. Diese Transformationen um­ fassen ein Skalieren, eine Drehung und eine Translation von einem Bild oder einem Teil von einem Bild. Wenn ein Bild von einem Objekt vergrößert wird, wird ein Wiederabtasten benö­ tigt, um das Original- oder Quellenbild auf ein vergrößertes oder ein Zielbild abzubilden. Das vergrößerte Bild wird durch eine größere Anzahl von Pixeln dargestellt als das Quellenbild.
Eine herkömmliche Technik zum Vergrößern eines Bilds von ei­ nem Objekt betrifft eine umgekehrte Abbildung von Pixeln des vergrößerten Bilds zu neuabgetasteten Punkten des Quellen­ bilds. Im allgemeinen fallen die neuabgetasteten Punkte in dem Quellenbild nicht genau mit den einzelnen Pixelorten zusammen. Dementsprechend ist es notwendig, einen Pixelwert des neuabgetasteten Punktes aus einem oder mehreren Pixel­ werten in der Nachbarschaft des neuabgetasteten Punktes zu bestimmen. Die Nachbarpixel der neuabgetasteten Punkte wer­ den bestimmt. Bei einem Ansatz wird der Wert des neuabge­ tasteten Punktes als der Wert des nächstliegenden Nachbar­ pixels in dem Quellenbild bestimmt. Bei einem anderen Ansatz wird die Interpolation zwischen einer ausgewählten Anzahl von Nachbarpixeln verwendet, um den Wert des neuabgetasteten Punkts zu bestimmen. Typischerweise wird entweder eine bi­ lineare oder eine bikubische Interpolation verwendet. Bei der bilinearen Interpolation werden die vier nächstliegenden Nachbarpixel des neuabgetasteten Punktes bestimmt. Vertikal ausgerichtete Zwischenpixelwerte werden durch Interpolation zwischen Sätzen von zwei horizontal ausgerichteten Nachbar­ pixeln bestimmt. Dann wird der Pixelwert des neuabgetasteten Punktes durch Interpolation zwischen den vertikal ausgerich­ teten Zwischenpixelwerten bestimmt. Das Verfahren wird für jedes Pixel in dem vergrößerten Bild wiederholt. Ein ähn­ licher Ansatz wird für die bikubische Interpolation ver­ wendet. Es werden die 16 nächstliegenden Nachbarpixel des neuabgetasteten Punktes bestimmt. Vertikal ausgerichtete Zwischenpixelwerte werden durch Interpolation zwischen Sätzen von vier horizontal ausgerichteten Nachbarpixeln be­ stimmt. Dann wird der Pixelwert des neuabgetasteten Punktes durch Interpolation zwischen den vier vertikal ausgerichte­ ten Zwischenpixelwerten bestimmt. Das Verfahren wird für jedes Pixel in dem vergrößerten Bild wiederholt.
Ein typisches vergrößertes Bild kann 400×400 bis 1600×1200 Pixel aufweisen. Die Interpolationsoperationen, die mehrfache Berechnungen für jedes Pixel in dem Bild erfor­ dern, können zeitaufwendig sein, selbst wenn dieselben mittels eines sehr schnellen digitalen Computers durchge­ führt werden. Die Zeit, die für eine Bildvergrößerung er­ forderlich ist, kann für einen Anwender lästig oder nicht akzeptabel sein.
Es ist die Aufgabe der vorliegenden Erfindung, ein verbes­ sertes Interpolationsverfahren und eine verbesserte Vorrich­ tung zur schnellen Bildvergrößerung zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, durch ein Verfahren gemäß Anspruch 3 oder 4, durch eine Vor­ richtung gemäß Anspruch 6, 8, 9 oder 10 gelöst.
Gemäß der vorliegenden Erfindung sind Verfahren und Vorrich­ tungen zum Erzeugen von Pixelwerten in einem vergrößerten Bestimmungsbild von einem Objekt in einem Bestimmungsbild­ raum geschaffen. Die Pixelwerte in dem Bestimmungsbild wer­ den aus einem Quellenbild des Objekts in einem Quellenbild­ raum erzeugt. Das Bestimmungsbild und das Quellenbild weisen jeweils ein zweidimensionales Pixelarray auf. Jedes Pixel weist einen Wert auf, der das Objekt darstellt. Die Pixel­ orte des Bestimmungsbilds in dem Bestimmungsbildraum werden aus einem Vergrößerungsfaktor und der Größe und dem Ort des Quellenbildes bestimmt. Ein erstes Pixel in dem Bestimmungs­ bild wird in einen ersten neuabgetasteten Punkt in dem Quel­ lenbildraum transformiert. Nachbarpixel des ersten neuab­ getasteten Punkts werden in dem Quellenbildraum bestimmt. Zwischenpixelwerte werden durch Interpolation zwischen ver­ tikal ausgerichteten Nachbarpixeln in dem Quellenbildraum bestimmt. Ein Wert von dem ersten neuabgetasteten Punkt in dem Bestimmungsbild wird durch eine einzige horizontale Interpolation zwischen den Zwischenpixelwerten bestimmt.
Das obige Verfahren wird verwendet, um den Wert von dem er­ sten Pixel in einer Pixelzeile des Bestimmungsbilds zu be­ stimmen. Es werden dann die Werte der verbleibenden Pixel in der aktuellen Pixelzeile des Bestimmungsbilds der Reihe nach bestimmt, wobei jeder Pixelwert wie folgt bestimmt wird. Ein aktuelles Pixel in dem Bestimmungsbild wird in einen aktuel­ len neuabgetasteten Punkt in dem Quellenbildraum transfor­ miert. Das aktuelle Pixel ist benachbart zu dem vorhergehen­ den Pixel in der aktuellen Zeile des Bestimmungsbilds. Als nächstes wird eine Bestimmung vorgenommen, ob der aktuelle neuabgetastete Punkt in dem Quellenbildraum die gleichen Nachbarpixel wie der vorhergehende Punkt aufweist. Wenn der aktuelle neuabgetastete Punkt die gleichen Nachbarpixel wie der vorhergehende Punkt aufweist, kann ein Wert des ak­ tuellen neuabgetasteten Punkts in dem Bestimmungsbild durch eine einzige horizontale Interpolation zwischen den Zwi­ schenpixeln, die für den vorhergehenden Punkt berechnet wur­ den, bestimmt werden. Wenn der aktuelle neuabgetastete Punkt nicht die gleichen Nachbarpixel aufweist wie der vorherge­ hende Punkt, kann ein einzelner aktueller Zwischenpixelwert durch Interpolation zwischen einem aktuellen Satz von verti­ kal ausgerichteten Nachbarpixeln des aktuellen neuabgetaste­ ten Punkts bestimmt werden, und der Wert des aktuellen neu­ abgetasteten Punkts in dem Bestimmungsbild kann durch eine einzige horizontale Interpolation zwischen den aktuellen Zwischenpixelwerten und zumindest einem der Zwischenpixel­ werte, die dem vorhergehenden Punkt entsprechen, bestimmt werden. Folglich können aktuelle Pixelwerte für jedes Pixel außer dem ersten Pixel in jeder Zeile durch eine Interpola­ tion bestimmt werden, wenn der aktuelle neuabgetastete Punkt die gleichen Nachbarpixel wie der vorhergehende Punkt auf­ weist, und durch zwei Interpolationen bestimmt werden, wenn der aktuelle neuabgetastete Punkt nicht die gleichen Nach­ barpixel aufweist wie der vorhergehende Punkt. Die Erfindung kann mit der bilinearen Interpolation und mit der bikubi­ schen Interpolation verwendet werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 eine bildliche Darstellung von einer Bildvergröße­ rung gemäß der vorliegenden Erfindung;
Fig. 2 ein Diagramm, das die Reihenfolge der Operationen für eine bilineare Interpolation gemäß der vorlie­ genden Erfindung darstellt;
Fig. 3 ein Diagramm, das die Reihenfolge der Operationen für die bikubische Interpolation gemäß der vorlie­ genden Erfindung darstellt;
Fig. 4 ein Diagramm, das ein Verfahren zum Bestimmen von aufeinanderfolgenden Pixelwerten durch die bi­ lineare Interpolation gemäß der vorliegenden Erfindung darstellt;
Fig. 5 ein Blockdiagramm von einem Beispiel einer Hard­ warekonfiguration zum Implementieren der vorliegen­ den Erfindung; und
Fig. 6A bis 6C ein Flußdiagramm von einem Verfahren zum Er­ zeugen eines vergrößerten Bilds von einem Objekt gemäß der vorliegenden Erfindung.
Die vorliegende Erfindung bezieht sich auf die Vergrößerung von einem Digitalbild von einem Objekt oder von vielfachen Objekten. Wie in Fig. 1 gezeigt ist, wird ein Quellenbild 10 von einem Objekt 12 vergrößert, um ein Bestimmungsbild 14 von dem Objekt 12 zu liefern. Das Quellenbild 10 ist in ei­ nem Quellenbildraum gebildet, und das Bestimmungsbild 14 ist in einem Bestimmungsbildraum gebildet. Das Quellenbild 10 und das Bestimmungsbild 14 können jeweils ein Teil von einem größeren Bild sein. Das Quellenbild 10 besteht aus einem Array von Pixeln 20₁, 20₂, etc., das in Zeilen und Spalten angeordnet ist. Das Bestimmungsbild 14 besteht gleichermaßen aus einem Array von Pixeln 22₁, 22₂, etc., das in Zeilen und Spalten angeordnet ist. Die Pixelorte sind durch x-, y-Koor­ dinaten in jedem Pixelarray gekennzeichnet. Jedes der Pixel in dem Quellenbild 10 weist einen oder mehrere zugeordnete Pixelwerte auf, die eine Graustufe in einem Schwarzweißbild oder RGB-Farbwerte in einem Farbbild darstellen. Pixelwerte in dem Bestimmungsbild 14 werden aus der Größe und dem Ort des Quellenbilds und dem spezifizierten Vergrößerungsfaktor bestimmt. Für ein gegebenes Anzeigeformat sind die Pixelab­ messungen in dem Quellenbild 10 und in dem Bestimmungsbild 14 gleich. Dementsprechend ist die Anzahl der Pixel in dem vergrößerten Bestimmungsbild größer als die Anzahl der Pixel in dem Quellenbild 10. Die vorliegende Erfindung liefert ein effizientes Verfahren und eine effiziente Vorrichtung zum Bestimmen der Pixelwerte in dem vergrößerten Bestimmungsbild 14.
Da das Bestimmungsbild 14 eine größere Anzahl von Pixeln aufweist als das Quellenbild 10, ist es üblich eine Umkehr- oder Rückwärtstransformationstechnik zu verwenden. Gemäß der Rückwärtstransformationstechnik wird jedes Pixel 22₁, 22₂, etc. in dem Bestimmungsbild 14 in das Quellenbild 10 trans­ formiert, und Pixelwerte werden aus dem Quellenbild 10 be­ stimmt. Die Schritte, die die Transformation betreffen, lauten wie folgt. Die Pixelorte in dem Bestimmungsbild 14 werden aus der Größe und dem Ort des Quellenbilds 10 und dem spezifizierten Vergrößerungsfaktor bestimmt. Ein Pixel in dem vergrößerten Bestimmungsbild 14 wird von dem Bestim­ mungsbildraum zu dem Quellenbildraum gemäß der folgenden Operation umkehrtransformiert:
worin x und y die Koordinaten von dem Bestimmungspixel in dem Bestimmungsbildraum darstellen, und x′ und y′ die Koor­ dinaten von einem neuabgetasteten Punkt in dem Quellenbild­ raum darstellen. Die Matrix, die die Koeffizienten a, b, d, e, g und h umfaßt, ist eine zweidimensionale affine Trans­ formationsmatrix, in der die Koeffizienten a und e die Ska­ lierung darstellen, die Koeffizienten a, b, d und e die Ro­ tation darstellen und die Koeffizienten g und h die Transla­ tion darstellen. Die zweidimensionale affine Transforma­ tionsmatrix ist Fachleuten bekannt. Die Werte von a, b, d, e, g und h werden aus der spezifizierten Skalierung, der Drehung und der Translation abgeleitet. Die Gleichung (1) wird nach x′ und y′ wie folgt aufgelöst:
x′ = (a * x) + (d * y) + g (2)
y′ = (b * x) + (e * y) + h (3)
Im allgemeinen sind die Koordinaten des neuabgetasteten Punkts x′, y′ gebrochene Werte und fallen nicht mit Pixel­ orten in dem Quellenbildraum zusammen. Der nächste Schritt liegt darin, Nachbarpixel in dem Quellenbild zu bestimmen, die nächstliegend zu dem neuabgetasteten Punkt sind, der in den Gleichungen (2) und (3) bestimmt wurde. Ein erster Nachbar wird wie folgt bestimmt:
i = floor(x′) (4)
j = floor(y′) (5)
worin i und j ganzzahlige Werte von einem Nachbarpixel in dem Quellenbild darstellen und "floor" eine C-Bibliotheks­ funktion ist, die einen Gleitkommawert in einen skalaren Wert umwandelt. Werte von einer Gruppe von Nachbarpixeln, die den neuabgetasteten Punkt umgeben, können bei einer In­ terpolationsoperation verwendet werden, um einen Pixelwert von dem neuabgetasteten Punkt in dem Bestimmungsbild zu be­ stimmen. Typischerweise wird die bilineare Interpolation oder die bikubische Interpolation verwendet. Bei der bili­ nearen Interpolation werden vier Nachbarpixel in einem 2×2- Array, das den neuabgetasteten Punkt umgibt, verwendet. Bei der bikubischen Interpolation werden 16 Nachbarpixel in ei­ nem 4×4-Array verwendet. Dann werden die Werte von dx und dy, die den Ort des neuabgetasteten Punkts relativ zu einem Basisnachbarpixel spezifizieren, wie folgt bestimmt:
dx = x′ - i (6)
dy = y′ - j (7)
worin dx die x-Achsenkomponente des Abstands zwischen dem neuabgetasteten Punkt und dem nächstliegenden Nachbarpixel darstellt, das eine kleinere x-Koordinate aufweist als der neuabgetastete Punkt, und worin dy die y-Achsenkomponente des Abstands zwischen dem neuabgetasteten Punkt und dem gleichen nächstliegenden Nachbarpixel darstellt.
Fig. 2 zeigt schematisch einen Teil von einem Quellenbild, das einen neuabgetasteten Punkt r und Nachbarpixel p11, p12, p21 und p22, die für die bilineare Interpolation verwendet werden, umfaßt, auf die als "bilineare Nachbarschaft" Bezug genommen wird. In Fig. 2 sind ferner dx, die x-Achsenkompo­ nente des Abstands zwischen dem neuabgetasteten Punkt r und dem Nachbarpixel mit einer kleineren x-Koordinate, und dy, die y-Achsenkomponente des Abstands zwischen dem neuabge­ tasteten Punkt r und dem Nachbarpixel mit einer kleineren y-Koordinate, gezeigt. Die bilineare Interpolation zum Be­ stimmen des Pixelwerts des neuabgetasteten Punkts r in dem Bestimmungsbild wird in zwei Abschnitten durchgeführt. Er­ stens, wird eine vertikale Interpolation zwischen vertikal ausgerichteten Pixeln p11 und p21 durchgeführt, um einen Zwischenpixelwert p1 in einem Abstand dy von Pixel p11 zu bestimmen. Ferner wird eine vertikale Interpolation zwischen vertikal ausgerichteten Pixeln p12 und p22 durchgeführt, um einen Zwischenpixelwert p2 in einem Abstand dy von Pixel p12 zu bestimmen. Es wird auffallen, daß die Zwischenpixelwerte p1 und p2 den gleichen y-Wert aufweisen und daher horizontal ausgerichtet sind. Als nächstes wird eine horizontale Inter­ polation zwischen den horizontal ausgerichteten Zwischen­ pixelwerten p1 und p2 durchgeführt, um den Pixelwert des neuabgetasteten Punkts r zu bestimmen. Die Werte von p1, p2 und r werden wie folgt bestimmt:
p1 = ((p21 - p11) * dy) + p11 (8)
p2 = ((p22 - p12) * dy) + p12 (9)
r = ((p2 - p1) * dx) + p1 (10)
worin p11, p21, p12 und p22 die Pixelwerte der entsprechen­ den Nachbarpixel in dem Quellenbild darstellen. Der Wert von r ist ein Pixelwert in dem Bestimmungsbild. Pixelwerte der verbleibenden Pixel in der gleichen Zeile des Bestimmungs­ bilds werden einfacher und schneller wie unten beschrieben bestimmt.
Eine schematische Darstellung von einer Nachbarschaft oder "bikubischen Nachbarschaft", die für eine bikubische Inter­ polation verwendet wird, ist in Fig. 3 gezeigt. Eine Gruppe von 16 Nachbarpixeln p00, p01, . . ., p33 wird bezüglich dem neuabgetasteten Punkt r bestimmt. Die 16 Nachbarpixel weisen eine 4×4-Konfiguration auf, und der neuabgetastete Punkt r ist in einer Region angeordnet, die durch Pixel p11, p12, p21 und p22 definiert ist. Der Wert von dx wird bezüglich zu dem nächstliegenden Nachbarpixel bestimmt, das eine kleinere x-Koordinate als der neuabgetastete Punkt r aufweist, und der Wert von dy wird bezüglich zu dem nächstliegenden Nach­ barpixel bestimmt, das eine kleinere y-Koordinate aufweist als der neuabgetastete Punkt r. Die bikubische Interpolation wird wie folgt durchgeführt. Zuerst wird eine vertikale In­ terpolation auf jede der vertikal ausgerichteten Pixelspal­ ten in der bikubischen Nachbarschaft durchgeführt, um Zwi­ schenpixelwerte p0, p1, p2 und p3 zu bestimmen, von denen jeder die gleiche y-Koordinate aufweist wie der neuabgeta­ stete Punkt r. Beispielsweise wird der Zwischenpixelwert p0 zwischen den vertikal ausgerichteten Pixeln p00, p10, p30 bestimmt. Die Zwischenpixelwerte p1, p2 und p3 werden auf die gleiche Art und Weise durch vertikale Interpolation be­ stimmt. Dann wird eine horizontale Interpolation an den ho­ rizontal ausgerichteten Zwischenpixelwerten p0, p1, p2 und p3 durchgeführt, um die Pixelwerte des neuabgetasteten Punk­ tes r zu bestimmen, der einen Pixelwert in dem Bestimmungs­ bild darstellt. Die bikubische Interpolation wird gemäß den folgenden Gleichungen durchgeführt:
cx0 = (a * dxˆ3)-(2a * dxˆ2)+(a * dx) (11)
cx1 = ((a+2)dxˆ3)-((a+3) * dxˆ2)+1 (12)
cx2 = -((a+2) * dxˆ3)+((2a+3) * dxˆ2)-(a * dx) (13)
cx3 = (a * dxˆ2)-(a * dxˆ3) (14)
cy0 = (a * dyˆ3)-(2a * dyˆ2)+(a * dy) (15)
cy1 = ((a+2)dyˆ3)-((a+3) * dyˆ2)+1 (16)
cy2 = -((a+2) * dyˆ3)+((2a+3) * dyˆ2)-(a * dy) (17)
cy3 = (a * dyˆ2)-(a * dyˆ3) (18)
p0 = (cy0 * p00)+(cy1 * p10)+(cy2 * p20)+(cy3 * p30) (19)
p1 = (cy0 * p01)+(cy1 * p11)+(cy2 * p21)+(cy3 * P31) (20)
p2 = (cy0 * p02)+(cy1 * p12)+(cy2 * p22)+(cy3 * p32) (21)
p3 = (cy0 * p03)+(cy1 * p13)+(cy2 * p23)+(cy3 * p33) (22)
r = (cx0 * p0)+(cx1 * p1)+(cx2 * p2)+(cx3 * p3) (23),
worin a der in Gleichung (1) gezeigte Matrixkoeffizient ist und cx0, cx1, cx2, cx3, cy0, cy1, cy2 und cy3 kubische Fal­ tungskoeffizienten sind. Die Variablen p00, p01, . . ., p33 sind die Pixelwerte der jeweiligen Pixeln in der bikubischen Nachbarschaft. Die Pixelwerte der verbleibenden Pixel in der gleichen Zeile des Bestimmungsbilds werden einfacher und schneller wie unten beschrieben bestimmt.
Orthogonale Vergrößerungen (Vergrößerungen ohne Drehung) er­ zeugen häufig abhängig von dem Vergrößerungsfaktor üblicher­ weise mehr als einen und oftmals vielfache neuabgetastete Punkte in der gleichen Nachbarschaft. Fig. 4 ist eine schematische Darstellung von einer bilinearen Nachbarschaft, bei der aufeinanderfolgende neuabgetastete Punkte r1, r2 und r3 in die Nachbarschaft fallen, die durch Pixel p11, p12, p21 und p22 in dem Quellenbild definiert ist. Das Bestim­ mungsbild wird vorzugsweise durch Bestimmen aufeinander­ folgender Pixelwerte in einer Pixelzeile und dann weiter­ gehend zu der nächsten Zeile erzeugt, bis das Verfahren ab­ geschlossen ist. Die neuabgetasteten Punkte r1, r2 und r3 weisen den gleichen y-Achsenwert und daher das gleiche dy auf, da sie aufeinanderfolgenden Pixeln in einer Zeile des Bestimmungsbilds entsprechen. Dementsprechend können die be­ rechneten Zwischenpixelwerte p1 und p2 für jeden neuabge­ tasteten Punkt wiederverwendet werden, der in die Nachbar­ schaft fällt, die durch die Pixel p11, p12, p21 und p22 definiert ist. Man nimmt an, daß der neuabgetastete Punkt r1 dem ersten Pixel in einer Zeile des Bestimmungsbilds ent­ spricht. Die Zwischenpixelwerte p1 und p2 werden wie oben beschrieben durch vertikale Interpolation zwischen den Pixelwerten p11 und p21 bzw. zwischen den Pixelwerten p12 und p22 berechnet. Dann wird der Wert des neuabgetasteten Punkts r1 durch horizontale Interpolation zwischen den Zwischenpixelwerten p1 und p2 unter Verwendung von dx1, das dem neuabgetasteten Punkt r1 entspricht, bestimmt. Für die neuabgetasteten Punkte r2 und r3 werden die gleichen Zwi­ schenpixelwerte p1 und p2 verwendet. Der Wert des neuab­ getasteten Punkts r2 wird durch horizontale Interpolation zwischen den Zwischenpixelwerten p1 und p2 unter Verwendung von dx2 bestimmt. Der Wert des neuabgetasteten Punkts r3 wird durch horizontale Interpolation zwischen Zwischenpixelwerten p1 und p2 unter Verwendung von dx3 be­ stimmt. Folglich werden die Zwischenwerte p1 und p2, die durch vertikale Interpolation zwischen vertikal ausgerichte­ ten Nachbarpixeln bestimmt werden, für jeden neuabgetasteten Punkt wiederverwendet, der in die Nachbarschaft fällt, die durch die Pixel p11, p12, p21 und p22 definiert ist. Die Gleichungen zum Bestimmen der neuabgetasteten Punkte r1, r2 und r3 sind im folgenden gezeigt:
p1 = ((p21 - p11) * dy) + p11 (24)
p2 = ((p22 - p12) * dy) + p12 (25)
r1 = ((p2 - p1) * dx1) + p1 (26)
r2 = ((p2 - p1) * dx2) + p1 (27)
r3 = ((p2 - p1) * dx3) + p1 (28)
Durch Wiederverwenden der Zwischenpixelwerte p1 und p2 wird der erforderliche Rechenaufwand wesentlich verringert. Ins­ besondere ist lediglich eine horizontale Interpolation für jeden neuabgetasteten Punkt, außer dem ersten, in einer ge­ gebenen Nachbarschaft erforderlich.
Zusätzlich zu der verringerten Berechnung in einer Nachbar­ schaft werden die vertikalen Interpolationen verringert, so­ wie sich das Transformationsverfahren zu benachbarten Nach­ barschaften bewegt. Nochmals bezugnehmend auf Fig. 4, weist ein neuabgetasteter Punkt r4 die Nachbarpixel p12, p13, p22 und p23 auf. Die Nachbarschaft des neuabgetasteten Punkts r4 ist benachbart zu und in der gleichen Zeile wie die Nachbar­ schaft der neuabgetasteten Punkte r1, r2 und r3. Der Zwi­ schenpixelwert p2 ist aus den Berechnungen bekannt, die in der benachbarten Nachbarschaft durchgeführt werden. Der Zwi­ schenpixelwert p3 wird durch vertikale Interpolation zwi­ schen den vertikal ausgerichteten Nachbarpixeln p13 und p23 bestimmt. Der Wert des neuabgetasteten Punkts r4 wird durch horizontale Interpolation zwischen den Zwischenpixelwerten p2 und p3 bestimmt. Folglich wird in Nachbarschaften, die der ersten Nachbarschaft in einer Pixelzeile folgen, der er­ ste neuabgetastete Punkt durch eine vertikale Interpolation und eine horizontale Interpolation bestimmt. Folgende neuab­ getastete Punkte in der gleichen Nachbarschaft werden durch eine horizontale Interpolation wie oben beschrieben be­ stimmt. Da es lediglich für den ersten neuabgetasteten Punkt in jeder Pixelzeile notwendig ist, zwei vertikale Interpola­ tionen und eine horizontale Interpolation durchzuführen, werden die erforderlichen Berechnungen wesentlich im Ver­ gleich zum Stand der Technik, der drei Interpolationen für jeden neuabgetasteten Punkt erfordert, verringert.
Ein ähnlicher Ansatz wird bei der bikubischen Interpolation verwendet. Die volle bikubische Interpolation wird lediglich für den ersten neuabgetasteten Punkt in jeder Pixelzeile er­ fordert. Für aufeinanderfolgende neuabgetastete Punkte in der gleichen Nachbarschaft (wie z. B. der Nachbarschaft, die durch die Nachbarpixel p11, p12, p21 und p22 in Fig. 3 defi­ niert ist) wird der Wert des neuabgetasteten Punkts durch eine horizontale Interpolation zwischen den Zwischenpixel­ werten p0, p1, p2 und p3 bestimmt. Die vertikale Interpola­ tionen zur Bestimmung der zwischenpixelwerte p0, p1, p2 und p3 werden wiederverwendet, um die Pixelwerte von folgenden neuabgetasteten Punkten in der gleichen Nachbarschaft zu bestimmen. Wenn der neuabgetastete Punkt in die benachbarte Nachbarschaft fällt, ist lediglich eine vertikale Interpo­ lation und eine horizontale Interpolation erforderlich. Es sei beispielsweise angenommen, daß ein neuer neuabgetasteter Punkt r5 in eine Nachbarschaft fällt, die durch die nächst­ liegenden Nachbarpixel p12, p13, p22 und p23 definiert ist. Die 16 Nachbarpixel des neuabgetasteten Punkts r5 umfassen 12 Pixel aus der vorhergehenden Nachbarschaft (ausgenommen die Pixel p00, p10, p20 und p30) und neue Pixel p04, p14, p24 und p34. Folglich ist die bikubische Nachbarschaft des neuabgetasteten Punkts r5 benachbart zu und in der gleichen Zeile wie die Nachbarschaft des neuabgetasteten Punkts r.
Der Wert des neuabgetasteten Punkts r5 wird wie folgt be­ stimmt. Ein Zwischenpixelwert p4 wird durch vertikale Inter­ polation zwischen den vertikal ausgerichteten Pixelwerten p04, p14, p24 und p34 bestimmt. Der Wert des neuabgetasteten Punkts r5 wird durch horizontale Interpolation zwischen den Zwischenpixelwerten p1, p2, p3 und p4 bestimmt. Die Zwi­ schenpixelwerte p1, p2 und p3 werden aus vorhergehenden In­ terpolationen wiederverwendet. Folglich erfordern neuabgeta­ stete Punkte in der gleichen Nachbarschaft lediglich eine horizontale Interpolation. Der erste neuabgetastete Punkt in einer benachbarten Nachbarschaft erfordert eine vertikale Interpolation und eine horizontale Interpolation. Im Gegen­ satz dazu erfordern bekannte Techniken fünf Interpolationen für jedes Pixel in dem Bestimmungsbild. Es wurden durch­ schnittliche Leistungsverbesserungen von 80% für die bili­ neare Interpolation und von 400% für die bikubische Interpo­ lation gemessen.
Ein Blockdiagramm eines Beispiels eines Computersystems 100, das zum Vergrößern digitaler Bilder gemäß der vorliegenden Erfindung geeignet ist, ist in Fig. 5 gezeigt. Das Computer­ system 100 umfaßt eine zentrale Verarbeitungseinheit (CPU; CPU = Central Processing Unit) 110, eine Plattenspeicherein­ heit 120, eine Anzeige 130 zum Anzeigen von Quellenbildern von Objekten und vergrößerten Bestimmungsbildern von Objek­ ten und ein Eingabegerät 140. Der Bildspeicher oder Rahmen­ puffer 118 kann beispielsweise das Modell HCRX-24 sein, das durch Hewlett-Packard Company hergestellt wird. Die Platten­ speichereinheit 120 ist typischerweise unter Verwendung von einem oder mehreren Festplattenlaufwerken implementiert. Das Eingabegerät 140 kann unter Verwendung einer Standardtasta­ tur und eines Zeigegeräts, wie z. B. einer Maus oder einem Trackball, implementiert sein.
Die CPU 110 umfaßt einen Prozessor 112, einen Speicher 114 und einen Bildspeicher 118 zum Speichern eines Bilds, das auf der Anzeige 130 angezeigt werden soll. Der Prozessor 112 liefert die primären Verarbeitungsfähigkeiten des Computer­ systems 100 und kann beispielsweise unter Verwendung eines Modells C110, das durch Hewlett-Packard Company hergestellt wird, implementiert sein. Der Speicher 114 wird zur Speiche­ rung von Programmbefehlen und zur Speicherung von Ergeb­ nissen von Berechnungen, die durch den Prozessor 112 durch­ geführt werden, verwendet. Bei einem bevorzugten Aus­ führungsbeispiel umfaßt der Speicher 64 Megabit RAM. Der Bildspeicher 118 ist ein sehr schnelles Pufferspeicher­ bauelement, das zum Speichern eines Datenblocks oder Daten­ rahmens für die Anzeige 130 geeignet ist. Die Software­ routinen zum Durchführen der Bildvergrößerung gemäß der Erfindung können unter Verwendung der "C"-Programmiersprache implementiert sein und können sich in dem Speicher 114 und/oder der Plattenspeichereinheit 120 befinden. Das Com­ puterprogramm zum Durchführen der Bildvergrößerung gemäß der Erfindung kann auf einem Computer-lesbaren Medium, wie z. B. einer magnetischen Platte, einer Kompaktplatte oder einem magnetischen Band, gespeichert sein und kann unter Verwen­ dung eines geeigneten peripheren Geräts in das Computer­ system 100 geladen werden, wie es in der Technik bekannt ist. Es ist offensichtlich, daß die Hardwarekomponenten, die oben bezeichnet wurden, lediglich als Beispiel angegeben wurden, und daß die Erfindung in einer Vielzahl von unter­ schiedlichen Computersystemen implementiert sein kann.
Das Verfahren zum Erzeugen eines vergrößerten Bestimmungs­ bilds aus einem Quellenbild gemäß der Erfindung ist in dem Flußdiagramm der Fig. 6A-6C dargestellt. Ein digitales Quellenbild von einem Objekt wird einem Schritt 190 erhal­ ten. Das digitale Quellenbild kann ein digitales Röntgen­ strahlbild, ein MRI-Bild, ein Digitalfilmbild, ein Digital­ videobild, ein Satellitenbild oder jegliches andere Bild von einem Objekt in digitalem Format sein. In dem Fall eines Schwarzweißbildes wird jedes Pixel durch ein einzelnes digi­ tales Wort mit einer vorbestimmten Anzahl von Bit, wie z. B. 8 Bit, dargestellt. Im Fall eines Farbbildes wird jedes Pi­ xel durch drei digitale Worte, die Rot-, Grün- und Blauwer­ ten entsprechen, dargestellt, und die Operationen, die im folgenden beschrieben sind, werden für jeden Farbwert durch­ geführt. Das Quellenbild wird in ein räumliches Transforma­ tionssystem, wie in Fig. 5 gezeigt, geladen und oben in ei­ nem Schritt 192 beschrieben. Das Transformationssystem em­ pfängt bei einem Schritt 194 einen Vergrößerungsfaktor. Die Vergrößerung kann auf das gesamte oder auf einen Teil des Quellenbilds durchgeführt werden. Pixelorte in dem ver­ größerten Bestimmungsbild werden auf der Grundlage des Quel­ lenbildorts, der Quellenbildgröße und des erforderlichen Vergrößerungsfaktors in einem Schritt 200 bestimmt. Ein er­ stes Pixel in einer Zeile des Bestimmungsbilds wird in einen neuabgetasteten Punkt in dem Quellenbild unter Verwendung der Gleichungen (2) und (3) in einem Schritt 202 trans­ formiert, und Nachbarpixel des neuabgetasteten Punkts werden in einem Schritt 204 bestimmt. Wie oben beschrieben werden vier Nachbarpixel für die bilineare Interpolation und 16 Nachbarpixel für die bikubische Interpolation verwendet. Die vertikalen Interpolationen zwischen den vertikal ausge­ richteten Nachbarpixeln werden in einem Schritt 206 durchge­ führt, um die Zwischenpixelwerte zu bestimmen. Die horizon­ talen Interpolationen zwischen den Zwischenpixelwerten wer­ den in einem Schritt 208 durchgeführt, um die Werte von dem ersten Pixel in dem Bestimmungsbild zu bestimmen. Die Inter­ polationen, die in den Schritten 206 und 208 durchgeführt werden, können, wie oben beschrieben, bilineare Inter­ polationen oder bikubische Interpolationen sein. Nachdem der erste Pixelwert in einer Zeile bestimmt ist, wird der erste neuabgetastete als ein vorhergehender Punkt in einem Schritt 210 bestimmt, und der Vorgang inkrementiert in einem Schritt 212 zu dem benachbarten Pixel in der gleichen Zeile des Be­ stimmungsbilds.
In einem Schritt 220 wird das benachbarte Pixel in der glei­ chen Zeile des vergrößerten Bestimmungsbilds (das aktuelle Pixel) in einen neuen neuabgetasteten Punkt in dem Quellen­ bild unter Verwendung der obigen Gleichungen (2) und (3) transformiert. In einem Schritt 222 wird eine Bestimmung durchgeführt, ob der aktuelle neuabgetastete Punkt die glei­ chen Nachbarpixel wie der vorhergehende neuabgetastete Punkt aufweist. Dies kann durch untersuchen des Werts von i in der Gleichung (4) bestimmt werden, der das nächstliegende Pixel in dem Quellenbild darstellt, das eine kleinere x-Koordinate als der aktuelle neuabgetastete Punkt aufweist. Wenn der Wert von i des aktuellen neuabgetasteten Punkts gleich dem Wert i des vorhergehenden neuabgetasteten Punkts ist, weisen die zwei neuabgetasteten Punkte die gleichen Nachbarpixel auf. Wenn der Wert von i für den aktuellen neuabgetasteten Punkt größer als der Wert von i für den vorhergehenden neuabgetasteten Punkt ist, befindet sich der aktuelle neu­ abgetastete Punkt in einer benachbarten Nachbarschaft. Wenn der aktuelle neuabgetastete Punkt die gleichen Nachbarpixel wie der vorhergehende neuabgetastete Punkt aufweist, wird eine horizontale Interpolation zwischen den Zwischenpixel­ werten des vorhergehenden Punkts in einem Schritt 224 durch­ geführt, um den Wert des aktuellen Pixels in dem Bestim­ mungsbild zu liefern. Wenn der aktuelle neuabgetastete Punkt nicht die gleichen Nachbarpixel aufweist wie der vorherge­ hende Punkt und sich daher in der benachbarten Nachbarschaft befindet, wird eine vertikale Interpolation zwischen einem aktuellen Satz von vertikal ausgerichteten Nachbarpixel­ werten durchgeführt, um einen aktuellen Zwischenpixelwert in einem Schritt 226 zu liefern. Dann wird eine horizontale Interpolation zwischen dem aktuellen Zwischenpixelwert und einem oder mehreren vorhergehenden Zwischenpixelwerten in einem Schritt 228 durchgeführt, um einen Wert des aktuellen Pixels in dem Bestimmungsbild zu liefern. Wenn die bilineare Interpolation verwendet wird, wird der Wert des aktuellen Pixels durch eine Interpolation zwischen dem aktuellen Zwischenpixelwert und einem vorhergehenden zwischenpixelwert bestimmt, wie dies oben in Verbindung mit Fig. 4 beschrieben ist. Wenn die bikubische Interpolation verwendet wird, wird der Wert des aktuellen Pixels durch Interpolation zwischen dem aktuellen Zwischenpixelwert und drei der vier vorher­ gehenden Zwischenpixelwerten bestimmt, wie dies oben in Ver­ bindung mit Fig. 3 beschrieben ist.
In einem Schritt 240 wird eine Bestimmung durchgeführt, ob das aktuelle Pixel das letzte Pixel in einer Zeile des Be­ stimmungsbilds ist. Wenn das aktuelle Pixel nicht das letzte Pixel in einer Zeile ist, wird der aktuelle neuabgetastete Punkt als der vorhergehende Punkt in einem Schritt 242 be­ zeichnet, und das Verfahren inkrementiert in einem Schritt 244 zu dem benachbarten Pixel in der gleichen Zeile. Dann kehrt das Verfahren zu einem Schritt 220 zurück und das aktuelle Pixel in der Zeile wird verarbeitet, um den Wert desselben in dem Bestimmungsbild zu bestimmen. Wenn das aktuelle Pixel das letzte Pixel in einer Zeile ist, wird in einem Schritt 246 eine Bestimmung durchgeführt, ob die letzte Zeile in dem Bestimmungsbild verarbeitet wurde. Wenn die aktuelle Zeile nicht die letzte Zeile in dem Bild ist, inkrementiert das Verfahren in einem Schritt 248 zu der nächsten Zeile des Bestimmungsbilds. Das Verfahren kehrt zu Schritt 202 zurück und es wird eine neue Zeile auf die oben beschriebene Art und Weise verarbeitet. Nach der Verarbei­ tung der letzten Zeile in dem Bild, ist die Erzeugung des Bestimmungsbilds abgeschlossen.
Das Interpolationsverfahren der Erfindung wurde als eine Folge beschrieben, die eine vertikale Interpolation zum Bestimmen von zwischenpixelwerten gefolgt von einer horizon­ talen Interpolation zum Bestimmen von endgültigen Pixel­ werten umfaßt. Diese Folge ist für die typische Situation anwendbar, bei der Pixelwerte für aufeinanderfolgende Pixel in einer Zeile in aufeinanderfolgenden Speicherorten gespei­ chert werden, und bei der Pixel durch horizontales Schreiten quer über eine Zeile bestimmt werden. Diese Folge ermöglicht die Wiederverwendung von vertikalen Interpolationsergebnis­ sen beim Bestimmen aufeinanderfolgender Pixelwerte während des horizontalen Schreitens. Allgemeiner geht mit der Er­ findung zunächst eine Interpolation senkrecht zu der Rich­ tung des Schreitens gefolgt von einer Interpolation parallel zu der Richtung des Schreitens zwischen den Punkten einher, derart, daß die Ergebnisse der senkrechten Interpolationen wiederverwendet werden können.

Claims (10)

1. Verfahren zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum, wobei das Bestim­ mungsbild und das Quellenbild jeweils einen zweidimen­ sionalen Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) in dem Quellenbild einen Wert aufweist, der das Objekt darstellt, wobei das Verfahren folgende Schritte aufweist:
Transformieren (202, 220) jedes Pixels (22₁, 22₂) in dem Bestimmungsbild (14) in einen entsprechenden neu­ abgetasteten Punkt in dem Quellenbildraum;
Bestimmen eines Werts eines ersten Pixels in jeder Zeile des Bestimmungsbilds (14) durch vertikale Inter­ polation (206) zwischen vertikal ausgerichteten Nach­ barpixeln des entsprechenden neuabgetasteten Punkts, um Zwischenpixelwerte zu liefern, gefolgt von einer hori­ zontalen Interpolation (208) zwischen den Zwischen­ pixelwerten, um die Werte des ersten Pixels zu liefern; und
Bestimmen eines Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das die gleichen Nachbar­ pixel wie der vorhergehende neuabgetastete Punkt (222) aufweist, durch eine einzelne horizontale Interpolation (224) zwischen den Zwischenpixelwerten des vorhergehen­ den neuabgetasteten Punkts.
2. Verfahren zum Erzeugen von Pixelwerten gemäß Anspruch 1, das ferner folgenden Schritt aufweist:
Bestimmen des Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das nicht die gleichen Nachbarpixel wie der vorhergehende abgetastete Punkt aufweist, durch eine einzelne vertikale Interpolation zwischen einem folgenden Satz von vertikal ausgerichte­ ten Nachbarpixeln, um einen folgenden Zwischenpixelwert zu liefern, gefolgt von einer einzelnen horizontalen Interpolation zwischen dem folgenden Zwischenpixelwert und einem oder mehreren der vorhergehenden Zwischenpi­ xelwerte, um den Wert des folgenden Pixels zu liefern.
3. Verfahren zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum, wobei das Bestim­ mungsbild und das Quellenbild jeweils ein zweidimen­ sionales Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) in dem Quellenbild einen Wert aufweist, der das Objekt darstellt, wobei das Verfahren folgende Schritte aufweist:
  • (a) Bestimmen eines Werts eines ersten Pixels in jeder Zeile des Bestimmungsbilds durch Transformieren (202) des ersten Pixels in einen ersten neuabge­ tasteten Punkt in dem Quellenbildraum und durch vertikale Interpolation (206) zwischen vertikal ausgerichteten Nachbarpixeln des ersten neuabge­ tasteten Punkts, um Zwischenpixelwerte zu liefern, gefolgt von einer horizontalen Interpolation (208) zwischen den Zwischenpixelwerten, um den Wert des ersten Pixels in dem Bestimmungsbild zu liefern;
  • (b) Bestimmen eines Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das die gleichen Nachbarpixel aufweist wie ein vorhergehender neu­ abgetasteter Punkt, durch Transformieren (220) des folgenden Pixels in einen folgenden neuabgetaste­ ten Punkt in dem Quellenbildraum und durch eine einzelne horizontale Interpolation (224) zwischen den Zwischenpixelwerten des vorhergehenden neuabgetasteten Punkts; und
  • (c) Bestimmen des Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das unterschied­ liche Nachbarpixel aufweist, aus einem vorherge­ henden neuabgetasteten Punkt durch Transformieren (220) des folgenden Pixels in einen folgenden neu­ abgetasteten Punkt in dem Quellenbildraum und durch eine einzelne vertikale Interpolation (226) zwischen einem Satz von vertikal ausgerichteten Nachbarpixeln des folgenden neuabgetasteten Punkts, um einen folgenden Zwischenpixelwert zu liefern, gefolgt von einer einzelnen horizontalen Interpolation (228), zwischen dem folgenden Zwi­ schenpixelwert und einem oder mehreren vorherge­ henden Zwischenpixelwerte, um den Wert des folgen­ den neuabgetasteten Punkts in dem Bestimmungsbild zu liefern.
4. Verfahren zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum, wobei das Be­ stimmungsbild und das Quellenbild jeweils ein zwei­ dimensionales Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) des Quellenbilds einen Wert aufweist, der das Objekt darstellt, wobei das Verfahren folgende Schritte aufweist:
  • (a) Bestimmen (200) von Pixelorten des Bestimmungs­ bilds (14) in dem Bestimmungsbildraum aus einem Ort und einer Größe des Quellenbilds und aus einem Vergrößerungsfaktor;
  • (b) Transformieren (202) eines ersten Pixels in einer Zeile des Bestimmungsbilds (14) in einen neuabge­ tasteten Punkt in dem Quellenbildraum;
  • (c) Bestimmen (204) von Nachbarpixeln des ersten neu­ abgetasteten Punkts in dem Quellenbildraum;
  • (d) Interpolieren (206) zwischen vertikal ausgerichte­ ten Nachbarpixeln des Quellenbildraums, um hori­ zontal ausgerichtete Zwischenpixelwerte zu lie­ fern;
  • (e) Interpolieren (208) zwischen den horizontal aus­ gerichteten Zwischenpixelwerten, um einen ersten Wert des ersten Pixels in dem Bestimmungsbild zu liefern;
  • (f) Bezeichnen (210) des ersten Pixels als ein vorher­ gehendes Pixel und des ersten neuabgetasteten Punkts als einen vorhergehenden Punkt, und Inkre­ mentieren (212) zu einem aktuellen Pixel in der Zeile, das benachbart zu dem vorhergehenden Pixel ist;
  • (g) Transformieren (220) des aktuellen Pixels in dem Bestimmungsbild in einen aktuellen neuabgetasteten Punkt in dem Quellenbildraum;
  • (h) Bestimmen (222), ob der aktuelle neuabgetastete Punkt in dem Quellenbildraum die gleichen Nachbar­ pixel wie der vorhergehende Punkt aufweist;
  • (i) wenn der aktuelle neuabgetastete Punkt die glei­ chen Nachbarpixel aufweist wie der vorhergehende Punkt, Interpolieren (224) zwischen den horizontal ausgerichteten Zwischenpixelwerten des vorherge­ henden Punkts, um einen aktuellen Wert des aktuel­ len neuabgetasteten Punkts in dem Bestimmungsbild zu liefern; und
  • (j) wenn der aktuelle neuabgetastete Punkt nicht die gleichen Nachbarpixel wie der vorhergehende Punkt aufweist, Interpolieren (226) zwischen einem Satz von vertikal ausgerichteten Nachbarpixeln des ak­ tuellen neuabgetasteten Punkts, um einen aktuellen Zwischenpixelwert zu liefern, und Interpolieren (228) zwischen dem aktuellen Zwischenpixelwert und mindestens einem der Zwischenpixelwerte, um den aktuellen Wert des aktuellen neuabgetasteten Punk­ tes in dem Bestimmungsbild zu liefern.
5. Verfahren gemäß Anspruch 4, das ferner folgende Schrit­ te aufweist:
  • (k) Wiederholen der Schritte (g)-(j) für jedes ver­ bleibende Pixel in der Zeile des Bestimmungsbilds, und
  • (l) Wiederholen der Schritte (b)-(k) für jede ver­ bleibende Zeile des Bestimmungsbilds.
6. Vorrichtung zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum, wobei das Bestim­ mungsbild und das Quellenbild jeweils ein zweidimensio­ nales Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) des Quellenbilds einen Wert aufweist, der das Objekt darstellt, mit folgenden Merkmalen:
einer Plattenspeichereinheit (120) zum Speichern der Werte der Pixel in dem Quellenbild;
einem digitalen Computer (110) zum Verarbeiten der Werte des Quellenbilds in der Plattenspeichereinheit, wobei der digitale Computer folgende Merkmale aufweist:
eine Einrichtung zum Bestimmen (200) von Pixelorten des Bestimmungsbilds (14) in dem Bestimmungsbildraum aus einem Ort und einer Größe des Quellenbilds und einem Vergrößerungsfaktor;
eine Einrichtung zum Transformieren (202, 220) jedes Pixels in dem Bestimmungsbild in einen entsprechenden neuabgetasteten Punkt in dem Quellenbildraum;
eine Einrichtung zum Bestimmen eines Werts eines ersten Pixels in jeder Zeile des Bestimmungsbilds (14) durch vertikale Interpolation (206) zwischen vertikal ausge­ richteten Nachbarpixeln des entsprechenden neuabgeta­ steten Punkts, um Zwischenpixelwerte zu liefern, ge­ folgt von einer horizontalen Interpolation (208) zwi­ schen den Zwischenpixelwerten, um den Wert des ersten Pixels zu liefern; und
eine Einrichtung zum Bestimmen eines Werts jedes fol­ genden Pixels in jeder Zeile des Bestimmungsbilds, das das gleiche Nachbarpixel wie der vorhergehende neuab­ getastete Punkt (222) aufweist, durch eine einzelne horizontale Interpolation (224) zwischen den Zwischen­ pixelwerten des vorhergehenden neuabgetasteten Punkts.
7. Vorrichtung gemäß Anspruch 6, die ferner folgende Merk­ male aufweist:
eine Einrichtung zum Bestimmen des Werts jedes fol­ genden Pixels in jeder Zeile des Bestimmungsbilds, das nicht das gleiche Nachbarpixel aufweist wie der vorher­ gehende abgetastete Punkt, durch eine einzelne verti­ kale Interpolation zwischen einem folgenden Satz von vertikal ausgerichteten Nachbarpixeln, um einen fol­ genden Zwischenpixelwert zu liefern, gefolgt von einer einzelnen horizontalen Interpolation zwischen dem fol­ genden Zwischenpixelwert und einem oder mehreren der vorhergehenden Zwischenpixelwerte, um den Wert des fol­ genden Pixels zu liefern.
8. Computer-lesbares Medium, das mit einem Computerpro­ gramm zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum codiert ist, wobei das Bestimmungsbild und das Quellenbild jeweils ein zweidimensionales Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) in dem Quellenbild einen Wert auf­ weist, der das Objekt darstellt, wobei das Computer­ programm folgende Computerbefehle aufweist:
  • (a) Bestimmen eines Werts eines ersten Pixels in jeder Zeile des Bestimmungsbilds (14) durch Trans­ formieren (202) des ersten Pixels in einen ersten neuabgetasteten Punkt in dem Quellenbildraum und durch vertikale Interpolation (206) zwischen ver­ tikal ausgerichteten Nachbarpixeln des ersten neu­ abgetasteten Punkts, um einen Zwischenpixelwert zu schaffen, gefolgt von einer horizontalen Inter­ polation (208) zwischen den Zwischenpixelwerten, um den Wert des ersten Pixels in dem Bestimmungs­ bild zu liefern; und
  • (b) Bestimmen eines Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das die gleichen Nachbarpixel wie der vorhergehende neuabgetastete Punkt aufweist, durch Transformieren (220) des folgenden Pixels in einen folgenden neuabgetaste­ ten Punkt in dem Quellenbild, und durch eine ein­ zelne horizontale Interpolation (224) zwischen dem Zwischenpixelwert des vorhergehenden neuabgetaste­ ten Punkts.
9. Computer-lesbares Medium gemäß Anspruch 8, bei dem das Computerprogramm ferner Computerbefehle zum Bestimmen des Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds aufweist, das unterschiedliche Nach­ barpixel aufweist, aus einem vorhergehenden neuabge­ tasteten Punkt durch Transformieren des folgenden Pi­ xels in einen folgenden neuabgetasteten Punkt in dem Quellenbildraum und durch eine einzelne vertikale In­ terpolation zwischen einem Satz von vertikal ausge­ richteten Nachbarpixeln des folgenden neuabgetasteten Punkts, um einen folgenden Zwischenpixelwert zu lie­ fern, gefolgt von einer einzelnen horizontalen Inter­ polation zwischen dem folgenden Zwischenpixelwert und einem oder mehreren vorhergehenden Zwischenpixelwerten, um den Wert des folgenden neuabgetasteten Punkts in dem Bestimmungsbild zu liefern.
10. Verfahren zum Erzeugen von Pixelwerten in einem ver­ größerten Bestimmungsbild (14) eines Objekts (12) in einem Bestimmungsbildraum aus einem Quellenbild (10) des Objekts in einem Quellenbildraum, wobei das Bestim­ mungsbild und das Quellenbild jeweils ein zweidimensio­ nales Pixelarray aufweisen, und jedes der Pixel (20₁, 20₂) in dem Quellenbild einen Wert aufweist, der das Objekt darstellt, wobei das Verfahren folgende Schritte aufweist:
Transformieren (202, 220) jedes Pixels (22₁, 22₂) in dem Bestimmungsbild in einen entsprechenden neuabgeta­ steten Punkt in dem Quellenbildraum durch Verarbeiten des Pixels in dem Bestimmungsbild in einer ersten Rich­ tung relativ zu dem Array;
Bestimmen eines Werts eines ersten Pixels in jeder Zeile des Bestimmungsbilds durch Interpolation (206) zwischen den Nachbarpixeln des entsprechenden neuabge­ tasteten Punkts, die senkrecht zu der ersten Richtung ausgerichtet sind, um Zwischenpixelwerte zu liefern, gefolgt durch eine Interpolation (208) zwischen den Zwischenpixelwerten, die parallel zu der ersten Rich­ tung ausgerichtet sind, um den Wert des ersten Pixels zu liefern; und
Bestimmen eines Werts jedes folgenden Pixels in jeder Zeile des Bestimmungsbilds, das das gleiche Nachbar­ pixel wie ein vorhergehender neuabgetasteter Punkt (222) aufweist, durch eine einzelne Interpolation (224) zwischen den Zwischenpixelwerten des vorhergehenden neuabgetasteten Punkts, die parallel zu der ersten Richtung ausgerichtet sind.
DE19715491A 1996-05-31 1997-04-14 Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung Withdrawn DE19715491A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/656,500 US5847714A (en) 1996-05-31 1996-05-31 Interpolation method and apparatus for fast image magnification

Publications (1)

Publication Number Publication Date
DE19715491A1 true DE19715491A1 (de) 1997-12-04

Family

ID=24633298

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19715491A Withdrawn DE19715491A1 (de) 1996-05-31 1997-04-14 Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung

Country Status (4)

Country Link
US (1) US5847714A (de)
JP (1) JP3276886B2 (de)
DE (1) DE19715491A1 (de)
GB (1) GB2313727B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10009536A1 (de) * 2000-02-29 2001-09-06 Cgk Comp Ges Konstanz Mbh Verfahren und Vorrichtung zur Transformation von Bildern in zwei Koordinatensystemen

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3747523B2 (ja) * 1996-07-02 2006-02-22 ソニー株式会社 画像処理装置および処理方法
JP3865165B2 (ja) 1996-10-30 2007-01-10 株式会社沖データ 画像データの拡大/縮小方法
US6631216B2 (en) 1997-07-31 2003-10-07 Canon Kabushiki Kaisha Image interpolation apparatus
US7630006B2 (en) 1997-10-09 2009-12-08 Fotonation Ireland Limited Detecting red eye filter and apparatus using meta-data
US7042505B1 (en) 1997-10-09 2006-05-09 Fotonation Ireland Ltd. Red-eye filter method and apparatus
US7352394B1 (en) * 1997-10-09 2008-04-01 Fotonation Vision Limited Image modification based on red-eye filter analysis
US7738015B2 (en) 1997-10-09 2010-06-15 Fotonation Vision Limited Red-eye filter method and apparatus
JP2991180B2 (ja) * 1998-01-28 1999-12-20 日本電気株式会社 画素補間方法及び画素補間回路並びに画素補間プログラムを記録した記録媒体
US6381375B1 (en) * 1998-02-20 2002-04-30 Cognex Corporation Methods and apparatus for generating a projection of an image
US6236766B1 (en) * 1998-09-11 2001-05-22 General Electric Company Method and apparatus for zooming digital images
US6687402B1 (en) 1998-12-18 2004-02-03 Cognex Corporation Machine vision methods and systems for boundary feature comparison of patterns and images
GB2354130B (en) * 1999-09-09 2002-05-15 Inventec Electronics Method for enlarging/reducing digital images
US6331902B1 (en) 1999-10-14 2001-12-18 Match Lab, Inc. System and method for digital color image processing
US6754397B1 (en) 2000-03-09 2004-06-22 Sharp Laboratories Of America, Inc. Method, software and devices for designing a scalable image (FIR) filter with integer coefficients
US6697539B1 (en) 2000-03-31 2004-02-24 Sharp Laboratories Of America, Inc. Image scaling by exact 2D implicit polynomials
US6738498B1 (en) * 2000-08-01 2004-05-18 Ge Medical Systems Global Technology Company, Llc Method and apparatus for tissue dependent filtering for image magnification
US6879721B2 (en) 2001-01-02 2005-04-12 Hewlett-Packard Development Company, L.P. Pixel processing system for image production
GB2371459B (en) * 2001-01-19 2005-05-04 Pixelfusion Ltd Image scaling
KR20040005905A (ko) * 2001-03-30 2004-01-16 코닥 폴리크룸 그래픽스 엘엘씨 소프트 프루핑을 위한 이미지 자동 선명화 처리 방법,시스템 및 컴퓨터 판독 매체
CN100539630C (zh) * 2003-04-02 2009-09-09 伊斯曼柯达公司 确保软打样系统的精确测量
US7689009B2 (en) 2005-11-18 2010-03-30 Fotonation Vision Ltd. Two stage detection for photographic eye artifacts
US7536036B2 (en) 2004-10-28 2009-05-19 Fotonation Vision Limited Method and apparatus for red-eye detection in an acquired digital image
US8254674B2 (en) 2004-10-28 2012-08-28 DigitalOptics Corporation Europe Limited Analyzing partial face regions for red-eye detection in acquired digital images
US7920723B2 (en) 2005-11-18 2011-04-05 Tessera Technologies Ireland Limited Two stage detection for photographic eye artifacts
US7970182B2 (en) 2005-11-18 2011-06-28 Tessera Technologies Ireland Limited Two stage detection for photographic eye artifacts
US8036458B2 (en) 2007-11-08 2011-10-11 DigitalOptics Corporation Europe Limited Detecting redeye defects in digital images
US7587085B2 (en) 2004-10-28 2009-09-08 Fotonation Vision Limited Method and apparatus for red-eye detection in an acquired digital image
US7792970B2 (en) 2005-06-17 2010-09-07 Fotonation Vision Limited Method for establishing a paired connection between media devices
US8170294B2 (en) 2006-11-10 2012-05-01 DigitalOptics Corporation Europe Limited Method of detecting redeye in a digital image
US7574016B2 (en) 2003-06-26 2009-08-11 Fotonation Vision Limited Digital image processing using face detection information
US9412007B2 (en) 2003-08-05 2016-08-09 Fotonation Limited Partial face detector red-eye filter method and apparatus
US8520093B2 (en) 2003-08-05 2013-08-27 DigitalOptics Corporation Europe Limited Face tracker and partial face tracker for red-eye filter method and apparatus
US7437018B1 (en) * 2003-09-26 2008-10-14 Adobe Systems Incorporated Image resampling using variable quantization bins
JP4774736B2 (ja) * 2004-12-27 2011-09-14 カシオ計算機株式会社 画像拡大装置および撮像装置
US7613363B2 (en) * 2005-06-23 2009-11-03 Microsoft Corp. Image superresolution through edge extraction and contrast enhancement
US8111904B2 (en) 2005-10-07 2012-02-07 Cognex Technology And Investment Corp. Methods and apparatus for practical 3D vision system
US7599577B2 (en) 2005-11-18 2009-10-06 Fotonation Vision Limited Method and apparatus of correcting hybrid flash artifacts in digital images
EP1987475A4 (de) 2006-02-14 2009-04-22 Fotonation Vision Ltd Automatische erkennung und korrektur von fehlern des blitzes mit rote-augen-effekt
DE602007012246D1 (de) 2006-06-12 2011-03-10 Tessera Tech Ireland Ltd Fortschritte bei der erweiterung der aam-techniken aus grauskalen- zu farbbildern
US8162584B2 (en) 2006-08-23 2012-04-24 Cognex Corporation Method and apparatus for semiconductor wafer alignment
US8055067B2 (en) 2007-01-18 2011-11-08 DigitalOptics Corporation Europe Limited Color segmentation
WO2008109708A1 (en) 2007-03-05 2008-09-12 Fotonation Vision Limited Red eye false positive filtering using face location and orientation
US8503818B2 (en) 2007-09-25 2013-08-06 DigitalOptics Corporation Europe Limited Eye defect detection in international standards organization images
US8212864B2 (en) 2008-01-30 2012-07-03 DigitalOptics Corporation Europe Limited Methods and apparatuses for using image acquisition data to detect and correct image defects
US8081254B2 (en) 2008-08-14 2011-12-20 DigitalOptics Corporation Europe Limited In-camera based method of detecting defect eye with high accuracy
US8600188B2 (en) 2010-09-15 2013-12-03 Sharp Laboratories Of America, Inc. Methods and systems for noise reduction and image enhancement
US8588535B2 (en) 2010-09-15 2013-11-19 Sharp Laboratories Of America, Inc. Methods and systems for estimation of compression noise
US8538193B2 (en) 2010-09-28 2013-09-17 Sharp Laboratories Of America, Inc. Methods and systems for image enhancement and estimation of compression noise
US8532429B2 (en) * 2010-09-28 2013-09-10 Sharp Laboratories Of America, Inc. Methods and systems for noise reduction and image enhancement involving selection of noise-control parameter
US10222932B2 (en) 2015-07-15 2019-03-05 Fyusion, Inc. Virtual reality environment based manipulation of multilayered multi-view interactive digital media representations
US11006095B2 (en) 2015-07-15 2021-05-11 Fyusion, Inc. Drone based capture of a multi-view interactive digital media
US10147211B2 (en) * 2015-07-15 2018-12-04 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US10242474B2 (en) 2015-07-15 2019-03-26 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US11095869B2 (en) 2015-09-22 2021-08-17 Fyusion, Inc. System and method for generating combined embedded multi-view interactive digital media representations
US11783864B2 (en) 2015-09-22 2023-10-10 Fyusion, Inc. Integration of audio into a multi-view interactive digital media representation
US11202017B2 (en) 2016-10-06 2021-12-14 Fyusion, Inc. Live style transfer on a mobile device
EP3315906B1 (de) * 2016-10-27 2023-05-31 Leica Geosystems AG Verfahren zur verarbeitung von scandaten
US10437879B2 (en) 2017-01-18 2019-10-08 Fyusion, Inc. Visual search using multi-view interactive digital media representations
US10313651B2 (en) 2017-05-22 2019-06-04 Fyusion, Inc. Snapshots at predefined intervals or angles
US11069147B2 (en) 2017-06-26 2021-07-20 Fyusion, Inc. Modification of multi-view interactive digital media representation
US10592747B2 (en) 2018-04-26 2020-03-17 Fyusion, Inc. Method and apparatus for 3-D auto tagging
CN111461991B (zh) * 2020-04-09 2022-04-26 武汉联影医疗科技有限公司 图像绘制方法、装置、计算机设备和存储介质
US11756510B2 (en) * 2020-06-10 2023-09-12 Google Llc Systems, devices, and methods for assembling image data for display

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2172167B (en) * 1985-03-07 1988-06-15 Sony Corp Video signal processing
US4988984A (en) * 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system
JPH04500419A (ja) * 1989-06-16 1992-01-23 イーストマン・コダック・カンパニー ディジタル画像補間器
US5113455A (en) * 1990-02-27 1992-05-12 Eastman Kodak Company Digital image scaling by stepwise pixel movement
US5335296A (en) * 1991-04-30 1994-08-02 Optigraphics Corporation Process for high speed rescaling of binary images
US5475803A (en) * 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
US5384904A (en) * 1992-12-08 1995-01-24 Intel Corporation Image scaling using real scale factors
CA2129092C (en) * 1993-10-04 1999-10-19 Leon C. Williams Image interpolation apparatus
DE4407101A1 (de) * 1994-03-03 1995-09-14 Siemens Ag Verfahren zur Formatkonversion von in einem ersten Bildpunktraster vorliegenden Bildsequenzen in ein zweites Bildpunktraster
US5574572A (en) * 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
GB2304014B (en) * 1995-07-25 1997-08-20 Winbond Electronics Corp Method and apparatus for uniformly scaling a digital image

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10009536A1 (de) * 2000-02-29 2001-09-06 Cgk Comp Ges Konstanz Mbh Verfahren und Vorrichtung zur Transformation von Bildern in zwei Koordinatensystemen

Also Published As

Publication number Publication date
GB9709327D0 (en) 1997-06-25
US5847714A (en) 1998-12-08
JP3276886B2 (ja) 2002-04-22
GB2313727B (en) 2000-04-12
JPH1055437A (ja) 1998-02-24
GB2313727A (en) 1997-12-03

Similar Documents

Publication Publication Date Title
DE19715491A1 (de) Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung
DE3486494T2 (de) Graphisches Musterverarbeitungsgerät
DE3629984C2 (de)
DE4005492C2 (de) Bildcodierverfahren
DE3515037C2 (de)
DE102011056970A1 (de) Rasterausgabe von rotierten, interpolierten Pixeln, die für digitale Bildstabilisierung optimiert ist
DE2340597A1 (de) Bildverarbeitungsanordnung
DE3804938A1 (de) Bildverarbeitungseinrichtung
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE3339178A1 (de) Graphisches anzeigesystem
DE3836640C2 (de)
DE69722535T2 (de) Verfahren und Gerät zum Schaffen von Texturdaten
DE69921608T2 (de) Verfahren und vorrichtung zum zoomen von digitalen bilddateien
DE69928775T2 (de) Verfahren und vorrichtung zur interpolation von bilddaten sowie medium für ein bilddateninterpolationsprogramm
DE4316847A1 (de) Verfahren zum Entzerren von Röntgenaufnahmen und Anordnung zur Durchführung des Verfahrens
EP0737937A2 (de) Bildverarbeitungsgerät
DE4221320A1 (de) Bewegungsvektor-erfassungsvorrichtung
DE10315442A1 (de) Verfahren und Schaltung zur Skalierung von Rasterbildern
DE602004009714T2 (de) Verfahren zur wiedergabe graphischer objekte
DE69629265T2 (de) Bildskalierungsverfahren und -gerät
EP1034511B1 (de) Verfahren zur umsetzung digitaler daten im raster einer ersten auflösung in digitale zieldaten einer zweiten auflösung
DE69817633T2 (de) Faltung von Zeilenrasterdarstellungen
EP0121766A1 (de) Verfahren und Vorrichtung zur Darstellung von Bildinformationen
DE10221389A1 (de) Verfahren zur Ermittlung eines Pixelwertes eines Pixel aufweisenden Bildes, Gewichtungsmatrix und Recheneinrichtung
DE4404047C1 (de) Verfahren zur Beeinflussung der Bildqualität von durch eine elektronische Bildaufnahmevorrichtung gelieferten Bildern

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8139 Disposal/non-payment of the annual fee