Ich suche nach einer Möglichkeit, einen "green screen" Portraithintergrund von vielen Bildern automatisch zu entfernen (= transparent zu machen).
Meine bisherigen Versuche waren ... ahum ... weniger erfolgreich.
Ich suche nach any Hinweisen oder Lösungen oder Artikeln zu diesem Thema. Kommerzielle Lösungen sind auch in Ordnung.
Und bevor Sie kommentieren und sagen, dass es unmöglich ist, dies automatisch zu tun: Nein, ist es nicht. Es gibt tatsächlich eine Firma, die genau diesen Service anbietet, und wenn ich keine andere Lösung finde, werden wir sie verwenden. Das Problem ist, dass sie ihren Algorithmus mit ihrem Leben schützen und daher ihre Software nicht verkaufen / lizenzieren. Stattdessen müssen wir alle Bilder zu ihnen FTP, wo die Verarbeitung erfolgt ist und dann FTP das Ergebnis zurück nach Hause. (Und nein, sie haben kein unterbezahltes Personal, das in den Philippinen versteckt ist, das handhabt das, weil wir einige tausend Bilder pro Tag sprechen ...) Jedoch begrenzt dieser Ansatz seine Nützlichkeit aus mehreren Gründen. Daher würde ich mir eine Lösung wünschen, bei der dies sofort erledigt werden kann, während ich offline im Internet bin.
BEARBEITEN : Meine "Porträts" stellen Personen dar, die Haare haben - was ein wirklich schwieriger Teil ist, da der grüne Hintergrund in die Haare blutet. Ein anderer schwieriger Teil ist, wenn es möglich ist, zwischen dem Grün im Hintergrund und dem gleichen Grün in den Völkerkleidern zu unterscheiden. Die Firma, von der ich oben gesprochen habe, behauptet, dass sie es tun kann, indem sie herausfindet, ob der grüne Bereich scharf ist (scharf oder unscharf).
Da Sie kein Bild zur Verfügung gestellt haben, habe ich eines aus dem Internet ausgewählt, das einen Chroma-Key mit verschiedenen Grünabstufungen und ein erhebliches Rauschen aufgrund der JPEG-Komprimierung aufweist.
Es gibt keine technische Spezifikation, also habe ich Java und Marvin Framework verwendet.
Eingabebild:
Der Schritt 1 konvertiert einfach grüne Pixel in Transparenz. Im Grunde verwendet es eine Filterregel im HSV-Farbraum.
Wie Sie bereits erwähnt haben die Haare und einige Grenzpixel Farben, die mit Grün gemischt sind. Um dieses Problem zu reduzieren, werden diese Pixel im Schritt 2 gefiltert und ausgeglichen, um den Grünanteil zu reduzieren.
vorher:
nach:
Schließlich wird im Schritt 3 eine Transparenz für alle Übergangspixel angewendet. Das Ergebnis wird bei hochwertigen Bildern noch besser sein.
endgültige Ausgabe:
Quellcode:
%Vor%Mit PaintShop Pro können Sie Hintergründe basierend auf der Auswahl einer Farbe entfernen. Sie haben auch einen Entfernungs-Hintergrund-Zauberstab, der alles entfernt, was Sie berühren (diese Pixel werden in Transparenz umgewandelt). Sie können die "Toleranz" für den Stab so einstellen, dass er Pixel entfernt, die denen ähneln, die Sie berühren. Das hat in der Vergangenheit sehr gut funktioniert.
Um es zu automatisieren, würden Sie ein Skript in PSP programmieren das tut, was Sie wollen und dann von Ihrem Programm aus aufrufen. Dies könnte eine kluge Art sein, einen automatischen Ersatz zu machen, aber es wäre die billigste, schnellste Lösung, ohne einen Haufen C # / C ++ - Imaging-Code schreiben oder eine Handelsagentur bezahlen zu müssen.
Sie sagen, Sie zahlen für das, was Sie bekommen.
Tags und Links image-processing chromakey