DE102016007215A1 - Kontrollieren der Glattheit eines Übergangs zwischen Bildern - Google Patents

Kontrollieren der Glattheit eines Übergangs zwischen Bildern Download PDF

Info

Publication number
DE102016007215A1
DE102016007215A1 DE102016007215.6A DE102016007215A DE102016007215A1 DE 102016007215 A1 DE102016007215 A1 DE 102016007215A1 DE 102016007215 A DE102016007215 A DE 102016007215A DE 102016007215 A1 DE102016007215 A1 DE 102016007215A1
Authority
DE
Germany
Prior art keywords
image
pixels
color
difference
color difference
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.)
Granted
Application number
DE102016007215.6A
Other languages
English (en)
Other versions
DE102016007215B4 (de
Inventor
Sohrab Amirghodsi
Aliakbar Darabi
Sylvain Paris
Elya Shechtman
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of DE102016007215A1 publication Critical patent/DE102016007215A1/de
Application granted granted Critical
Publication of DE102016007215B4 publication Critical patent/DE102016007215B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Hierin beschriebene Ausführungsformen sind auf Verfahren und Systeme gerichtet, die es erlauben, die Glattheit von Übergängen zwischen Bildern zu kontrollieren. In Ausführungsformen wird eine Differenz von Farbwerten von Pixeln zwischen einem Vordergrundbild und dem Hintergrundbild entlang einer Begrenzung identifiziert, die mit einem Ort assoziiert ist, wo das Vordergrundbild relativ zum Hintergrundbild eingefügt werden soll. Danach wird ein rekursives Heruntersamplen um einen Sampling-Faktor eines Bereichs von Pixeln innerhalb der Begrenzung ausgeführt, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, welche Farbdifferenzindikatoren haben, die mit jedem Pixel der heruntergesampleten Bilder assoziiert sind. Derartige Farbdifferenzindikatoren geben an, ob eine Differenz von Farbwerten für das entsprechende Pixel existiert. Um einen nahtlosen Übergang zu bewerkstelligen, werden die Farbdifferenzindikatoren, die mit jedem rekursiv heruntergesampleten Bild assoziiert sind, normalisiert.

Description

  • Querverweis auf verwandte Anmeldungen
  • Die vorliegende Anmeldung beansprucht den Nutzen der provisionellen U. S. Anmeldung Nr. 62/175,361, eingereicht am 14. Juni 2015, welche hiermit durch Bezugnahme in Gänze aufgenommen wird. Diese Anmeldung ist ihrem Gegenstand nach auch mit der Offenbarung der U. S. Anmeldung Nr. 13/815,053 verwandt, eingereicht am 31. Juli 2014, mit dem Titel ”Pyramid Collapse Color Interpolation”.
  • Hintergrund
  • In einer Bildverarbeitungsumgebung, wie einer Bildverarbeitung- oder einer Bildeditieranwendung (zum Beispiel Adobe® Photoshop®) werden Pixelfarben oder Farbanpassungen häufig bestimmt, indem undefinierte Pixel verwendet werden, wo einige Information, die mit diesen Pixeln assoziiert ist, anfänglich unbekannt ist. Zum Beispiel sind in einigen Fällen bestimmte Bilder unvollständig und resultieren in Bildabschnitten, die unklar sind, die fehlen oder denen anderweitig Information fehlt. So können beispielsweise Bilder, die über ein Netzwerk empfangen wurden oder die mittels einer Kamera erfasst wurden, degradieren und mögen Information für alle Pixel des Bildes vermissen lassen, was in unklaren, verschwommenen und/oder unvollständigen Bildern resultieren mag. Diese Bilder beinhalten eine Anzahl an undefinierten Pixeln, wo Information für diese Pixel nicht bekannt ist, und eine Anzahl an definierten Pixeln, wo die Information für diese jeweiligen Pixel bekannt ist.
  • In anderen Fällen kann ein Zusammensetzen von Bildern oder das Einfügen eines Bildes über einen Hintergrund ursprünglich undefinierte Pixel verwenden, welchen es an Farbdifferenzinformation mangelt, um die Pixelfarben optisch anzugleichen oder diesen einen Übergang zu geben. Als ein Beispiel mag ein Benutzer wünschen, ein Bild, oder einen Teil davon (zum Beispiel ein Vordergrundbild) über ein Hintergrundbild einzufügen. In einem solchen Fall mögen Farbmodifikationen in Assoziation mit Pixeln gemacht werden, wie etwa Vordergrundpixel, um die Bilder zusammenzufügen. Die Farbmodifikationen kann bestimmt werden unter Verwendung einer Anzahl von undefinierten Pixeln, wo die Farbdifferenzinformation für diese jeweiligen Pixel nicht bekannt ist, und einer Anzahl von Pixeln, wo die Farbdifferenzinformation für diese jeweiligen Pixel bekannt ist,
  • In einigen Fällen kann ein System linearer Gleichungen verwendet werden, um mathematisch die unbekannte Information der undefinierten Pixel abzuleiten. Die mathematisch abgeleitete Information kann dann in die undefinierten Pixel eingesetzt werden, um das verschlechterte Bild zu vervollständigen. Das Ableiten und Lösen des Systems linearer Gleichungen kann erhebliche Rechenressourcen erfordern und kann eine übermäßige Zeitdauer erfordern, um eine Lösung für die undefinierten Pixel zu erhalten.
  • Weiter kann in herkömmlichen Implementierungen, die verwendet werden, um Farbmodifikationsinformation für anfänglich undefinierte Pixel abzuleiten, der Farbübergang zwischen Pixeln über eine Grenze zwischen einem Vordergrundbild, das eingefügt wird in Assoziation mit einem Hintergrundbild, visuell erkannt werden, das heißt, die Nahtstelle ist zwischen den Bildern sichtbar. Beispielsweise mögen die Pixelmodifikationen, welche von dem Rand des Vordergrundbilds nach innen gemacht werden, sich zu schnell ändern, was einen glatten Übergang verhindert. Ein derartiger offenkundiger Übergang zwischen Bildern ist oftmals ein unerwünschtes Ergebnis, da ein nahtloser Übergang zwischen dem eingesetzten Bereich und dem Hintergrundbild von einem Benutzer gewünscht wird, so dass das resultierende Bild scheinbar ohne Änderung ist.
  • Kurze Zusammenfassung
  • Es werden Ausführungsformen offenbart zum rekursiven Modifizieren eines Bildes mit definierten und undefinierten Pixeln, um ein modifiziertes Bild zu erzeugen, das eine nahtlose Komposition bzw. Zusammensetzung ist. Hierin beschriebene Ausführungsformen ermöglichen es, die Glattheit eines Übergangs zwischen einem Vordergrundbild (einzusetzendes Bild) und einem Hintergrundbild zu kontrollieren. Auf einer hohen Ebene wird eine Begrenzung, die mit einer Position assoziiert ist, an der ein Vordergrundbild eingefügt werden soll oder relativ zu einem Hintergrundbild zusammengefügt werden soll, identifiziert. Differenzen von Pixeln zwischen dem Vordergrundbild und dem Hintergrundbild entlang der Begrenzung(en) werden bestimmt. Die Farbdifferenzen werden zusammen mit einem Farbdifferenzindikator, der anzeigt, dass die Farbdifferenzinformation bekannt ist, verwendet, um anfänglich Pixel entlang der Begrenzung zu repräsentieren, während andere Pixel anfänglich mit Nullwerten repräsentiert werden, was unbestimmte Farbdifferenzen zwischen dem Vordergrundbild und dem Hintergrundbild anzeigt. Solche Daten können verwendet werden, um rekursiv um einen Sampling-Faktor herunterzusamplen, um heruntergesamplete Bilder zu erzeugen. Um einen nahtlosen und graduelleren Übergang zwischen einem Vordergrundbild und einem Hintergrundbild zu ermöglichen, können die Farbdifferenzen und Farbdifferenzindikatoren normalisiert werden bei jeder Instanz des rekursiven Heruntersamplens unter Verwendung eines größten Farbdifferenzindikators bei dieser Instanz oder Ebene des rekursiven Heruntersamplens. Nach Bestimmen des letzten heruntergesampleten Bildes kann das letzte heruntergesamplete Bild rekursiv hochgesamplet werden, um eine Menge von finalen Farbdifferenzwerten für die Pixel zu erzeugen, die verwendet werden, um eine nahtlose Zusammensetzung mit einem nahtlosen Übergang zwischen dem Vordergrundbild und dem Hintergrundbild zu erzeugen.
  • Diese illustrativen Merkmale wurden nicht dazu erwähnt, um die Offenbarung zu beschränken oder zu definieren, sondern um Beispiele und ein Verständnis davon zu vermitteln. Weitere Ausführungsformen werden in der detaillierten Beschreibung angegeben und dort beschrieben. Vorteile, die von einer oder von mehreren der verschiedenen Ausführungsformen geboten werden, werden weiter verstanden werden durch Studium dieser Spezifikation oder durch Verwirklichen von einer oder von mehreren der dargelegten Ausführungsformen.
  • Kurze Beschreibung der verschiedenen Ansichten der Zeichnung
  • Die Akte des Patents oder der Anmeldung enthält wenigstens eine farbige Zeichnung. Kopien des Patents oder der Patentanmeldung mit farbiger bzw. farbigen Zeichnung(en) werden vom Amt auf Anforderung und nach Zahlung der notwendigen Gebühr bereitgestellt.
  • Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Offenbarung werden besser verstanden beim Lesen der folgenden detaillierten Beschreibung mit Bezug auf die beigefügten Zeichnungen:
  • 1 ist ein Blockdiagramm, das beispielhafte Rechnervorrichtungen in einer beispielhaften Rechnerumgebung zum Implementieren bestimmter Ausführungsformen zeigt;
  • 2 ist eine Darstellung eines Bildes, das eine Anzahl undefinierter Pixel und eine Anzahl definierter Pixel beinhaltet;
  • 3 ist eine Darstellung eines Bildes, wobei die undefinierten Pixel ausgefüllt sind, indem rekursiv die Werte von allen benachbarten definierten Pixeln gemittelt wurden;
  • 4 ist eine Darstellung eines ersten Bildes und eines zweiten Bildes, die unterschiedliche Hintergrundfarben haben, die einander optisch angeglichen werden können, um einen nahtlosen Übergang zu erzeugen, gemäß bestimmten hierin beschriebenen Ausführungsformen;
  • 5 ist eine Darstellung eines relevanten Teils des ersten Bildes, der auf das zweite Bild eingefügt werden soll;
  • 6 ist eine Darstellung des ersten Bildes und des zweiten Bildes zusammen mit zwei unterschiedlichen Hintergrundfarben, die einander nahtlos optisch angeglichen wurden, gemäß bestimmten hierin beschriebenen Ausführungsformen;
  • 7 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Erzeugen eines nahtlosen Übergangs zwischen definierten Bereichen zeigt, um dabei die undefinierten Bereiche auszufüllen unter Verwendung von definierten Teilen eines Bildes;
  • 8 ist ein Flussdiagramm, das ein weiteres beispielhaftes Verfahren zum Erzeugen eines nahtlosen Übergangs zwischen definierten Bereichen zeigt, um dabei die undefinierten Bereiche auszufüllen unter Verwendung von definierten Teilen eines Bildes;
  • 9 ist ein Flussdiagramm, das ein weiteres beispielhaftes Verfahren zum Erzeugen eines nahtlosen Übergangs zwischen Bildern zeigt, in Übereinstimmung mit hierin beschriebenen Ausführungsformen;
  • 10 ist ein Flussdiagramm, das ein weiteres beispielhaftes Verfahren zum Erzeugen eines nahtlosen Übergangs zwischen Bildern zeigt, in Übereinstimmung mit hierin beschriebenen Ausführungsformen; und
  • 11 ist ein Flussdiagramm, das ein weiteres beispielhaftes Verfahren zum Erzeugen eines nahtlosen Übergangs zwischen Bildern zeigt, in Übereinstimmung mit hierin beschriebenen Ausführungsformen.
  • Detaillierte Beschreibung der Erfindung
  • In einer Bildverarbeitungsumgebung, wie einer Bild- oder Fotoeditieranwendung (zum Beispiel Adobe® Photoshop®) wünschen Benutzer oft, ein Bild, oder ein Teil davon (zum Beispiel ein Vordergrundbild) über ein Hintergrundbild einzufügen. Ein Benutzer mag zum Beispiel wünschen, ein Bild eines Tieres in ein Hintergrundbild (zum Beispiel eine Landschaft) einzusetzen, welches das Tier nicht enthält. In herkömmlichen Implementierungen kann der Pixelfarbübergang über eine Grenze zwischen einem Vordergrundbild und einem Hintergrundbild visuell erkannt werden, das heißt, die Nahtstelle zwischen den Bildern ist sichtbar. Zum Beispiel können sich die Pixelmodifikationen, die von dem Rand des Vordergrundbilds aus nach innen gemacht werden, zu rasch ändern, was einen glatten Übergang verhindert. Der Benutzer wünscht jedoch allgemein einen glatten Übergang zwischen dem Vordergrundbild und dem Hintergrundbild. In dieser Beziehung wird gewünscht, dass Pixel auf dem Rand des eingefügten Bereichs (Vordergrundbild) zu dem Hintergrundbild passen, so dass der Übergang zwischen dem eingesetzten Bereich und dem Hintergrundbild nahtlos ist.
  • Ausführungsformen der vorliegenden Erfindung ermöglichen einen glatten Übergang zwischen einem Vordergrundbild und einem Hintergrundbild. In dieser Beziehung, in Übereinstimmung mit dem Einsetzen eines Bildes über den Hintergrund oder dem Erzeugen eines Zusammengesetzten Bildes ist der Übergang zwischen dem Vordergrundbild und dem Hintergrundbild nahtlos und ist für einen Benutzer allgemein nicht sichtbar. Vorteilhafter Weise kontrollieren Ausführungsformen der vorliegenden Erfindung die Glattheit des Überganges und leisten eine solche Glattheit effizient unter Verwendung minimaler Rechenressourcen.
  • Auf einer hohen Ebene wird eine Begrenzung identifiziert, die assoziiert ist mit einer Position eines Vordergrundbildes, das relativ zu einem Hintergrundbild eingesetzt oder mit diesem zusammengesetzt werden soll. Differenzen von Farbwerten von Pixeln zwischen dem Vordergrundbild und dem Hintergrundbild entlang der Begrenzung werden bestimmt. Die Farbdifferenzen, zusammen mit einem Farbdifferenzindikator, der anzeigt, dass Farbdifferenzinformation bekannt ist, werden verwendet, um anfänglich Pixel entlang der Begrenzung zu repräsentieren, während andere Pixel anfänglich mit Nullwerten repräsentiert werden, was unbestimmte Farbdifferenzen zwischen dem Vordergrundbild und dem Hintergrundbild anzeigt. Solche Daten können verwendet werden, um rekursiv ein Heruntersamplen mit einem Sampling-Faktor auszuführen, um heruntergesamplete Bilder zu erzeugen.
  • Bei jeder Instanz oder Ebene des Heruntersamplens wird ein größter Farbdifferenzindikator unter den Farbdifferenzindikatoren, die mit Pixeln assoziiert sind, identifiziert und wird verwendet, um die Pixel zu normalisieren. Insbesondere kann jeder der Farbdifferenzwerte und der Farbdifferenzindikatoren, die mit den verschiedenen Pixeln assoziiert sind, durch den größten Farbdifferenzindikator geteilt werden, um die Pixel bei dieser Ebene des Heruntersamplens zu normalisieren. In einigen Fällen kann der Normalisierungseffekt ergänzt werden durch einen vorbestimmten Faktor. Nach Bestimmen des letzten heruntergesampleten Bildes kann das letzte heruntergesamplete Bild rekursiv hochgesamplet werden, um eine Menge von finalen Farbdifferenzwerten für die Pixel zu erzeugen, die verwendet werden, um eine nahtlose Zusammensetzung mit einem nahtlosen Übergang zwischen dem Vordergrundbild und dem Hintergrundbild zu erzeugen. In einer derartigen Implementierung werden die Werte der Vordergrundpixel so modifiziert, dass diejenigen auf der Begrenzung denselben Wert haben wie der entsprechende Hintergrund, und so, dass der modifizierte Vordergrund eine Ähnlichkeit mit dem ursprünglichen Vordergrund beibehält.
  • Die hierin beschriebenen Ansätze stellen das nahtlose Zusammensetzen unter Verwendung von weniger Rechenressourcen bereit, wenn verglichen mit dem System, das lineare Gleichungen verwendet. Diese beispielhaften Beispiele werden gegeben, um den Leser in den hier diskutierten allgemeinen Gegenstand einzuführen, und sind nicht dazu gedacht, den Bereich der offenbarten Konzepte zu beschränken. Die folgenden Abschnitte beschreiben verschiedene zusätzliche Ausführungsformen und Beispiele mit Bezug auf die Zeichnungen, in welchen gleiche Bezugszeichen gleiche Elemente anzeigen.
  • Es werden ebenfalls Verfahren und Systeme offenbart zum schnellen und akkuraten Bestimmen von Pixelinformation für undefinierte Pixel eines unvollständigen Bildes. Die offenbarten Ausführungsformen können weniger Rechenressourcen erfordern als vorherige Verfahren und können die undefinierten Pixel mit einer höheren Geschwindigkeit bestimmen. Rekursives interpolieren des unvollständigen Bildes, kombiniert mit Extraktion von interpolierten Bildern bei rekursiven Instanzen, wie hierin beschrieben, stellt die Pixelinformation für die undefinierten Pixel bereit. Das resultierende Bild ist eine nahtlose Zusammensetzung mit weniger oder keinen Lücken in dem Bild mit fehlender Pixelinformation. Die hierin beschriebenen Ansätze stellen die nahtlose Zusammensetzung mit weniger Rechenressourcen wenn verglichen mit dem System, das lineare Gleichungen verwendet, bereit. Es werden Ausführungsformen offenbart zum Empfangen eines Bildes (126 in 2) mit einer Anzahl an undefinierten Pixeln (206 in 2) und einer Anzahl an definierten Pixeln (203 in 2) und zum Anwenden des rekursiven Ansatzes, der hierin offenbart ist, um eine Version des Bildes (3) mit Pixelinformation für die undefinierten Pixel zu erzeugen. Die undefinierten Pixel können zum Beispiel mit einem rekursiven Mittelwert der Information, die mit etwaigen benachbarten Pixeln assoziiert ist, ausgefüllt werden. In einer Ausführungsform interpoliert die Interpolationsanwendung die Information für die undefinierten Pixel durch ein rekursives Heruntersamplen des empfangenen Bildes um einen Faktor von zwei aus, um eine Gauss'sche Pyramide zu erzeugen, bis keine undefinierten Pixel mehr in dem resultierenden heruntergesampleten Bild verbleiben. Die Interpolationsanwendung führt dann ein Hochsamplen der heruntergesampleten Bilder um einen Faktor von zwei aus, beginnend mit dem kleinsten heruntergesampleten Bild, um hochgesamplete Bilder zu erzeugen. Bei jeder rekursiven Instanz fügt die Interpolationsanwendung das hochgesamplete Bild mit dem nächsten heruntergesampleten Bild zusammen und füllt die undefinierten Pixel des heruntergesampleten Bilds mit den entsprechenden definierten Pixeln des hochgesampleten Bilds aus. Die Interpolationsanwendung fährt fort, die Bilder der Pyramide hochzusamplen, bis alle der heruntergesampleten Bilder verarbeitet wurden. Das resultierende Bild repräsentiert eine modifizierte Version des ursprünglichen Bildes, wobei die undefinierten Pixel des ursprünglichen Bildes mit den rekursiven Mittelwerten der benachbarten definierten Pixel ausgefüllt sind.
  • Diese veranschaulichenden Beispiele werden gegeben, um den Leser in den hier diskutierten allgemeinen Gegenstand einzuführen und sind nicht dazu gedacht, den Bereich der offenbarten Konzepte zu beschränken. Die folgenden Abschnitte beschreiben verschiedene zusätzliche Ausführungsformen und Beispiele mit Bezug auf die Zeichnungen, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen.
  • 1 ist ein Blockdiagramm, das eine beispielhafte Rechnervorrichtung in einer beispielhaften Rechnerumgebung zum Implementieren bestimmter Ausführungsformen zeigt. Die hierin offenbarten Verfahren und Systeme sind auch auf andere Rechnersysteme und Rechnerumgebungen anwendbar. Die in 1 gezeigte Umgebung beinhaltet eine Rechnervorrichtung 103 mit einem Speicher 106, einem Prozessor 109, einem Bus 113, einer Anzeige 116 und einer Vielzahl von Eingabe-/Ausgabevorrichtungen 119. In einer Ausführungsform kann die Eingabe-/Ausgabevorrichtung 119 eine Anzahl externer oder interner Vorrichtungen umfassen, wie eine Maus, eine CD-ROM, eine DVD, eine Tastatur, eine Anzeige, Audiolautsprecher, ein oder mehrere Mikrofone, einen Griffel oder jede andere Eingabe- oder Ausgabevorrichtung. Darüber hinaus kann die Rechnervorrichtung 103 ein PC, eine mobile Vorrichtung oder jeder andere Typ von elektronischer Vorrichtung sein, der geeignet ist, um eines oder mehrere der hierin beschriebenen Merkmale bereitzustellen. Des Weiteren kann die Rechnervorrichtung 103 eine Berührungsbildschirm-Rechnervorrichtung sein, wie ein Tabletcomputer, welche einen Berührungsbildschirm aufweist, um Eingaben zu empfangen. In diesem Beispiel beinhaltet die Eingabe-/Ausgabevorrichtung 119 auch den Berührungsbildschirm zum Empfangen von Eingaben.
  • Wie hier verwendet bezieht sich der Begriff ”Vorrichtung” auf jedes Rechner- oder andere elektronische Gerät, das Anweisungen ausführt und einen beliebigen Typ von prozessorbasierter Ausstattung beinhaltet, die ein Betriebssystem betreibt oder auf andere Weise Anweisungen ausführt. Eine Vorrichtung wird typischer Weise einen Prozessor 109 beinhalten, der einen oder mehrere Prozessoren umfassen kann, die Computerprogrammanweisungen ausführt und die externe Komponenten wie eine Maus, eine CD-ROM, eine DVD, eine Tastatur, eine Anzeige oder eine andere Eingabe oder Ausgabeausstattung beinhaltet. Beispiele von Vorrichtungen sind PCs, digitale Assistenten, persönliche digitale Assistenten, Mobiltelefone, Smartphones, Pager, digitale Tische, Laptopcomputer, Tabletcomputer, Internetgeräte, andere prozessorbasierte Vorrichtungen und Fernsehvorrichtungen. Die beispielhafte Rechnervorrichtung 103 kann als eine Rechnervorrichtung für spezielle Zwecke verwendet werden, um spezifische Funktionalität bereitzustellen, welche von Anwendungen und Modulen bereitgestellt werden.
  • Wie hierin verwendet bezieht sich der Begriff ”Anwendung” auf alle Programmanweisungen oder andere Funktionale Komponenten, welche auf einer Vorrichtung ausgeführt werden. Eine Anwendung kann im Speicher 106 einer Vorrichtung residieren, welche die Anwendung ausführt. Wie den Fachleuten bekannt, können derartige Anwendungen in jedem geeigneten computerlesbaren Medium residieren und auf einem geeigneten Prozessor ausgeführt werden. Zum Beispiel weist, wie gezeigt, die Rechnervorrichtung 103 ein computerlesbares Medium wie den Speicher 106 auf, der mit dem Prozessor 109 gekoppelt ist, welcher von einem Computer ausführbare Programmanweisungen ausführt und/oder auf gespeicherte Information zugreift. Ein solcher Prozessor 109 kann einen Mikroprozessor, einen ASIC, eine Zustandsmaschine oder einen anderen Prozessor beinhalten, und kann von einer beliebigen Anzahl von Computerprozessoren sein. Solche Prozessoren beinhalten ein computerlesbares Medium, oder können mit diesem in Kommunikation stehen, welches Anweisungen speichert, die, wenn sie von dem Prozessor ausgeführt werden, den Prozessor dazu veranlassen, die hierin beschriebenen Schritte auszuführen.
  • Wie hierin verwendet, bezieht sich der Begriff ”heruntersamplen” auf eine Bildoperation, welche die Anzahl von Pixeln in einem Bild reduziert durch Filtern und dann entfernen der Pixel von dem Bild, um das heruntergesamplete Bild zu erzeugen. Eine beliebige Anzahl von Filtern kann verwendet werden, um die Filterung zu implementieren, wie in der Technik bekannt. Zum Beispiel können einige Filter schneller sein als andere, aber ein gefiltertes Bild erzeugen, dass von einer geringeren Qualität ist als ein langsamerer Filter. Als ein Beispiel ist ein 3×3 Zelt-Filter schneller als ein 5×5 Gauss'scher Filter, erzeugt aber ein gefiltertes Bild, das von geringerer Qualität ist, als das gefilterte Bild, das von dem Gauss'schen Filter erzeugt wird.
  • Wie hierin verwendet, bezieht sich der Begriff ”hochsamplen” auf eine Bildoperation, welche die Anzahl von Pixeln in dem Bild erhöht durch Hinzufügen von Pixeln zu dem Bild und dann Filtern des Bildes, um das hochgesamplete Bild zu erzeugen. Eine beliebige Anzahl von Filtern kann verwendet werden, um die Filterung zu implementieren, wie in der Technik bekannt. Zum Beispiel können einige Filter schneller sein als andere, aber ein gefiltertes Bild erzeugen, dass von einer geringeren Qualität ist als ein langsamerer Filter. Als ein Beispiel ist ein 3×3 Zelt-Filter schneller als ein 5×5 Gauss'scher Filter, erzeugt aber ein gefiltertes Bild, das von geringerer Qualität ist, als das gefilterte Bild, das von dem Gauss'schen Filter erzeugt wird.
  • Wie hierin verwendet, bezieht sich der Begriff ”Over Funktion” rauf einen Zusammensetzungsoperator, der zwei Bilder aufeinander überlagert und/oder einfügt und undefinierte Pixel in einem ersten Bild identifiziert, die mit entsprechenden definierten Pixeln in dem zweiten Bild zu ersetzen sind. Zum Beispiel kann die Over Funktion undefinierte Pixel eines Vordergrundbilds auf ein Hintergrundbild einsetzen, oder umgekehrt.
  • Der Speicher 106 repräsentiert ein computerlesbares Medium welches, ohne hierauf beschränkt zu sein, eine elektronische, optische, magnetische oder andere Speichervorrichtung umfassen kann, die eingerichtet ist, einem Prozessor computerlesbare Anweisungen bereitzustellen. Andere Beispiele umfassen, ohne hierauf beschränkt zu sein, eine Diskette, CD-ROM, DVD, Magnetplatte, Speicherchip, ROM, RAM, einen ASIC, einen konfigurierten Prozessor, optischen Speicher, Magnetband oder anderen magnetischen Speicher, oder ein anderes Medium von dem ein Computerprozessor Anweisungen auslesen kann. Die Anweisungen können prozessorspezifische Anweisungen umfassen, die von einem Compiler und/oder einem Interpreter aus Code erzeugt wurden, der in einer geeigneten Computerprogrammiersprache geschrieben wurde, einschließlich zum Beispiel C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript und ActionScript.
  • In einer Ausführungsform enthält der Speicher 106 eine Interpolationsanwendung 123 und/oder andere Anwendungen. Die Interpolationsanwendung 123 empfängt ein Bild 126 und füllt undefinierte Teile des Bildes mit einem glatten und optisch angeglichenem Farbübergang von den nicht undefinierten Teilen des Bildes mittels Interpolation aus durch Erzeugen einer Anzahl von heruntergesampleten Bildern 149 und einer Anzahl von hochgesampleten Bildern 153, wie beschrieben werden wird. Darüber hinaus kann eine Anwendung wie etwa ein Browser eine Benutzerschnittstelle 129 auf der Anzeige 116, die mit der Rechnervorrichtung 103 assoziiert ist, rendern. Die Benutzerschnittstelle 129 kann das Bild 126 darstellen. Das Bild 126 kann eine Anzahl von definierten Pixeln 139 und eine Anzahl von undefinierten Pixeln 143 enthalten. Zum Beispiel können die definierten Pixel 139 alle Pixel des Bildes 126 mit bekannter Information, wie einem Farbwert, sein. Die undefinierten Pixel 143 können alle Pixel des Bildes 126 mit unbekannter Information sein. Zudem weist jedes Bild 126 eine Auflösung 146 auf, welche durch die Anzahl von Pixeln (definierte Pixel 139 und undefinierte Pixel 143) in jeder der Dimensionen des Bildes 126 definiert sein kann.
  • In einer Ausführungsform füllt die Interpolationsanwendung 123 die undefinierten Pixel 143 des Bildes 126 aus, indem wiederholt die Information von etwaigen definierten Pixeln 139 in der Nachbarschaft von jedem der undefinierten Pixel 143 gemittelt wird. Zum Beispiel sampelt die Interpolationsanwendung 123 das Bild 126 rekursiv herunter, um eine Gauss'sche Pyramide zu erzeugen, die eine Anzahl von heruntergesampleten Bildern 149 umfasst. In einer Ausführungsform sampelt die Interpolationsanwendung 123 das ursprüngliche Bild 126 um einen Faktor von zwei herunter, so dass das erste heruntergesamplete Bild 149 die halbe Auflösung 146 des ursprünglichen Bildes 126 hat. Die Interpolationsanwendung 123 kann das erste heruntergesamplete Bild 149 zum Beispiel aus jedem zweiten Pixel des ursprünglichen Bildes 126 erzeugen. Dementsprechend mag eine Anzahl der definierten Pixel 139 und eine Anzahl der undefinierten Pixel 143 nicht in dem ersten heruntergesampleten Bild 149 erscheinen. In einer anderen Ausführungsform mag die Interpolationsanwendung 123 das ursprüngliche Bild 126 um einen anderen Faktor als zwei heruntersamplen. Beispielsweise kann die Interpolationsanwendung 123 das ursprüngliche Bild 126 um einen Faktor von drei oder einem anderen Faktor heruntersamplen. In dem Beispiel, in dem der Faktor drei ist, sampelt die Interpolationsanwendung 123 das ursprüngliche Bild 126 herunter, indem jedes dritte Pixel aus dem ursprünglichen Bild 126 entfernt wird.
  • In der nächsten Instanz der Rekursion sampelt die Interpolationsanwendung 123 das erste heruntergesamplete Bild 149 herunter, um ein zweites heruntergesampletes Bild 149 zu erzeugen, wobei das zweite heruntergesamplete Bild 149 die halbe Auflösung 146 des ersten heruntergesampleten Bildes 149 aufweist. Die Interpolationsanwendung 123 schreitet mit dem rekursiven Heruntersamplen um einen Faktor von zwei (oder mit demselben Faktor wie beim vorherigen heruntersamplen) fort, bis keine undefinierten Pixel 143 mehr in dem heruntergesampleten Bild 149 verbleiben. Die Interpolationsanwendung 123 kann zum Beispiel nach jeder rekursiven Instanz des Heruntersamplens bestimmen, ob es undefinierte Pixel 143 in dem heruntergesampleten Bild 149 gibt. Nach dem Bestimmen, dass es keine undefinierten Pixel 143 in dem heruntergesampleten Bild 149 gibt, beendet die Interpolationsanwendung 123 das rekursive Heruntersamplen. Das letzte heruntergesamplete Bild 149 in der Menge von rekursiv heruntergesampleten Bildern 149 weist die geringste Auflösung 146 mit Bezug auf die anderen heruntergesampleten Bilder 149 auf und ist daher das kleinste heruntergesamplete Bild 149. Darüber hinaus kann jedes der heruntergesampleten Bilder 149, die während des rekursiven Heruntersamplens erzeugt wurden, in dem Speicher 106 gespeichert werden.
  • Die Interpolationsanwendung 123 sampelt dann die heruntergesampleten Bilder 149 hoch, um eine modifizierte Version des ursprünglichen Bildes 126 zu erzeugen, wobei alle der undefinierten Pixel 143 ausgefüllt sind, basierend zumindest zum Teil auf definierten Pixeln 139. Die modifizierte Version des ursprünglichen Bildes 126 enthält keine undefinierten Pixel 143, wodurch es nahtlose Zusammensetzung verkörpert, die voll mit definierten Pixeln 139 ist. In einer Ausführungsform initiiert die Interpolationsanwendung 123 das Hochsamplen mit dem kleinsten heruntergesampleten Bild 149. Das kleinste heruntergesamplete Bild 149 hat keine undefinierten Pixel 143, wie zuvor erläutert. Die Interpolationsanwendung 123 sampelt das kleinste heruntergesamplete Bild 149 um einen Faktor von zwei hoch (oder um einen anderen Faktor, der zuvor zum Heruntersamplen verwendet wurde), um ein erstes hochgesampletes Bild 153 zu erzeugen. In einer Ausführungsform weist das erste hochgesamplete Bild 153 die doppelte Auflösung 146 des kleinsten heruntergesampleten Bildes 149 auf. Zum Beispiel wird jedes Pixel des kleinsten heruntergesampleten Bildes 149 hochgesamplet, um einen 2×2 Block von Pixeln in dem ersten hochgesampleten Bild 153 zu bilden. Darüber hinaus sind nur definierte Pixel 139 in dem kleinsten heruntergesampleten Bild 149 vorhanden, und daher werden in dem ersten hochgesampleten Bild 153 nur definierte Pixel 139 vorhanden sein.
  • Als nächstes implementiert die Interpolationsanwendung 123 eine Over Funktion, um das zweitkleinste heruntergesamplete Bild 149 auf das erste hochgesamplete Bild 153 einzusetzen. Wie oben beschrieben, mag das kleinste heruntergesamplete Bild 149 ein oder mehrere undefinierte Pixel 143 aufweisen. In einer Ausführungsform implementiert die Interpolationsanwendung 123 die Over Funktion durch Einsetzen des ersten hochgesampleten Bildes 153 über das zweitkleinste heruntergesamplete Bild 149. Das erste hochgesamplete Bild 153 ist beispielsweise der ”Vordergrund”, während das zweitkleinste heruntergesamplete Bild 149 der ”Hintergrund” ist. Zu diesem Zweck identifiziert die Interpolationsanwendung 123 Teile des zweitkleinsten heruntergesampleten Bildes 149, die undefinierte Pixel 143 enthalten, und setzt die definierten Pixel 139 in dem entsprechenden Teil des ersten hochgesampleten Bildes 153 auf das zweitkleinste heruntergesamplete Bild 149 ein, um ein modifiziertes zweitkleinstes heruntergesampletes Bild 149 zu erzeugen. Das modifizierte zweitkleinste heruntergesamplete Bild 149 enthält nach implementieren der Over Funktion keine undefinierten Pixel 143. Zum Beispiel werden die undefinierten Pixel 143 durch die entsprechenden definierten Pixel 139 aus dem ersten hochgesampleten Bild 153 ersetzt. In einer Ausführungsform repräsentieren die definierten Pixel 139 aus dem ersten hochgesampleten Bild 153 einen Mittelwert der Pixel, die dem undefinierten Pixel 143 benachbart sind, wie aus dem kleinsten heruntergesampleten Bild 149 bestimmt.
  • In der nächsten Instanz der Rekursion sampelt die Interpolationsanwendung 123 das modifizierte zweitkleinste heruntergesamplete Bild 149 um einen Faktor von zwei hoch (oder um einen anderen zuvor zum Hochsamplen verwendeten Faktor), um ein zweites hochgesampletes Bild 153 zu erzeugen. Das zweite hochgesamplete Bild 153 enthält keine undefinierten Pixel 143. Die Interpolationsanwendung 123 implementiert dann die Over Funktion, indem das zweite hochgesamplete Bild 153 über das drittkleinste heruntergesamplete Bild 149 eingesetzt wird und alle Teile des drittkleinsten heruntergesampleten Bildes 149, die undefinierte Pixel 143 enthalten, mit definierten Pixel 139 aus den entsprechenden Teilen des zweiten hochgesampleten Bildes 153 ersetzt werden, um ein modifiziertes drittkleinstes heruntergesampletes Bild 149 zu erzeugen. Die Interpolationsanwendung 123 schreitet mit dem rekursiven Hochsamplen und Implementieren der Over Funktion auf den heruntergesampleten Bildern 149 nach oben in der Pyramide fort, bis alle heruntergesampleten Bilder 149 verarbeitet wurden. Zum Beispiel wurden alle heruntergesampleten Bilder 149 verarbeitet sein, wenn das größte heruntergesamplete Bild 149 hochgesamplet wird und verwendet wird, um die Over Funktion zu implementieren, um das modifizierte größte heruntergesamplete Bild 149 zu erzeugen. Das modifizierte größte heruntergesamplete Bild 149 repräsentiert die Version des ursprünglichen Bildes 126, in der alle undefinierten Pixel 143 rekursiv ausgefüllt wurden mit Mittelwerten von etwaigen benachbarten definierten Pixeln 139, um die glatte und optisch angeglichene Version des ursprünglichen Bildes 126 zu erzeugen.
  • Die Funktionalität der Interpolationsanwendung 123 kann in Pseudocode wie folgt beschrieben werden. In einer Ausführungsform implementiert die Interpolationsanwendung 123 die Funktionalität der Interpolieren() Funktion, der InterpolierenRec() Funktion und der Over() Funktion. Die Interpolieren() Funktion ist die Treiberfunktion und kann wie folgt beschrieben werden:
    Interpolieren (Bild X mit alpha A):
    X*A';
    (P', A') <- InterpolierenRec (P, A);
    X'<-P'/A';
    return (X', I);
  • In der oben beschriebenen Funktion wird das Bild durch 'X' repräsentiert und das alpha wird durch 'A' repräsentiert. alpha kann ein Vektor sein, der eine länge hat, und/oder eine Matrix, die eine Größe aufweist, welche der Anzahl von Pixeln in dem Bild X entspricht. Jeder Eintrag in dem Vektor, der Matrix und/oder anderen mathematischen Struktur kann angeben, ob die Information der jeweiligen Pixel in dem Bild X bekannt ist. So zeigt beispielsweise ein Wert alpha von 0 an, dass keine Information des Pixels, das mit diesem bestimmten Eintrag in der mathematischen Struktur assoziiert ist, bekannt ist. Ähnlich zeigt ein Wert alpha von 1 an, dass die Information der Pixel, die mit diesem bestimmten Eintrag in der mathematischen Struktur assoziiert sind, bekannt ist. In einer Ausführungsform kann das alpha durch einen Booleschen Wert repräsentiert werden.
  • Die Interpolieren() Funktion führt aus Gründen der Bequemlichkeit der Notation zuerst einen Aufruf zum Vormultiplizieren von alpha (P) aus, wobei jede Farbinformation für unbekannte Pixel verworfen wird. Als nächstes ruft die Interpolieren() Funktion die InterpolierenRec() Funktion auf, welche das rekursive Heruntersamplen, Hochsamplen und Einsetzen des Bildes X, um das modifizierte Bild X' zu erzeugen, implementiert, wie beschrieben wird. Der von der InterpolierenRec() Funktion zurückgelieferte Wert wird als (P', A') gespeichert. Das modifizierte Bild X' wird dann abgeleitet, indem zurückgekehrt wird zu dem unmultiplizierten alpha mittels Dividieren durch A', und dann das modifizierte Bild X' zurückgeliefert wird, welches nur definierte Pixel 139 enthält (das heißt, ein alpha von 1 hat).
  • Die InterpolierenRec() Funktion kann wie folgt beschrieben werden:
    Figure DE102016007215A1_0002
    Figure DE102016007215A1_0003
  • In der oben beschriebenen Funktion empfängt die InterpolierenRec() Funktion das Bild P, das die vormultiplizierte alpha P Version des Bildes X ist, und das alpha A, das mit der vormultiplizierten alpha P Version assoziiert ist. Die InterpolierenRec() Funktion bestimmt dann, ob die Pixelgröße des Bildes P gleich einer 1×1 Auflösung ist. Zum Beispiel kann das rekursive Heruntersamplen die Größe des Bildes auf lediglich ein Pixel Größe reduziert haben. Wenn die InterpolierenRec() Funktion bestimmt, dass die Auflösung des Bildes P 1×1 ist, dann ist die Rekursion beendet und es wird (P, A) zurückgeliefert. In einer anderen Ausführungsform kann die InterpolierenRec() Funktion bestimmen, ob irgendeines der Pixel des Bildes P ein undefinierteres Pixel 143 ist. Wenn die InterpolierenRec() Funktion bestimmt, dass keine undefinierten Pixel 143 vorhanden sind, dann ist die Rekursion beendet und es wird (P, A) zurückgeliefert.
  • Wenn die InterpolierenRec() Funktion stattdessen bestimmt, dass die Auflösung des Bildes P nicht 1×1 ist, oder dass das Bild P undefinierte Pixel 143 enthält, dann schreitet die InterpolierenRec() Funktion dazu fort, eine Heruntersamplen Funktion auf (P, A) zu implementieren. In einer Ausführungsform reduziert die Heruntersamplen Funktion die Größe des Bildes P um einen Faktor von 2 (das heißt, reduziert die Auflösung des Bildes P auf die Hälfte), um ein heruntergesampletes Ergebnis (Ps, As) zu erzeugen. Als nächstes ruft sich die InterpolierenRec() Funktion rekursiv selbst auf mit (Ps, As) als das eingegebene Bild und das eingegebene alpha, und speichert das Ergebnis als (Ps', As'), bis die durch den if Ausdruck definierte Bedingung erfüllt ist.
  • Nachdem die Bedingung zum Beenden des rekursiven Heruntersamplens erfüllt ist, implementiert die InterpolierenRec() Funktion als nächstes die Over() Funktion, wobei der zurückgelieferte Wert (P, A) und das Ergebnis des Hochsamplens des Bildes, das als (Ps', As') identifiziert ist, verwendet werden. In einer Ausführungsform vergrößert die Hochsamplefunktion die Größe des Bildes Ps' um einen Faktor von 2 (das heißt, multipliziert die Auflösung des Bildes Ps' um zwei), um das hochgesamplete Bild zu erzeugen, wie oben beschrieben. Die Over() Funktion kann eine von einer Anzahl von standardmäßigen Over() Funktionen sein, die in der Technik bekannt sind. Als ein Beispiel kann die Over() Funktion wie folgt implementiert werden:
    Figure DE102016007215A1_0004
  • In der obigen Funktion repräsentiert Fg das Vordergrundbild, FgA repräsentiert das alpha des Vordergrundbilds Fg, Bg repräsentiert das Hintergrundbild, und BgA repräsentiert das alpha des Hintergrundbilds Bg. Als ein anderes Beispiel kann die Over() Funktion wie folgt implementiert werden:
    Figure DE102016007215A1_0005
  • In der obigen Funktion repräsentiert der Bildort i einen Pixelort innerhalb des Vordergrundbilds FgA. R repräsentiert das zurückgelieferte Bild, welches von der Over() Funktion erzeugt wird. Eine Anzahl anderer Over() Funktionen mögen im Stand der Technik bekannt sein und mögen mit den oben beschriebenen Over() Funktionen austauschbar sein.
  • 2 zeigt ein Beispiel einer Benutzerschnittstelle 129 (1) gemäß bestimmten Ausführungsformen der vorliegenden Offenbarung, welche auf der Anzeige 116 gerendert wird. Die in 2 gezeigte Benutzerschnittstelle 129 enthält ein Bild 126 mit Farbteilen 203a, 203b, 203c und 203d, und einem anderen Teil 206. Zum Beispiel enthalten die Farbteile 203a, 203b, 203c und 203d definierte Pixel 139 (1), wobei die Pixel, welche die jeweiligen Farbteile bilden, Farbinformation enthalten. Der andere Teil 206 enthält nur undefinierte Pixel 143 (1), wobei die Pixel, welche den anderen Teil bilden, keine Farbinformation enthalten. In diesem Beispiel enthält der Farbteil 203a gelb gefärbte definierte Pixel 139, der Farbteil 203b enthält blau gefärbte definierte Pixel 139, der Farbteil 203c enthält blau gefärbte definierte Pixel 139 und der Farbteil 203d enthält rot gefärbte definierte Pixel 139. Der andere Teil 206 enthält keine definierten Pixel 139 und mag daher nicht sichtbar sein.
  • 3 zeigt ein Beispiel einer Benutzerschnittstelle 129 (1) gemäß bestimmten Ausführungsformen der vorliegenden Offenbarung, welche auf der Anzeige 116 gerendert wird. Die in 3 gezeigte Benutzerschnittstelle 129 enthält eine Version des Bildes 126, das von der Interpolationsanwendung 123 modifiziert wurde (1), um die undefinierten Pixel 143 (1) des ursprünglichen Bildes 126 (wie in 2 gezeigt) mit rekursiv gemittelten Werten von benachbarten definierten Pixeln 139 (1) wie oben diskutiert auszufüllen. Wie in 3 gezeigt, werden die undefinierten Pixel 143 des ursprünglichen Bildes 126 wie in 2 gezeigt rekursiv mit etwaigen definierten Pixel 139 benachbart den undefinierten Pixeln 143 ersetzt, so dass ein modifiziertes Bild 126 mit einer nahtlosen Zusammensetzung von nur definierten Pixeln 139 erzeugt wird.
  • 4 zeigt ein Beispiel einer Benutzerschnittstelle 129 (1) gemäß bestimmten Ausführungsformen der vorliegenden Offenbarung, welche auf der Anzeige 116 gerendert wird. Die in 4 gezeigte Benutzerschnittstelle 129 stellt ein erstes Bild 126a und ein zweites Bild 126b dar, wo das erste Bild 126a auf das zweite Bild 126b eingesetzt werden kann. Das erste Bild 126a zeigt einen Vogel und einen Hintergrund mit einem ersten blauen Farbton. Das zweite Bild 126b zeigt eine Skyline und einen Hintergrund mit einem zweiten blauen Farbton. Gemäß bestimmten hierin beschriebenen Ausführungsformen kann die Interpolationsanwendung 123 das erste Bild 126a auf das zweite Bild 126b einsetzen, während die Differenzen in dem ersten blauen Farbton in dem ersten Bild 126a und dem zweiten blauen Farbton in dem zweiten Bild 126b durch die Interpolationsanwendung 123 (1) optisch angeglichen werden, um ein modifiziertes Bild 126 zu erzeugen, das eine nahtlose blaue Zusammensetzung hat. Das modifizierte Bild 126 enthält den Vogel des ersten Bildes 126a, mit einem Hintergrund, der glatt in den Hintergrund des zweiten Bildes 126b übergeht.
  • 5 zeigt einen Teil des ersten Bildes 126a (1), der extrahiert wird, um auf das zweite Bild 126b (4) eingefügt zu werden. In einer Ausführungsform kann ein Benutzer, der die Rechnervorrichtung 103 (1) bedient, mittels der einen oder der mehreren Eingabe-/Ausgabevorrichtungen 119 (1) und der Benutzerschnittstelle 129 (1) einen Teil 503 des ersten Bildes 126a angeben, der extrahiert werden soll. Der Benutzer kann zum Beispiel die Begrenzung des Teils 503 mittels einer Maus, einem Griffel, einer Berührungsbildschirmanzeige, die mit der Rechnervorrichtung 103 assoziiert ist, und/oder einer anderen Eingabevorrichtung 119 auswählen. In einer Ausführungsform kann die Interpolationsanwendung 123 (1) den von dem Benutzer spezifizierten Teil 503 empfangen und den spezifizierten Teil 503 extrahieren, um die Einsetzen Operation zu implementieren, wie mit Bezug auf 6 beschrieben werden wird.
  • 6 zeigt das modifizierte zweite Bild 126b, wobei der Teil 503, der von dem ersten Bild 126a (4) extrahiert wurde, auf das zweite Bild 126b eingesetzt wurde. Wie in 6 gezeigt, hat die Interpolationsanwendung 123 (1) das modifizierte zweite Bild 126c mit dem Hintergrund des Teils 503 (5) des ersten Bildes 126a und optisch angeglichen mit einem gleitenden Übergang mit dem Hintergrund des zweiten Bildes 126b erzeugt. In einer Ausführungsform setzt die Interpolationsanwendung 123 den extrahierten Teil 503 von dem ersten Bild 126a auf das ursprüngliche zweite Bild 126b ein. Die Interpolationsanwendung 123 kann zum Beispiel den extrahierten Teil 503 durch Implementieren einer Anzahl von Standardeinsetzoperationen, die in der Technik bekannt sind, einsetzen. Die Interpolationsanwendung 123 kann dann eine Begrenzung zwischen dem eingesetzten Teil 503 und dem zweiten Bild 126b identifizieren. In einer Ausführungsform identifiziert die Interpolationsanwendung 123 die Begrenzung basierend, zumindest zum Teil, auf einer Farbdifferenz zwischen dem Hintergrund des extrahierten Teils 503 und dem Hintergrund des zweiten Bildes 126b. Die Interpolationsanwendung 123 kann beispielsweise bestimmen, ob die Farbdifferenz zwischen zwei benachbarten Pixeln einen vorgestimmten Schwellenwert überschreitet. Wenn die Farbdifferenz den vorgestimmten Schwellenwert überschreitet, dann kann die Interpolationsanwendung 123 bestimmen, dass die zwei benachbarten Pixel die Begrenzung bilden.
  • Als nächstes erstellt die Interpolationsanwendung 123 das modifizierte zweite Bild 126c mit einem nahtlosen Übergang zwischen dem Hintergrund des ursprünglichen zweiten Bildes 126b und dem Hintergrund des ersten Bildes 126a. In einer Ausführungsform identifiziert die Interpolationsanwendung 123 die Begrenzung zwischen dem ursprünglichen zweiten Bild 126b und dem ersten Bild 126a, und einen umgebenden Teil der Begrenzung, um den hierin beschriebenen Ansatz zum Erzeugen der nahtlosen Zusammensetzung, die in 6 dargestellt ist, zu implementieren. Die Interpolationsanwendung 123 kann den Blauton in dem Hintergrund des ersten Bildes 126a als die undefinierten Pixel 143 identifizieren, und den Farbton in dem Hintergrund des ursprünglichen zweiten Bildes 126b als die definierten Pixel 139. Dann sampelt die Interpolationsanwendung 123 rekursiv die Begrenzung und den umgebenden Teil der Begrenzung um einen Faktor herunter.
  • Zum Beispiel kann die Interpolationsanwendung 123 rekursiv um einen Faktor von zwei und/oder einen anderen Faktor heruntersamplen, wie oben beschrieben. Nach dem rekursiven Heruntersamplen, bis ein heruntergesampletes Bild 149 berechnet wird, das keine undefinierten Pixel 143 enthält, sampelt die Interpolationsanwendung 123 rekursiv hoch und implementiert die Over Funktion, bis alle der heruntergesampleten Bilder 149 verarbeitet sind. Das in 6 gezeigte resultierende modifizierte Bild 126c repräsentiert eine nahtlose Zusammensetzung, worin der erste Blauton des ersten Bildes 126a nicht von dem zweiten Farbton des zweiten Bildes 126b unterschieden werden kann.
  • 7 ist ein Flussdiagramm, das ein Beispiel der Operation eines Teils der Interpolationsanwendung 123 gemäß bestimmter Ausführungsformen angibt. Es sei verstanden, dass das Flussdiagramm von 7 lediglich ein Beispiel der vielen unterschiedlichen Typen von Funktionsargumenten angibt, die verwendet werden können, um die Operation des Teils der Interpolationsanwendung 123 wie hierin beschrieben zu implementieren. Als eine Alternative kann das Flussdiagramm von 7 betrachtet werden, ein Beispiel von Schritten eines Verfahrens anzugeben, das in der Rechnervorrichtung 103 (1) implementiert ist, gemäß einer oder gemäß mehreren Ausführungsformen.
  • Beginnend mit Schritt 703 empfängt die Interpolationsanwendung 123 ein Bild 126 (1) mit einer Anzahl von undefinierten Pixeln 143 (1) und einer Anzahl von definierten Pixeln 139 (1). Die Interpolationsanwendung 123 füllt die undefinierten Pixel aus 143 durch rekursives Mitteln der Werte von etwaigen benachbarten definierten Pixeln 139, um ein modifiziertes Bild 126a zu erzeugen. Zu diesem Zweck sampelt die Interpolationsanwendung 123 im Schritt 706 das ursprüngliche Bild 126 um einen Faktor von zwei herunter, um ein erstes heruntergesampletes Bild 149 (1) zu erzeugen, das die halbe Auflösung 146 (1) des ursprünglichen Bildes 126 aufweist. Zum Beispiel kann die Interpolationsanwendung 123 jedes zweite Pixel des ursprünglichen Bildes 126 verwenden, um das erste heruntergesamplete Bild 149 zu erzeugen. In einer anderen Ausführungsform kann die Interpolationsanwendung 123 das ursprüngliche Bild 126 um einen anderen Faktor reduzieren.
  • Als nächstes bestimmt die Interpolationsanwendung 123 im Schritt 709, ob das Heruntersamplen wiederholt werden soll. In einer Ausführungsform bestimmt die Interpolationsanwendung 123, ob es in dem heruntergesampleten Bild undefinierte Pixel 143 gibt. Wenn die Interpolationsanwendung 123 bestimmt, dass das heruntergesamplete Bild undefinierte Pixel 143 enthält, dann kehrt die Interpolationsanwendung 123 zum Schritt 706 zurück, um das Bild erneuter herunterzusamplen. Zum Beispiel sampelt die Interpolationsanwendung 123 das erste heruntergesamplete Bild 149 um einen Faktor von zwei herunter, um ein zweites heruntergesampletes Bild 149 zu erzeugen. In einer anderen Ausführungsform bestimmt die Interpolationsanwendung 123, ob das Heruntersamplen wiederholt werden soll basierend auf der Größe des heruntergesampleten Bildes. Wenn zum Beispiel die Interpolationsanwendung 123 bestimmt, dass die Größe des heruntergesampleten Bildes größer als 1×1 ist, dann kehrt die Interpolationsanwendung 123 zum Schritt 706 zurück, um das heruntergesamplete Bild 149 herunterzusamplen. Zusätzlich kann die Interpolationsanwendung 123 jedes heruntergesamplete Bild 149 bei jeder rekursiven Instanz speichern.
  • Wenn die Interpolationsanwendung 123 bestimmt, dass das Heruntersamplen nicht wiederholt werden muss (das heißt, das rekursive Heruntersamplen enden kann), dann schreitet die Interpolationsanwendung 123 zum Schritt 713 fort. Im Schritt 713 sampelt die Interpolationsanwendung 123 die heruntergesampleten Bilder 149 von dem kleinsten heruntergesampleten Bild 149 hoch. Zum Beispiel sampelt die Interpolationsanwendung 123 die heruntergesampleten Bilder 149 um einen Faktor von zwei hoch, wie oben beschrieben, um ein hochgesampletes Bild 153 (1) zu erzeugen. Dann setzt die Interpolationsanwendung 123 das nächstkleinste heruntergesamplete Bild 149 auf das hochgesamplete Bild 153 ein und ersetzt alle etwaigen undefinierten Pixel 143 in dem nächstkleinsten heruntergesampleten Bild 149 mit den entsprechenden definierten Pixel 139 des hochgesampleten Bildes 153. Zum Beispiel kann eine Over() Funktion diese Technik implementieren, um ein modifiziertes hochgesampletes Bild 153 zu erzeugen.
  • In Schritt 719 bestimmt die Interpolationsanwendung 123, ob das Hochsamplen wiederholt werden soll. Zum Beispiel kann die Interpolationsanwendung 123 bestimmen, das Hochsamplen zu wiederholen, wenn es verbleibende heruntergesamplete Bilder 149 gibt, die verarbeitet werden können. Wenn die Interpolationsanwendung 123 bestimmt, das Hochsamplen zu wiederholen, dann kehrt die Interpolationsanwendung 123 zum Schritt zurück um das Hochsamplen zu wiederholen. Wenn die Interpolationsanwendung 123 bestimmt, dass das Hochsamplen nicht wiederholt werden muss, dann schreitet die Interpolationsanwendung 123 fort zum Schritt 723 und liefert das letzte modifizierte hochgesamplete Bild 153 zurück. Das zurückgelieferte Bild wird eine modifizierte Version des ursprünglichen Bildes 126 sein, wobei die undefinierten Pixel 143 ausgefüllt sind mit rekursive gemittelten benachbarten definierten Pixeln 139.
  • 8 ist ein Flussdiagramm, das ein Beispiel der Operation eines Teils der Interpolationsanwendung 123 gemäß bestimmter Ausführungsformen angibt. Es sei verstanden, dass das Flussdiagramm von 8 lediglich ein Beispiel der vielen unterschiedlichen Typen von Funktionsargumenten angibt, die verwendet werden können, um die Operation des Teils der Interpolationsanwendung 123 wie hierin beschrieben zu implementieren. Als eine Alternative kann das Flussdiagramm von 8 betrachtet werden, ein Beispiel von Schritten eines Verfahrens anzugeben, das in der Rechnervorrichtung 103 (1) implementiert ist, gemäß einer oder gemäß mehreren Ausführungsformen.
  • Beginnend bei Schritt 803 empfängt die Interpolationsanwendung 123 ein erstes Bild, das auf ein zweites Bild einzusetzen ist. Das erste Bild hat eine erste Hintergrundfarbe und das zweite Bild hat eine zweite Hintergrundfarbe. In einer Ausführungsform kann ein Benutzer das erste Bild und das zweite Bild über eine Benutzerschnittstelle 129 (1) bereitstellen, die auf einer Anzeige 116 (1) einer Rechnervorrichtung 103 (1) gerendert wird. Dann setzt im Schritt 806 die Interpolationsanwendung 123 das erste Bild auf das zweite Bild an einem bestimmten Ort ein. Beispielsweise kann der Benutzer mittels einer oder mehreren Eingabevorrichtungen 119 (1) einen Ort auf dem zweiten Bild angezeigt haben, auf dem das erste Bild einzusetzen ist.
  • Im Schritt 809 erzeugt die Interpolationsanwendung 123 eine nahtlose Zusammensetzung, die das erste Bild umfasst, das auf das zweite Bild eingesetzt ist. In einer Ausführungsform identifiziert die Interpolationsanwendung 123 eine Menge von Pixeln entlang einer Zusammensetzungsbegrenzung zwischen dem ersten Bild und dem zweiten Bild als definierte Pixel und eine andere Menge von Pixeln als undefinierte Pixel. Die definierten Pixel können beispielsweise der zweiten Hintergrundfarbe entsprechen, und die undefinierten Pixel können der ersten Hintergrundfarbe entsprechen. Die Interpolationsanwendung 123 sampelt dann rekursiv den Begrenzungsabschnitt um einen Sampling-Faktor herunter, um eine Vielzahl von heruntergesampleten Begrenzungsabschnitten zu erzeugen, bis der bei der Instanz des rekursiven Heruntersamplens erzeugte heruntergesamplete Begrenzungsabschnitt keine definierten Pixel hat. Die Interpolationsanwendung 123 sampelt dann rekursiv jeden der heruntergesampleten Begrenzungsabschnitte um den Sampling-Faktor hoch, um ein hochgesampletes Bild aus den jeweiligen heruntergesampleten Begrenzungsabschnitten zu erzeugen. Dann setzt die Interpolationsanwendung 123 bei jeder rekursiven Instanz des Hochsamplens den am nächsten rekursiv auftretenden heruntergesampleten Begrenzungsabschnitt auf das hochgesamplete Bild ein, um den rekursiv am nächsten auftretenden Begrenzungsabschnitt für das Hochsamplen zu erzeugen.
  • 9 ist ein Flussdiagramm, das ein Beispiel der Operation eines Teils der Interpolationsanwendung 123 gemäß bestimmter Ausführungsformen angibt. Es sei verstanden, dass das Flussdiagramm von 9 lediglich ein Beispiel der vielen unterschiedlichen Typen von Funktionsargumenten angibt, die verwendet werden können, um die Operation des Teils der Interpolationsanwendung 123 wie hierin beschrieben zu implementieren. Als eine Alternative kann das Flussdiagramm von 9 betrachtet werden, ein Beispiel von Schritten eines Verfahrens anzugeben, das in der Rechnervorrichtung 103 (1) implementiert ist, gemäß einer oder gemäß mehreren Ausführungsformen.
  • Beginnend bei Schritt 903 empfängt die Interpolationsanwendung 123 ein Vordergrundbild, das mit einem Hintergrundbild zusammengesetzt oder auf dieses eingesetzt werden soll. Allgemein bezieht sich das Vordergrundbild auf ein Bild, das mit dem Hintergrundbild inkorporiert werden soll. Vordergrund- und Hintergrundbilder können allgemeiner als ein erstes Bild und ein zweites Bild bezeichnet werden, in diesem Beispiel werden, um eine größere Klarheit zu bieten, aber allgemein Vordergrund- und Hintergrundbild verwendet. Ein Vordergrund- und/oder Hintergrundbild kann auf jede Weise ausgewählt werden, und die hierin beschriebenen Ausführungsformen sind nicht gedacht, auf irgendeine Weise beschränkt zu sein. In einigen Fällen können zum Beispiel Hintergrund- und ein Vordergrundbild von einem Benutzer ausgewählt werden, der wünscht, ein zusammengesetztes Bild zu erstellen oder zu betrachten. In einer Ausführungsform kann ein Benutzer über eine Benutzerschnittstelle 129 (1), die auf einer Anzeige 116 (1) einer Rechnervorrichtung 103 (1) gerendert wird, das Hintergrundbild und das Vordergrundbild auswählen oder bereitstellen.
  • Bei Schritt 906 wird eine Begrenzung oder ein Rand, die bzw. der eine Position angibt (zum Beispiel Kante oder Umgebung), an der das Vordergrundbild mit Bezug auf das Hintergrundbild platziert oder angeordnet werden soll. Die Begrenzung gibt allgemein einen Bereich an, der mit einem Hintergrundbild assoziiert ist, an dem gewünscht wird, ein Vordergrundbild einzusetzen oder zusammenzufügen. Eine Begrenzung kann von jeder Form und/oder Größe sein. Die Begrenzung kann zum Beispiel der Form oder dem Umriss des Vordergrundbildes entsprechen. Als ein anderes Beispiel kann die Begrenzung von rechteckiger Form sein, die ein Vordergrundbild (das von beliebiger Form sein kann) begrenzt. Eine Begrenzung kann in einer beliebigen Anzahl von Arten designiert oder ausgewählt werden. In einigen Fällen kann ein Begrenzungsort von einem Benutzer angegeben werden, der die Begrenzung auswählt oder anderweitig angibt. Zum Beispiel kann ein Vordergrundbild zu einem Ort auf dem Hintergrundbild gezogen oder bewegt werden, wobei die Position davon verwendet wird, um die Begrenzung zu erstellen.
  • Beispielsweise und mit Bezug auf 5 kann in einer Ausführungsform die Interpolationsanwendung 123 den Teil 503 von dem ersten Bild 126a auf das ursprüngliche zweite Bild 126b positionieren (zum Beispiel in Übereinstimmung mit einer Benutzerauswahl oder Benutzerangabe). Die Interpolationsanwendung 123 kann dann eine Begrenzung zwischen dem positionierten Teil 503 und dem zweiten Bild 126b identifizieren. In einigen Fällen kann die Begrenzung bestimmt werden basierend zumindest zum Teil auf einer Farbdifferenz zwischen dem Hintergrund des Teils 503 und dem Hintergrund des zweiten Bildes 126b (zum Beispiel überschreitet die Farbdifferenz einen vorbestimmten Schwellenwert).
  • Bei Schritt 909 wird eine Menge von Pixeldaten für jedes Pixel eines ausgewählten Bildbereichs identifiziert. Ein ausgewählter Bildbereich bezieht sich allgemein auf ein Gebiet oder einen Bereich, auf dem Pixelfarben bearbeitet oder geändert werden sollen, so dass das Hintergrundbild und das Vordergrundbild glatt optisch angepasst sein können. Anders gesagt bezieht sich ein ausgewählter Bildbereich auf ein Gebiet oder einen Bereich von Pixeln, auf das bzw. den ein Farb- oder Filtereffekt (zum Beispiel ein gradueller Effekt) auf ein Bild angewandt werden kann. In einigen Ausführungsformen wird ein ausgewählter Bildbereich durch eine Begrenzung definiert, oder ein ausgewählter Bildbereich definiert die Begrenzung. In dieser Beziehung kann sich ein ausgewählter Bildbereich auf das Gebiet außerhalb der Begrenzung und/oder innerhalb der Begrenzung beziehen. Auch wenn hierin allgemein als ein Identifizieren einer Menge von Pixeldaten für Pixel eines ausgewählten Bildbereichs beschrieben, wird verstanden werden, dass Pixeldaten für jede beliebige Menge von Pixeln identifiziert werden können, die zum Beispiel innerhalb eines Hintergrundbilds und/oder Vordergrundbilds enthalten sind. Ein ausgewählter Bildbereich kann auf jede beliebige Anzahl von Weisen benannt oder bestimmt werden. Beispielsweise kann, nachdem ein Benutzer ein Vordergrundbild über einem Hintergrundbild positioniert hat, der Ort des Vordergrundbilds (zum Beispiel in Zusammenhang mit einer Begrenzung des Vordergrundbilds) verwendet werden, um einen ausgewählten Bildbereich zu identifizieren.
  • In einigen Ausführungsformen enthält eine Menge von Pixeldaten, die mit einem Pixel assoziiert sind, Farbdifferenzkomponenten und einen Farbdifferenzindikator. Eine Farbdifferenzkomponente bezieht sich auf die Komponente oder den Kanal, der ein Ausmaß in der Farbdifferenz zwischen korrespondierenden Pixeln in Bildern angibt, wie einem Vordergrundbild und einem Hintergrundbild. Eine Farbdifferenz kann repräsentiert werden unter Verwendung jedes beliebigen Werts (zum Beispiel ein numerischer Wert) und kann auf jede beliebige Weise bestimmt werden und ist nicht dazu gedacht, auf die hierin angegebenen Beispiele beschränkt zu werden. Eine Farbdifferenz kann Farbdifferenzen in Übereinstimmung mit jedem beliebigen Farbmodell repräsentieren. Zum Beispiel kann eine Farbdifferenz zwischen einem Pixel, das mit einem Hintergrundbild assoziiert ist, und einem korrespondierenden Pixel, das mit einem Vordergrundbild assoziiert ist, der auf einem RGB Farbmodell basieren, eine Farbdifferenz rot zwischen den Pixeln, eine Farbdifferenz grün zwischen den Pixeln und eine Farbdifferenz blau zwischen den Pixeln umfassen. Ein anderes Beispiel eines Farbmodells ist CYMK, das Cyan, Magenta, gelb und schwarz umfasst. Farbmodelle können eine beliebige Anzahl an Farbkomponenten umfasse, wie ein, zwei, drei oder vier Farbwerte oder -komponenten. Als solches kann eine Farbdifferenz drei oder vier Kanäle oder Komponenten beinhalten, die mit den repräsentierten Farben korrespondieren. Ein Farbdifferenzindikator kann ein Indikator sein, der anzeigt, ob ein bestimmtes Pixel bekannte Farbdifferenzinformation enthält. In dieser Beziehung kann ein Farbdifferenzindikator anzeigen, ob ein Pixel ein definiertes Pixel ist mit Bezug auf bekannte Farbdifferenzinformation. In einigen Fällen kann ein Farbdifferenzindikator, der mit einem Pixel assoziiert ist, anfänglich eine 0 sein, was keine Information repräsentiert, oder eine 1, was einige Information repräsentiert, wie unten beschrieben.
  • In einigen Ausführungsformen wird für jedes Pixel, das mit der Begrenzung korrespondiert, eine Farbdifferenz zwischen dem Hintergrundbild und dem Vordergrundbild bestimmt. In einigen Fällen mag die Begrenzung durch eine Menge von Pixeln definiert sein. In solchen Fällen werden Farbdifferenzen zwischen dem Hintergrundbild und dem Vordergrundbild an demselben durch Pixel repräsentierten Punkt entlang der Begrenzung bestimmt. In anderen Fällen mögen Pixel, die mit der Begrenzung korrespondieren, identifiziert werden, wie Pixel, die zu dem inneren Teil der Begrenzung benachbart sind, oder Pixel, die dem äußeren Teil der Begrenzung benachbart sind. Unabhängig von der Begrenzung wird ein gleicher oder passender Pixelort von dem Vordergrundbild und dem Hintergrundbild identifiziert, so dass eine Farbdifferenz zwischen den Bildpixeln bestimmt werden kann.
  • In Übereinstimmung mit dem Bestimmen der Farbdifferenzkomponenten (zum Beispiel eine rote Farbdifferenzkomponente, eine grüne Farbdifferenzkomponente und eine blaue Farbdifferenzkomponente) kann ein Farbdifferenzindikator identifiziert werden, der angibt, dass das Pixel ein definiertes Pixel ist, das heißt, Farbdifferenzinformation enthält. In dieser Beziehung kann die Interpolationsanwendung 123 eine Menge von Pixeln entlang einer Begrenzung der Zusammensetzung identifizieren, zum Beispiel assoziiert mit einem ausgewählten Bildbereich, als die definierten Pixel zu sein in Übereinstimmung mit existierender oder bedachter Farbdifferenzinformation, die mit solchen Pixeln assoziiert ist. In einigen solchen Fällen kann der Farbdifferenzindikator für diese Pixel anfänglich auf 1 gesetzt werden. Für jedes Nicht-Begrenzungspixel mag keine Farbdifferenz erzeugt werden. Als solches mag die Menge von Pixeldaten, die mit solchen Pixeln assoziiert ist, allgemein durch Nullwerte definiert sein, einschließlich dem Farbdifferenzindikator.
  • Wie in größerem Detail nachfolgend beschrieben, können Farbdifferenzen zwischen entsprechenden Pixeln des Vordergrund- und des Hintergrundbilds entlang der Begrenzung durch andere Teile des ausgewählten Bildbereichs interpoliert werden, wie etwa von der Begrenzung zu dem inneren Abschnitt des ausgewählten Bildbereichs. Mit anderen Worten werden die Farbdifferenzen, die für Pixel entlang der Begrenzung bestimmt wurden, verwendet, um eine Farbänderung durch den ausgewählten Bildbereich (zum Beispiel nach innen) zu propagieren.
  • Bei Schritt 912 führt die Interpolationsanwendung 123 rekursiv ein Heruntersamplen oder Kollabieren des ausgewählten Bildbereichs um einen (zum Beispiel 2) aus, um eine Mehrzahl von heruntergesampleten Teilen zu erzeugen. Anfänglich kann die Menge von Pixeldaten, die mit den Pixeln des ausgewählten Bildbereichs assoziiert sind, der bei Schritt 909 bestimmt wurde, als Pixeldaten, die mit Ebene 0 assoziiert sind, benannt werden. Wie beschrieben kann die Menge von Pixeldaten für ein Pixel Farbdifferenzkomponenten und einen Farbdifferenzindikator beinhalten. Zum Beispiel kann eine beispielhafte Menge von anfänglichen Pixeldaten für ein Pixelposition {Rv, Gv, Bv, 1} oder {Rv, Gv, Bv, 0} sein, wobei Rv einen roten Farbdifferenzwert repräsentiert, Gv einen grünen Farbdifferenzwert repräsentiert, Bv einen blauen Farbdifferenzwert repräsentiert, 1 angibt, dass Farbdifferenzen enthalten oder definiert sind, und 0 angibt, dass Farbdifferenzen unbestimmt, unbekannt oder nicht definiert sind (in welchem Fall die Farbdifferenzwerte Rv, Gv, Bv ebenfalls 0 wären). Die Funktion für den ursprünglich ausgewählten Bildbereich bzw. den Bildbereich der Ebene 0 mit Farbdifferenzkomponenten und einem Farbdifferenzindikator kann wie folgt beschrieben werden:
    Figure DE102016007215A1_0006
    worin die Farbwertdifferenzen berechnet werden basierend auf der Vordergrundfarbe minus der Hintergrundfarbe (zum Beispiel Rf-Rb, Gf-Gb, Bf-Bb).
  • Der ursprüngliche ausgewählte Bildbereich, der durch Farbdifferenzkomponenten und einen Farbdifferenzindikator repräsentiert ist, kann um einen Faktor, wie etwa zwei, heruntergesampelt werden, um ein erstes heruntergesampletes Bild zu erzeugen, das ein Teil (zum Beispiel die Hälfte) der Auflösung des ursprünglichen ausgewählten Bildbereichs ist. Wie verstanden werden wird, werden beim Heruntersamplen Farbdifferenzindikatoren für Pixel des ersten heruntergesampleten Bildes erzeugt. Lediglich beispielhaft sei angenommen, dass eine Menge von vier Pixeln auf ein Pixel reduziert wird. Weiter sei angenommen, dass drei der vier Pixel keiner Begrenzung entsprechen und als solches einen nullwertigen Farbdifferenzindikator enthalten, und dass eines der vier Pixel einer Begrenzung entspricht und als solches einen einwertigen Farbdifferenzindikator enthält. In einem solchen Fall werden die Farbdifferenzindikatoren aggregiert oder gemittelt, um einen Farbdifferenzindikator von 0,25 für das Pixel in dem heruntergesampleten Bild abzuleiten. Der berechnete Farbdifferenzindikator von 0,25 zeigt die Anzahl von Pixeln mit Farbdifferenzinformation an, die verwendet wurden, um den Wert zu berechnen (zum Beispiel 25% der zum Berechnen des Ergebnisses verwendeten Pixel enthalten eine Farbdifferenzinformation).
  • In Übereinstimmung mit dem Erzeugen jedes der neuen Farbdifferenzindikatoren für die verschiedenen Pixelpositionen des ersten heruntergesampleten Bildes kann der höchste oder größte Farbdifferenzindikatorwert identifiziert werden. Auf diese Weise wird der Wert, der mit der größten Menge an Farbdifferenzinformation assoziiert ist, der auf der speziellen Ebene des Heruntersamplens verfügbar ist (zum Beispiel das erste heruntergesamplete Bild) identifiziert. Für jedes Pixel des ersten heruntergesampleten Bildes können dann die Farbdifferenzwerte (zum Beispiel RGB Komponentenwerte) und die Farbdifferenzindikatoren durch den größten Farbdifferenzindikatorwert geteilt werden. Ein solcher Prozess renormalisert die Daten in Übereinstimmung mit der größten Indikation von Farbdifferenzinformation. Es sei zum Beispiel angenommen, dass vier Pixel, die mit dem ersten heruntergesampleten Bild assoziiert sind, Datenmengen von {0,3, 0,4, 0,5, 0,33}, {0,2, 0,6, 0,4, 0,31}, {0,37, 0,11, 0,12, 0,21} und {0,29, 0,30, 0,31, 0,12} enthalten. In einem solchen Fall ist der maximale oder größte Farbdifferenzindikator gleich 0,33. Als solches wird jede der Farbdifferenzen und Farbdifferenzindikatoren durch 0,33 geteilt, um die Daten bei dieser Ebene des Heruntersamplens zu renormalisieren. Das Normalisieren von Daten auf jeder Ebene oder Instanz des Heruntersamplens ermöglicht einen nahtlosen und graduellen Übergang zwischen Bildern.
  • In einigen Fällen kann auch jede der Komponenten oder jeder der Werte mit einem Faktor multipliziert werden, um eine weitere Normalisierung zu bewirken, so dass die Information, die mit der heruntergesampleten Ebene assoziiert ist, mehr zu dem Endergebnis beiträgt. Wie verstanden werden wird, kann jede beliebige Zahl verwendet werden, um das Normalisieren zu ergänzen. In einigen Fällen kann beispielsweise ein Faktor von zwei ein vorbestimmter oder designierter Faktor sein, mit dem die Farbdifferenzen und Farbdifferenzindikatoren, die mit dem ersten heruntergesampleten Bild assoziiert sind, zu multiplizieren sind. In einigen Ausführungsformen sollten die resultierenden Werte (zum Beispiel nachdem sie mit einem spezifizierten Wert multipliziert wurden) unter einem Wert von eins bleiben. In solchen Fällen kann der Faktor (zum Beispiel ein vorbestimmter Faktor) falls erforderlich reduziert werden, um die Farbdifferenzwerte unter eins zu halten, oder der resultierende Wert kann auf eins oder weniger reduziert werden, wenn die Multiplikation der Farbdifferenzen mit dem Faktor in einem Wert größer eins resultiert. Die Funktion zum Heruntersamplen ausgewählter Bildbereiche kann beschrieben werden wie folgt für die heruntergesamplete Ebene I = 1 bis n_ebenen:
    pyramide_ebene[I] = reduziere_größe_um_hälfte(pyramide_ebene[I-1])
    max_alpha = max(pyramide_ebene[I][4])
    pyramide_ebene[I] I = max_alpha
    pyramide_ebene[I] *= min(ein faktor, 1/pyramide_ebene[I][4]),
    worin [4] sich auf eine Farbdifferenzindikatorkomponente bezieht
  • Der Prozess des Heruntersamplens kann über eine beliebige Anzahl von Heruntersampleebenen I hinweg fortgesetzt werden. In einigen Fällen fährt der Prozess des Heruntersamplens fort, bis das heruntergesamplete Bild ein Pixel enthält. In anderen Fällen schreitet der Prozess des Heruntersamplens fort, bis für jedes Pixel des heruntergesampleten Bildes eine Farbdifferenzinformation enthalten ist. In dieser Beziehung schreitet das Heruntersamplen fort, bis die Farbdifferenzindikatorwerte, die mit jedem der Pixel der Ebenen des Heruntersamplens assoziiert sind, einen Wert ungleich Null haben. Eine Ebene, an der keine Farbdifferenzindikatorwerte null sind, kann dynamisch bestimmt, vorbestimmt oder gefolgert werden.
  • Bei Schritt 915 führt die Interpolationsanwendung 123 rekursiv ein Hochsamplen aus unter Verwendung eines Sampling-Faktors, um hochgesamplete Bilder zu erzeugen. Der Sampling-Faktor kann ein beliebiger Wert sein und entspricht allgemein einem Sampling-Faktor, der verwendet wird bzw. wurde, um Bilder herunterzusamplen, so dass die hochgesampleten Bilder einer Heruntersampleebene entsprechen. Zum Beispiel sampelt die Interpolationsanwendung 123 die kleinsten heruntergesampleten Bilder 149 um einen Faktor von zwei hoch, wie oben beschrieben, um ein hochgesampletes Bild 153 (1) zu erzeugen. Die hochgesampleten Bilder werden ein entsprechendes heruntergesampletes Bild haben, das sich auf derselben Ebene der Pyramide befindet (zum Beispiel eine gleiche Anzahl von Pixeln oder eine gleiche Auflösung hat). Allgemein enthalten das hochgesamplete Bild und das heruntergesamplete Bild, die einander entsprechen, dieselbe Anzahl von Pixeln. Als solches werden auf jeder Ebene zwei Mengen von Pixeldaten, die mit einem Pixel assoziiert sind, existieren, wobei eine mit dem Heruntersamplen assoziiert ist und eines mit dem Hochsamplen assoziiert ist.
  • In einigen Ausführungsformen können die zwei Mengen von Pixeldaten kombiniert werden, um ein optimales optisches Angleichen, oder eine zusammengeführte Datenmenge zu erzeugen. In einigen Fällen können, wenn ein Pixel, das mit einem heruntergesampleten Bild assoziiert ist, nicht mit Farbdifferenzinformation assoziiert ist (zum Beispiel hat der Farbdifferenzindikator einen Wert 0), die Daten, die mit dem hochgesampleten Bild assoziiert sind, beibehalten werden als die hochgesampleten Bilddaten (zum Beispiel Farbdifferenzinformation). In Fällen, wo entsprechende Versionen oder Mengen von Pixeldaten beide eine Farbdifferenzinformation (einen von null verschiedenen Wert) aufweisen, können Daten ausgewählt werden in Verbindung mit einer der Versionen, oder die Daten können optisch angeglichen oder kombiniert werden, zum Beispiel unter Verwendung eines gewichteten Mittelwerts von einem Wert und (1 – Wert). In Ausführungsformen ist der Wert, der verwendet wird für den gewichteten Mittelwert, um die Daten optisch anzugleichen, der Farbdifferenzindikator, der zum Beispiel mit dem hochgesampleten Bild assoziiert ist. In einigen Fällen werden die optisch angeglichenen Daten als eine Basis für das Hochsamplen zur nächsten Ebene verwendet.
  • Eine Funktion zum Hochsampeln von Bildern kann beschrieben werden wie folgt für Ebene I = n_ebenen – 1 bis 0 und expandierte_ebene = reduzierte_ebene[n_ebenen]
    Figure DE102016007215A1_0007
    wobei [4] auf eine Farbdifferenzindikatorkomponente verweist.
  • Der Prozess des Hochsamplens kann durch eine beliebige Anzahl von Hochsampleebenen fortschreiten, bis ein finales hochgesampletes Bild erzeugt wurde. In einigen Fällen schreitet der Prozess des Hochsamplens fort, bis es keine weiteren heruntergesampleten Bilder 149 mehr gibt. Das heißt, das Hochsamplen ist vollendet, wenn das hochgesamplete Bild dieselbe Auflösung wie das ursprüngliche Bild hat, das verwendet wurde, um mit dem Heruntersamplen zu beginnen (ein finales hochgesampletes Bild). Wie verstanden werden wird, können, obwohl das Hochsamplen und das optische Ausgleichen allgemein mit Bezug auf den Farbdifferenzindikator beschrieben wurde, solche Funktionen auch auf andere Daten innerhalb der Datenmengen anwendbar sein, wie eine Farbdifferenz rot, eine Farbdifferenz blau und eine Farbdifferenz grün.
  • Bei Schritt 918 werden die finalen Farbdifferenzwerte für Pixel in dem ausgewählten Bildbereich erzeugt. In einigen Fällen kann jede der Farbwertdifferenzen (zum Beispiel RGB) des finalen hochgesampleten Bildes durch den damit assoziierten Farbdifferenzindikator geteilt werden. Zum Beispiel sei angenommen, dass ein Pixel, das mit dem finalen hochgesampleten Bild assoziiert ist, RGB Farbdifferenzdaten und einen Farbdifferenzindikator von {0,23, 0,22, 0,21, 0,18} enthält. In solch einem Fall werden die RGB Farbdifferenzdaten durch den Farbdifferenzindikator oder 0,18 geteilt. Diese abgeleiteten finalen Farbdifferenzwerte für Pixel in dem ausgewählten Bildbereich können dann von dem Vordergrundwert subtrahiert werden, um einen glatten optischen Ausgleich oder Übergang zwischen Farben zu erhalten. In dieser Beziehung ist der modifizierte Vordergrund gleich dem Vordergrund minus dem Ergebnis der Pyramidenmanipulationen. Die modifizierten Vordergrundpixel können glatt in das Hintergrundbild optisch eingepasst oder in dieses aufgenommen werden. In einigen Fällen werden die geeigneten Hintergrundpixel durch die modifizierten Vordergrundpixel ersetzt. Als solches hat der Rand des Vordergrunds allgemein dieselbe Farbe wie das Hintergrundbild.
  • 10 und 11 sind Flussdiagramme, die weitere Beispiele der Operation eines Teils der Interpolationsanwendung 123 gemäß bestimmten mit Bezug auf 9 beschriebenen Ausführungsformen angeben. Es sei verstanden, dass die Flussdiagramme von 10 und 11 lediglich Beispiele der vielen unterschiedlichen Typen von Funktionsargumenten angeben, die verwendet werden können, um die Operation des Teils der Interpolationsanwendung 123 wie hierin beschrieben zu implementieren. Als eine Alternative können die Flussdiagramme von 10 und 11 betrachtet werden, ein Beispiel von Schritten eines Verfahrens anzugeben, das in der Rechnervorrichtung 103 (1) implementiert ist, gemäß einer oder gemäß mehreren Ausführungsformen.
  • Mit Bezug auf die 10 werden im Schritt 1003 insbesondere eine Differenz von Farbwerten von Pixeln zwischen einem ersten Bild und einem zweiten Bild entlang einer Begrenzung bestimmt, die mit einer Position assoziiert ist, an der das erste Bild relativ zum zweiten Bild zusammenzusetzen ist. Bei Schritt 1006 wird eine anfängliche Menge von Pixeldaten für jedes Pixel innerhalb eines ausgewählten Bereichs von Pixeln, der die Begrenzung beinhaltet, erzeugt. In Ausführungsformen enthält jede Menge von Pixeldaten für die Pixel entlang der Begrenzung eine oder mehrere Farbdifferenzkomponenten, welche eine Differenz in der Farbe der Pixel zwischen dem ersten Bild und dem zweiten Bild basierend auf den bestimmten Differenzen in Pixelfarbwerten repräsentieren, und einen Farbdifferenzindikator, der anzeigt, dass für diese Pixel eine Farbwertdifferenz existiert. Jede Menge von Pixeldaten für Pixel, die nicht entlang der Begrenzung liegen, enthalten Nullwerte für die eine oder die mehreren Farbdifferenzkomponenten und für den Farbdifferenzindikator.
  • Bei Schritt 1009 wird die anfängliche Menge von Pixeldaten verwendet, um den ausgewählten Bereich von Pixeln um einen Sampling-Faktor rekursiv herunterzusamplen, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, bis ein letztes heruntergesampletes Bild, das bei einer Instanz des rekursiven Heruntersamplens erzeugt wird, keine Pixel ohne einen Farbdifferenzindikator, der anzeigt, dass für dieses Pixel keine Farbwertdifferenz existiert, aufweist. In Ausführungsformen umfasst jede Instanz des Heruntersamplens ein Identifizieren eines größten Farbdifferenzindikators, und Teilen jeder Farbdifferenzkomponente und des Farbdifferenzindikators, der mit dem entsprechenden heruntergesampleten Bild assoziiert ist, durch den größten Farbdifferenzindikator. Beim Schritt 1012 wird das letzte heruntergesamplete Bild rekursiv hochgesamplet, um eine Menge von finalen Farbdifferenzwerten für die Pixel in dem ausgewählten Bildbereich zu erzeugen, die verwendet werden, um eine Zusammensetzung mit einem nahtlosen Übergang zwischen dem ersten Bild und dem zweiten Bild zu erzeugen.
  • Mit Bezug nun auf 11 wird beim Schritt 1103 eine Begrenzung identifiziert, die mit einem ausgewählten Bereich von Pixeln assoziiert ist, welche mit einer Position korrespondieren, an der das erste Bild relativ zum zweiten Bild zusammenzusetzen ist. Beim Schritt 1106 wird eine Differenz von Farbwerten von Pixeln zwischen dem ersten Bild und dem zweiten Bild entlang der Begrenzung bestimmt. Beim Schritt 1109 werden die Farbwertdifferenzen von Pixeln zwischen dem ersten Bild und dem zweiten Bild entlang der Begrenzung verwendet, um rekursiv den ausgewählten Pixelbereich um einen Sampling-Faktor herunterzusamplen, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, die Farbdifferenzindikatoren umfassen, die mit jedem Pixel der heruntergesampleten Bilder assoziiert sind. Derartige Farbdifferenzindikatoren, die angeben, ob eine Farbwertdifferenz für korrespondierende Pixel existiert, werden normalisiert in Zusammenhang mit jedem rekursiv heruntergesampleten Bild.
  • Wie beschrieben ermöglichen die Ausführungsformen hierin, die Glattheit von Übergängen zwischen Bildern zu kontrollieren. In einer Ausführungsform ist ein computer-implementiertes Verfahren zum Zusammensetzen eines ersten Bildes und eines zweiten Bildes mit einem nahtlosen Übergang angegeben. Eine Differenz von Farbwerten von Pixeln zwischen einem ersten Bild und einem zweiten Bild wird bestimmt entlang einer Begrenzung, die mit einer Position assoziiert ist, an der das erste Bild relativ zum zweiten Bild zur Zusammensetzung zu bringen ist. Eine anfängliche Menge von Pixeldaten wird für jedes Pixel innerhalb eines ausgewählten Bereichs von Pixeln, der die Begrenzung beinhaltet, erzeugt, wobei jede Menge von Pixeldaten für die Pixel entlang der Begrenzung eine oder mehrere Farbdifferenzkomponenten umfasst, die eine Differenz in der Farbe der Pixel zwischen dem ersten Bild und dem zweiten Bild repräsentieren, basierend auf der bestimmten Differenz von Pixelfarbwerten, und einem Farbdifferenzindikator, der anzeigt, dass für dieses Pixel eine Farbwertdifferenz existiert. Die anfängliche Menge von Pixeldaten wird verwendet, um den ausgewählten Bereich von Pixeln rekursiv um einen Sampling-Faktor herunterzusamplen, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, bis ein Umfang von Pixeln eines letzten heruntergesampleten Bildes, erzeugt bei einer Instanz des rekursiven Heruntersamplens, mit Farbdifferenzindikatoren korrespondiert, welche das Vorliegen von Farbwertdifferenzen anzeigen. Das letzte heruntergesamplete Bild wird rekursiv hochgesamplet, um eine Menge von finalen Farbdifferenzwerten für die Pixel in dem ausgewählten Bildbereich zu erzeugen, die verwendet werden, um eine Zusammensetzung mit einem nahtlosen Übergang zwischen dem ersten Bild und dem zweiten Bild zu erzeugen.
  • In einer anderen Ausführungsform wird ein computer-implementiertes Verfahren zum Zusammensetzen eines ersten Bildes und eines zweiten Bildes mit einem nahtlosen Übergang zwischen dem ersten Bild und dem zweiten Bild angegeben. Das Verfahren beinhaltet Identifizieren einer Begrenzung, die mit einem ausgewählten Bereich von Pixeln assoziiert ist, die einer Position entsprechen, an der das erste Bild relativ zum zweiten Bild zur Zusammensetzung zu bringen ist. Das Verfahren beinhaltet auch Bestimmen eine Differenz von Farbwerten von Pixeln zwischen dem ersten Bild und dem zweiten Bild entlang der Begrenzung. Das Verfahren beinhaltet weiter Verwenden der Differenzen von Farbwerten von Pixeln zwischen dem ersten Bild und dem zweiten Bild entlang der Begrenzung, um rekursiv den ausgewählten Pixelbereich um einen Sampling-Faktor herunterzusamplen, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, wobei jedes Pixel der heruntergesampleten Bilder mit einem Farbdifferenzindikator korrespondiert, der anzeigt, ob für das Pixel eine Differenz von Farbwerten existiert.
  • In einer nochmals weiteren Ausführungsform wird ein System angegeben, umfassend einen Prozessor zum Ausführen von Anweisungen, welche in einem computerlesbaren Medium auf einer oder auf mehreren Vorrichtungen gespeichert ist, wobei die Anweisungen ein oder mehrere Module umfassen. Die Anweisungen sind konfiguriert, eine Differenz von Farbwerten von Pixeln zwischen einem Vordergrundbild und dem Hintergrundbild entlang einer Begrenzung zu identifizieren, die mit einem Ort assoziiert ist, an dem das Vordergrundbild relativ zum Hintergrundbild zur Zusammensetzung zu bringen ist; und zum rekursiven Heruntersamplen eines Bereichs von Pixeln innerhalb der Begrenzung um einen Sampling-Faktor, um eine Vielzahl von heruntergesampleten Bildern zu erzeugen, welche Farbdifferenzindikatoren aufweisen, die mit jedem Pixel der heruntergesampleten Bilder assoziiert sind, wobei die Farbdifferenzindikatoren anzeigen, ob für das entsprechende Pixel eine Differenz von Farbwerten existiert.
  • Es werden hierin zahlreiche spezifische Details angegeben, um ein tiefgreifendes Verständnis des beanspruchten Gegenstandes zu geben. Die Fachleute werden jedoch verstehen, dass der beanspruchte Gegenstand ohne diese spezifischen Details verwirklicht werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, die den Fachleuten bekannt wären, nicht im Detail beschrieben, um den beanspruchten Gegenstand nicht zu verschleiern.
  • Einige Teile sind in Begriffen von Algorithmen oder symbolischen Repräsentationen von Operationen auf Datenbits oder binären digitalen Signalen gegeben, die in einem Rechnersystemspeicher, wie einem Computerspeicher, gespeichert sind. Diese algorithmischen Beschreibungen oder Repräsentationen sind Beispiele von Techniken, die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um anderen Fachleuten den wesentlichen Gehalt ihrer Arbeit zu vermitteln. Ein Algorithmus ist eine selbstkonsistente Sequenz von Operationen oder anderer Verarbeitung, die zu einem gewünschten Ergebnis führt. In diesem Zusammenhang beinhalten Operationen oder Verarbeitungen physische Manipulation von physischen Quantitäten. Typischer, aber nicht notwendiger Weise können solche Quantitäten die Form elektrischer oder magnetischer Signale an, die gespeichert, übermittelt, kombiniert, verglichen oder auf andere Weise manipuliert werden können. Es hat sich gelegentlich als praktisch erwiesen, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Daten, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen, Ziffern oder dergleichen zu bezeichnen. Es sollte jedoch verstanden werden, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen zu assoziieren sind und lediglich bequeme Etiketten darstellen. Es sei jedoch verstanden, dass in dieser Spezifikation, solange nicht ausdrücklich anderweitig angegeben, eine Diskussion, die sich auf Begriffe wie ”verarbeiten”, ”berechnen”, ”bestimmen” und ”identifizieren” oder ähnliches bezieht, sich auf Aktionen oder Prozesse einer Rechnervorrichtung bezieht, wie einem oder mehrere Computer oder einer ähnlichen elektronischen Rechnervorrichtung oder -vorrichtungen, die Daten manipuliert bzw. manipulieren, welche als physische elektronische oder magnetische Quantitäten in Speichern, Registern oder anderen Informationsspeichervorrichtungen, Übertragungsvorrichtungen oder Anzeigevorrichtungen der Rechnerplattform repräsentiert werden.
  • Das System oder die Systeme, das bzw. die hierin diskutiert sind, sind nicht auf eine bestimmte Hardwarearchitektur oder -konfiguration beschränkt. Eine Rechenvorrichtung kann jede geeignete Anordnung von Komponenten beinhalten, welche ein Ergebnis liefern, das von einer oder von mehreren Eingaben abhängt. Geeignete Rechnervorrichtungen beinhalten Mikroprozessor-basierte Rechnersysteme, welche auf gespeicherte Software zugreifen, welche das Rechnersystem von einer Allzweckcomputervorrichtung zu einer spezialisierten Rechnervorrichtung programmieren oder konfigurieren, welche eine oder mehrere Ausführungsformen des vorliegenden Gegenstandes implementieren. Es kann jede geeignete Programmiersprache, Skriptsprache oder anderer Sprachentyp, oder Kombinationen von Sprachen verwendet werden, um die hierin enthaltenen Lehren in Software zu implementieren, die dazu bestimmt ist, eine Rechnervorrichtung zu programmieren oder zu konfigurieren.
  • Ausführungsformen der hierin offenbarten Verfahren können im Betrieb solcher Rechnervorrichtungen ausgeführt werden. Die Reihenfolge der in den obigen Beispielen dargestellten Blöcke kann geändert werden – beispielsweise können Blöcke umgereiht, kombiniert und/oder in Unterblöcke unterteilt werden. Bestimmte Blöcke oder Prozesse können parallel ausgeführt werden.
  • Die Verwendung von ”eingerichtet zu” oder ”konfiguriert zu” hierin ist als eine offene und einschließende Formulierung gedacht, welche keine Vorrichtungen ausschließt, die eingerichtet sind oder konfiguriert sind, zusätzliche Aufgaben oder Schritte auszuführen. Darüber hinaus ist ”basierend auf” als offen und einschließend gedacht, in dem Sinn, dass ein Prozess, ein Schritt, eine Berechnung oder eine andere Aktion ”basierend auf” einer oder mehreren genannten Bedingungen oder Werten in der Praxis neben den genannten auf zusätzlichen Bedingungen oder Werten basieren kann. Die hierin angegebenen Überschriften, Listen und Nummerierungen dienen lediglich der Einfachheit der Beschreibung und sind nicht als Beschränkung gedacht.
  • Während der vorliegende Gegenstand im Detail mit Bezug auf spezifische Ausführungsformen desselben beschrieben wurde, wird verstanden werden, dass die Fachleute, nachdem diese ein Verständnis des vorstehenden erhalten haben, leicht Abwandlungen zu, Variationen von und Äquivalente von solchen Ausführungsformen schaffen können. Dementsprechend sei verstanden, dass die vorliegende Offenbarung lediglich zu beispielhaften Zwecken und nicht als Beschränkung gegeben wurde, und dass diese nicht die Inklusion derartiger Abwandlungen, Variationen und/oder Hinzufügungen zu dem vorliegenden Gegenstand ausschließt, die den Fachleuten leicht einfallen mögen.

Claims (21)

  1. Computer-implementiertes Verfahren zum Zusammensetzen eines ersten Bildes (126a) und eines zweiten Bildes (126b) mit einem nahtlosen Übergang, wobei das Verfahren umfasst: Bestimmen einer Differenz von Farbwerten von Pixeln (139, 143) zwischen einem ersten Bild (126a) und einem zweiten Bild (126b) entlang einer Begrenzung, die mit einer Position assoziiert ist, an der das erste Bild (126a) relativ zum zweiten Bild (126b) zur Zusammensetzung zu bringen ist; Erzeugen einer anfänglichen Menge von Pixeldaten für jedes Pixel (139, 143) innerhalb eines ausgewählten Bereichs von Pixeln (139, 143), der die Begrenzung beinhaltet, wobei jede der Menge von Pixeldaten für die Pixel (139, 143) entlang der Begrenzung beinhaltet: eine oder mehrere Farbdifferenzkomponenten, die eine Differenz in der Farbe des Pixels (139, 143) zwischen dem ersten Bild (126a) und dem zweiten Bild (126b) repräsentieren basierend auf der bestimmten Differenz von Farbwerten von Pixeln (139, 143), und einen Farbdifferenzindikator, der anzeigt, dass für dieses Pixel (139, 143) eine Farbwertdifferenz existiert; Verwenden der anfänglichen Menge von Pixeldaten, um rekursiv den ausgewählten Bereich von Pixeln (139, 143) mit einem Sampling-Faktor herunterzusamplen, um eine Mehrzahl von heruntergesampleten Bildern (149) zu erzeugen, bis ein Umfang von Pixeln (139, 143) eines letzten heruntergesampleten Bildes (149), das bei einer rekursiven Instanz des Heruntersamplens erzeugt wurde, mit Farbdifferenzindikatoren korrespondiert, die existierende Farbwertdifferenzen anzeigen; und rekursives Hochsampeln des letzten heruntergesampleten Bildes (149), um eine Menge von finalen Farbdifferenzwerten für die Pixel (139, 143) innerhalb des ausgewählten Bildbereichs zu erzeugen, die verwendet werden, um eine Zusammensetzung mit einem nahtlosen Übergang zwischen dem ersten Bild (126a) und dem zweiten Bild (126b) zu erzeugen.
  2. Verfahren nach Anspruch 1, wobei der ausgewählte Bereich von Pixeln (139, 143) Pixel (139, 143) innerhalb der Begrenzung beinhaltet.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei die Farbdifferenzkomponenten eine Differenz in einer roten Farbe, eine Differenz in einer grünen Farbe, und eine Differenz in einer blauen Farbe umfassen.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei jede Instanz des Heruntersamplens umfasst: Identifizieren eines größten Farbdifferenzindikators, Dividieren jeder Farbdifferenzkomponente und jedes Farbdifferenzindikators, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, durch den größten Farbdifferenzindikator, und Multiplizieren jeder Farbdifferenzkomponente und jedes Farbdifferenzindikators, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, mit einem vorbestimmten Faktor.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste Bild (126a) ein Vordergrundbild umfasst, und das zweite Bild (126b) ein Hintergrundbild umfasst.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei der Umfang von Pixeln (139, 143) eines letzten heruntergesampleten Bildes (149) jedes Pixel (139, 143) des letzten heruntergesampleten Bildes (149) umfasst.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Menge von finalen Farbdifferenzwerten erzeugt wird durch Dividieren der Farbwertdifferenzen eines finalen hochgesampleten Bildes (153) durch einen Farbdifferenzindikator, der mit dem finalen hochgesampleten Bild (153) assoziiert ist.
  8. Verfahren nach Anspruch 7, wobei die Menge von finalen Farbdifferenzwerten verwendet wird, um Pixel (139, 143) des ersten Bildes (126a) zu modifizieren.
  9. Verfahren nach Anspruch 8, wobei die modifizierten Pixel (139, 143) des ersten Bildes (126a) mit dem zweiten Bild (126b) zusammengesetzt werden.
  10. Computer-implementiertes Verfahren zum Zusammensetzen eines ersten Bildes (126a) und eines zweiten Bildes (126b) mit einem nahtlosen Übergang zwischen dem ersten Bild (126a) und dem zweiten Bild (126b), wobei das Verfahren umfasst: Identifizieren einer Begrenzung, die mit einem ausgewählten Bereich von Pixeln (139, 143) assoziiert ist, welche einer Position entspricht, an der das erste Bild (126a) relativ zum zweiten Bild (126b) zur Zusammensetzung zu bringen ist; Bestimmen einer Differenz von Farbwerten von Pixeln (139, 143) zwischen dem ersten Bild (126a) und dem zweiten Bild (126b) entlang der Begrenzung; und Verwendung der Differenz von Farbwerten von Pixeln (139, 143) zwischen dem ersten Bild (126a) und dem zweiten Bild (126b) entlang der Begrenzung, um rekursiv den ausgewählten Bereich von Pixeln (139, 143) um einen Sampling-Faktor herunterzusamplen, um eine Mehrzahl von heruntergesampleten Bildern (149) zu erzeugen, wobei jedes Pixel (139, 143) der heruntergesampleten Bilder (149) einem Farbdifferenzindikator entspricht, der anzeigt, ob für das Pixel (139, 143) eine Farbwertdifferenz existiert.
  11. Verfahren nach Anspruch 10, weiter umfassend Normalisieren der Farbdifferenzindikatoren, die mit jedem rekursiv heruntergesampleten Bild (149) assoziiert sind, wobei das Normalisieren umfasst: Identifizieren eines größten Farbdifferenzindikators unter den Farbdifferenzindikatoren, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, und Dividieren jedes der Farbdifferenzindikatoren, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, durch den größten Farbdifferenzindikator.
  12. Verfahren nach Anspruch 11, wobei das Normalisieren weiter umfasst Dividieren jeder Farbdifferenzkomponente, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert ist, durch den größten Farbdifferenzindikator.
  13. Verfahren nach einem der Ansprüche 11 oder 12, weiter umfassend Ergänzen des Normalisierens durch Multiplizieren jedes Farbdifferenzindikators mit einem vorbestimmten Faktor.
  14. Verfahren nach einem der Ansprüche 12 oder 13, weiter umfassend Ergänzen des Normalisierens durch Multiplizieren jedes Farbdifferenzindikators und jeder Farbdifferenzkomponente mit einem vorbestimmten Faktor.
  15. Verfahren nach einem der Ansprüche 11 bis 14, wobei die Farbwertdifferenz von Pixeln (139, 143) eine erste Differenz, die eine Differenz eines roten Farbwerts repräsentiert, eine zweite Differenz, die eine Differenz eines grünen Farbwerts repräsentiert, und eine dritte Differenz, die eine Differenz eines blauen Farbwerts repräsentiert, umfasst.
  16. System, umfassend: einen Prozessor zum Ausführen von Anweisungen, die in einem computerlesbaren Medium auf einer oder auf mehreren Vorrichtungen gespeichert sind, wobei die Anweisungen ein oder mehrere Module umfassen, welche eingerichtet sind, die Schritte auszuführen, welche umfassen: Identifizieren einer Differenz von Farbwerten von Pixeln (139, 143) zwischen einem Vordergrundbild und dem Hintergrundbild entlang einer Begrenzung, die mit einem Ort assoziiert ist, an dem das Vordergrundbild relativ zum Hintergrundbild einzufügen ist; und rekursives Heruntersamplen eines Bereichs von Pixeln (139, 143) innerhalb der Begrenzung um einen Sampling-Faktor, um eine Mehrzahl von heruntergesampleten Bildern (149) zu erzeugen, welche Farbdifferenzindikatoren aufweisen, die mit jedem Pixel (139, 143) der heruntergesampleten Bilder (149) assoziiert sind, wobei die Farbdifferenzindikatoren anzeigen, ob eine Farbwertdifferenz für die entsprechenden Pixel (139, 143) existiert.
  17. System nach Anspruch 16, weiter umfassend Normalisieren der Farbdifferenzindikatoren, die mit jedem rekursiv heruntergesampleten Bild (149) assoziiert sind, wobei das Normalisieren umfasst: Identifizieren eines größten Farbdifferenzindikators unter den Farbdifferenzindikatoren, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, und Dividieren jedes der Farbdifferenzindikatoren, die mit dem entsprechenden heruntergesampleten Bild (149) assoziiert sind, durch den größten Farbdifferenzindikator.
  18. System nach Anspruch 17, wobei das Normalisieren ergänzt wird durch Multiplizieren jedes Farbdifferenzindikators mit einem vorbestimmten Faktor.
  19. System nach einem der Ansprüche 16 bis 18, wobei die Differenz von Farbwerten von Pixeln (139, 143) eine erste Differenz, die eine Differenz eines roten Farbwerts repräsentiert, eine zweite Differenz, die eine Differenz eines grünen Farbwerts repräsentiert, und eine dritte Differenz, die eine Differenz eines blauen Farbwerts repräsentiert, umfasst.
  20. System nach einem der Ansprüche 16 bis 19, wobei das letzte heruntergesamplete Bild (149) rekursiv hochgesamplet wird, um eine Menge von finalen Farbdifferenzwerten für den Bereich von Pixeln (139, 143) innerhalb der Begrenzung zu erzeugen, die verwendet werden, um eine Zusammensetzung mit einem nahtlosen Übergang zwischen dem Vordergrundbild und dem Hintergrundbild zu erzeugen.
  21. Computerprogrammprodukt, welches computerlesbare Anweisungen beinhaltet, welche, wenn sie auf einem Rechner oder einem System geladen und ausgeführt werden, den Rechner oder das System dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 15 auszuführen.
DE102016007215.6A 2015-06-14 2016-06-14 Kontrollieren der Glattheit eines Übergangs zwischen Bildern Active DE102016007215B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562175361P 2015-06-14 2015-06-14
US62/175,361 2015-06-14
US15/160,932 US10049435B2 (en) 2014-07-31 2016-05-20 Controlling smoothness of a transmission between images
US15/160,932 2016-05-20

Publications (2)

Publication Number Publication Date
DE102016007215A1 true DE102016007215A1 (de) 2016-12-15
DE102016007215B4 DE102016007215B4 (de) 2023-09-21

Family

ID=56894776

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016007215.6A Active DE102016007215B4 (de) 2015-06-14 2016-06-14 Kontrollieren der Glattheit eines Übergangs zwischen Bildern

Country Status (4)

Country Link
US (3) US10049435B2 (de)
AU (2) AU2016203365B2 (de)
DE (1) DE102016007215B4 (de)
GB (1) GB2541973B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049435B2 (en) * 2014-07-31 2018-08-14 Adobe Systems Incorporated Controlling smoothness of a transmission between images
EP3649618A1 (de) 2017-07-03 2020-05-13 Artomatix Ltd. Systeme und verfahren zur bereitstellung von nichtparametrischer textursynthese beliebiger form und/oder materialdaten in einem einheitlichen rahmen
US11081139B2 (en) 2018-10-12 2021-08-03 Adobe Inc. Video inpainting via confidence-weighted motion estimation
US10810775B2 (en) * 2019-02-20 2020-10-20 Adobe Inc. Automatically selecting and superimposing images for aesthetically pleasing photo creations
EP3953897A4 (de) * 2019-04-09 2022-12-14 Michael Brown System und verfahren zur verarbeitung eines aufgenommenen bildes zur ermöglichung der nachbearbeitungsmodifizierung
CN110502205B (zh) * 2019-08-29 2023-08-01 百度在线网络技术(北京)有限公司 图片显示边缘处理方法、装置、电子设备和可读存储介质
US11037531B2 (en) * 2019-10-24 2021-06-15 Facebook Technologies, Llc Neural reconstruction of sequential frames
US11756210B2 (en) 2020-03-12 2023-09-12 Adobe Inc. Video inpainting via machine-learning models with motion constraints
CN111476146B (zh) * 2020-04-03 2023-04-07 北京金沙江科技有限公司 一种基于移动端的学历证件照标准化处理方法
US11823357B2 (en) 2021-03-09 2023-11-21 Adobe Inc. Corrective lighting for video inpainting
CN113610838A (zh) * 2021-08-25 2021-11-05 华北电力大学(保定) 一种螺栓缺陷数据集扩充方法
US11978143B2 (en) * 2022-05-23 2024-05-07 Lemon Inc. Creation of videos using virtual characters
CN115767290B (zh) * 2022-09-28 2023-09-29 荣耀终端有限公司 图像处理方法和电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914748A (en) 1996-08-30 1999-06-22 Eastman Kodak Company Method and apparatus for generating a composite image using the difference of two images
US5986771A (en) * 1997-09-19 1999-11-16 Eastman Kodak Company Method for computing a control signal for combining digital images
US7076117B2 (en) 2001-06-19 2006-07-11 International Business Machines Corporation Methods and apparatus for cut-and-paste editing of multiresolution surfaces
US6616281B1 (en) * 2002-08-07 2003-09-09 Imatte, Inc. Visible-invisible background prompter
US7024054B2 (en) 2002-09-27 2006-04-04 Eastman Kodak Company Method and system for generating a foreground mask for a composite image
GB2405067B (en) 2003-08-01 2008-03-12 Caladrius Ltd Blending a digital image cut from a source image into a target image
US7822289B2 (en) 2006-07-25 2010-10-26 Microsoft Corporation Locally adapted hierarchical basis preconditioning
US8295632B2 (en) 2009-01-21 2012-10-23 Yissum Research Development Company of Jerusalem Ltd. System and method for edge-enhancement of digital images using wavelets
US8379972B1 (en) * 2009-12-01 2013-02-19 Adobe Systems Incorporated Color decontamination for image compositing
US8340415B2 (en) * 2010-04-05 2012-12-25 Microsoft Corporation Generation of multi-resolution image pyramids
US9047653B2 (en) 2010-08-24 2015-06-02 Hewlett-Packard Development Company, L.P. Stitched digital images
US8526763B2 (en) 2011-05-27 2013-09-03 Adobe Systems Incorporated Seamless image composition
EP2724255B1 (de) 2011-06-27 2020-12-09 Yissum Research Development Company of The Hebrew University of Jerusalem Ltd. Anwendung einer schnellen nummerischen annäherung von faltungen mit filtern für bildverarbeitungszwecke
US8811764B1 (en) 2012-10-25 2014-08-19 Google Inc. System and method for scene dependent multi-band blending
US9036909B2 (en) 2013-01-28 2015-05-19 Adove Systems Incorporated Pyramid collapse color interpolation
US9903181B2 (en) * 2014-07-10 2018-02-27 Baker Hughes, A Ge Company, Llc Communication and lock open safety valve system and method
US10049435B2 (en) * 2014-07-31 2018-08-14 Adobe Systems Incorporated Controlling smoothness of a transmission between images
US9734599B2 (en) * 2014-10-08 2017-08-15 Microsoft Technology Licensing, Llc Cross-level image blending
CN104375797B (zh) 2014-11-17 2020-02-21 联想(北京)有限公司 一种信息处理方法及电子设备

Also Published As

Publication number Publication date
GB2541973B (en) 2018-12-19
AU2016203365A1 (en) 2017-01-05
AU2020220047B2 (en) 2021-04-22
GB201610331D0 (en) 2016-07-27
AU2016203365B2 (en) 2020-08-06
US20160364846A1 (en) 2016-12-15
GB2541973A (en) 2017-03-08
US20180293714A1 (en) 2018-10-11
AU2020220047A1 (en) 2020-09-03
US20190333194A1 (en) 2019-10-31
US10049435B2 (en) 2018-08-14
DE102016007215B4 (de) 2023-09-21
US10915991B2 (en) 2021-02-09
US10402948B2 (en) 2019-09-03

Similar Documents

Publication Publication Date Title
DE102016007215B4 (de) Kontrollieren der Glattheit eines Übergangs zwischen Bildern
DE60221757T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Entfernung des Mosaikeffekts und Grössenänderung von Rohbilddaten
DE60101013T2 (de) Farbtransformationsverfahren zum Abbilden von Farben in Bildern
DE102014015353B4 (de) Dynamikkompression
DE102011078662B4 (de) Erfassen und Erzeugen von Bildern mit hohem Dynamikbereich
DE60009644T2 (de) Farbtonumsetzung unter Verwendung lokaler Information
DE602004001483T2 (de) Verfahren und System zur automatischen Reduzierung von Aliasing-Artefakten
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
CN105374007B (zh) 融合骨架笔画和纹理特征的铅笔画生成方法和装置
DE60017600T2 (de) Digitales bilderzeugungsverfahren
DE69725809T2 (de) Anpassungsschichten für die Manipulation von zusammengesetzten Bildern
DE10319094B4 (de) Verfahren und Vorrichtung zum Zuordnen einer Bildverbesserung zu einer Farbe
US9813614B2 (en) Method and system for analog/digital image simplification and stylization
DE60127016T2 (de) Verfahren und Gerät zur Durchführung einer lokalen Farbkorrektur
DE102016011380A1 (de) Bildsynthese unter Verwendung einer Aktivmaske
DE102017102952A1 (de) Eine Vorrichtung zum Erzeugen eines dreidimensionalen Farbbildes und ein Verfahren zum Produzieren eines dreidimensionalen Farbbildes
CN116051428B (zh) 一种基于深度学习的联合去噪与超分的低光照图像增强方法
DE102020133963A1 (de) Systeme und Verfahren zur Abbildrauschunterdrückung unter Verwendung von tiefen gefalteten Netzwerken
DE112015003626T5 (de) System und verfahren zum erhöhen der bittiefe von bildern
CN105763768A (zh) 一种图像处理方法、装置和系统
CN112991165A (zh) 一种图像的处理方法及装置
DE102018006199A1 (de) Lokale Farbbereichsauswahl
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
CN111724312A (zh) 一种处理图像的方法及终端
DE102014007023A1 (de) Bildeffektextraktion

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNER: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division