zeichne echte Bilder

8

weiß jemand, dass wir aus echten Bildern, die mit Kameras aufgenommen wurden, in den Cartoon-Raum umwandeln können?

Bitte beachten Sie, dass mein Ziel nicht ist, Animationen oder Ähnliches zu erstellen, sondern nur, wenn möglich, in "Cartoon-Farben" zu übersetzen.

wird einfach in einen Raum requantisiert, in dem es weniger Quantisierungsstufen gibt. Oder sind andere spezifische Transformationen besser?

jede Hilfe wird nützlich sein, da ich dazu kein Material finden konnte.

Thnx im Voraus.

    
Egon 17.10.2010, 17:54
quelle

5 Antworten

4

Was Sie versuchen, wird meistens aus 3D-Modellen gemacht und heißt cel-shading , oder "Toon-Schattierung". Grundsätzlich versuchen Sie, gleichmäßige Farben zu erzwingen und abrupte Übergänge in bestimmten Winkeln zur Lichtquelle zu erzwingen.

Offensichtlich lässt sich dies nicht gut auf 2D-Eingabebilder übertragen. Was Sie können tun, besteht darin, zu requantisieren, aber sicherzustellen, dass Sie Bereiche gleichmäßig füllen und dort, wo der Bildgradient hoch ist, brechen.

Nichtlineare Diffusion ist eine Rauschunterdrückungstechnik, die Regionen dazu zwingt, gleichmäßig zu werden, um Rauschen zu entfernen . Wenn Sie es für zu viele Iterationen durchlaufen lassen, erhalten Sie ein Cartoon-Bild.

Ich habe das vor vielleicht 2-3 Jahren implementiert und es hat überraschend gut funktioniert, wenn man bedenkt, dass es nicht so schwer war, es zu implementieren. Sie werden jedoch eine GPGPU-Implementierung benötigen, weil sie langsam ist!

    
André Caron 17.10.2010, 18:25
quelle
4

Die Verschiebung der Pyramidenmitte + Umriss der erkannten Kanten scheint die Aufgabe zu erfüllen.

Der Code:

%Vor%

Hier ist ein Ergebnis, das ich bekommen habe:

Details: OpenCV Tutorial Teil 6

    
BloodAxe 23.07.2012 14:24
quelle
2

Sie können sich auch die mittlere Schichtsegmentierung ansehen. Eine Implementierung ist hier verfügbar: EDISON

    
carlosdc 17.10.2010 20:15
quelle
2

Komplette Aufnahme im Dunkeln:

  1. In HSV-Farbraum umwandeln (cvtColor mit CV_BGR2HSV)
  2. Lassen Sie H (ue) in Ruhe oder quantisieren Sie es auf ein kleineres Set, wenn Sie
  3. möchten
  4. Binärschwelle S (auration) mit einer niedrigen Schwelle, so dass Pastelle auf Weiß drücken
  5. Binäre Schwelle V (alue) mit einer niedrigen Schwelle, so dass dunkle Materie zu schwarz wird

Absolut ungeprüft. Wahrscheinlich spricht das aus meinem Hut ... Aber sollte CPU-Auslastung ziemlich niedrig sein, wenn es funktionieren würde. Das scheint mir die Art von Dingen zu sein, die man mit Schiebereglern für die in den Schritten 2 bis 4 benötigten Werte ansteuert und einfach damit herumspielt.

BEARBEITEN: Ein Freund hat darauf hingewiesen, dass Sie möglicherweise auch Linien um Objekte herum haben möchten. Mein erster Gedanke wäre, cvCanny zu verwenden, um Kanten auszusortieren (benötigt ein Graustufenbild ... ich bin mir nicht sicher, ob es besser wäre, dies vor oder nach dem HSV-Cartoon zu tun. Wahrscheinlich vorher). Diese sind ein Pixel breit, was möglicherweise nicht genug ist. Vielleicht möchten Sie dilate ein wenig erweitern, um sie zu erweitern. Sie sind weiß auf schwarzem Hintergrund, so dass Sie sie von Ihrem Cartoon-farbigen Bild subtrahieren können. Dadurch werden die Pixel an den Stellen gezogen, an denen die Linien auf 0 reduziert sind (Sättigungsarithmetik zur Rettung), aber die anderen Pixel bleiben alleine. p>     

DigitalMonk 29.10.2010 01:54
quelle
2

Dein Begriff "Cartoon Space" ließ mich denken, dass du vielleicht von dieser Idee ausgehen solltest:

  1. Erstellen Sie einen Cartoon-Farbraum, den Sie mögen, mit vielleicht 20-30 schönen, hellen Farben, die den größten Teil des regulären RGB-Raums abdecken, aber ein helles / glänzendes Thema haben (oder welches Cartoon-Farb-Thema Sie auch mögen).
  2. Geben Sie Ihr Bild an, nicht zu einer Teilmenge der verfügbaren Farben im Bild, sondern zu den Farben in Ihrem Cartoonfarbraum (z. B. passen Sie jede Farbe der nächsten Farbe in Ihrem Cartoonfarbraum an).
  3. Bonuspunkte: Beseitigen Sie kleine farbige Bereiche, um ein einheitlicheres einfarbiges Aussehen zu erhalten.
  4. Weitere Bonuspunkte: Fügen Sie jeder einfarbigen Region schwarze Umrisse hinzu, um zusätzliche Cartoonhaftigkeit zu erzielen. Vielleicht variiert die Linienstärke mit dem Farbverlauf im Originalbild.
  5. Optionale Optimierung: Konvertieren Sie alle Farben in den HSV-Farbraum , führen Sie Schritt 2 nur im Farbtonkanal für zusätzlichen Schatten aus Immunität.
jilles de wit 29.12.2011 13:19
quelle