Guten Tag Ich möchte mir für ein Projekt einen "Down" Skaler bauen. Es geht also darum z.b. ein Videobild das jetzt mal digital vorliegen mag, in ein kleineres umzuwandeln. Wie skaliert man, welche verbesserungsmethoden gibt es, oder kurz gesagt wonach kann man suchen. Ich möchte das entweder mit schnellem Prozessor oder FPGA umsetzen. Es geht aber erst einmal um die Theorie. Jede Info außer "lass es, gibt es ja schon, u.s.w." hilft mir weiter.
... nimm jedes zweite Pixel der zweiten Zeile. usw damit bleibt Dein Bild auch noch bei seeeeehr großer Verkleinerung schemenhaft erkennbar! Gruß Fred
Wenn dein Zielbild zB 40 px breit ist und dein Ausgangsbild 60px musst du im Ausgangsbild für jeden Pixel im Zielbild 60/40 px Schritte machen, damit landest du zwischen den Pixeln. Den Nachkommawert der aktuellen Position kannst du nehmen um zwischen den Pixeln linear zu interpolieren.
OK, sowas geht ja, gibt es da auch noch Softwarespielereihen um das ganze schärfer oder genauer darzustellen, bis jetzt ist das ja zeitlich gesehen nichts unmögliches. (Was gut ist) Ich kenne aus dem DTP Bereich RasterImageProzessoren (Rips) die habens ganz schön in sich.
Mit der beschriebenen linearen interpolation hat man schon nen recht brauchbares bild. Wenn das Seitenverhältnis ein anderes ist gibt es noch Technologien welche das Bild unverzerrt skalieren können (rechenintensiv).
Es gibt im Wesentlichen 2 Moeglichkeiten. Man legt das neue Bild skaliert auf das Alte. 1) Man nimmt der Farbwert an der alten position 2) Man gibt dem neuen Pixel die Farbe der im alten Bild ueber dieses Pixel integrierten Flaeche. Version 2 gibt mehr zu rechnen.
Auch nicht schlecht, bis jetzt habe ich alles soweit verstanden, gibt es dafür einen Fachnamen oder ein Tutorial oder Bilder die Unterschiede verdeutlichen.
Ich war da mal Fachmann - ist aber schon lange her. Schon vor der Zeit des Internet, so dass ich auf Links nicht verweisen kann. Ich meine aber, bei Wikipedia schon Themen dazu gesehen zu haben. Technisch richtig und aufwendig sind zwei Abtastratenwandlungen. Erst mal noch oben, also soweit die Pixelzahl vervielfältigen, dass die neue Zahl Pixeln pro Zeile ein ganzzahliger Teiler ist (KGV). Und dann wieder nach unten auf die gewünschte Zahl Pixeln/Zeile. Bei dem Beispiel von Marius S. wäre das: Zuerst die 60pel auf 120pel aufblähen, also Abtastrate verdoppeln, dann 120 auf 40pel reduzieren durch ARW um Faktor 3 nach unten. Die ursprüngliche Folge sei: x1, x2, x3, x4 usw. Man fügt zunächst '0' ein, um auf die doppelte Rate zu kommen, also x1, 0, x2, 0, x3, 0, usw., filtert dann, erhält die Folge x1a, x1b, x2a, x2b, x3a, x3b, usw., nimmt jeden 3. Wert und das Ergebnis ist x1a, x2b, x3a, x4b usw. Das ganze natürlich zweidimensional - also in vertikaler Richtung auch. Zur Abtastratenwandlung gehört natürlich auch eine entsprechende Anwendung von Filtern. Dabei kann man sich durch geschickte Verfahren die u.U. hohe Zwischentaktfrequenz (manchaml?) sparen, mit Grips und Mathe ... Die oben genannten Mittelwertbildungen bzw. Interpolationen sind zwar auch nichts anderes ( (a+b)/2 ist das einfachste digitale Filter ) , aber diese bringen eine stärkere Verschlechterung der Schärfe als notwendig wäre.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.