Um die Unschärfe der Linse zu simulieren, müssen Sie besonders auf den Bokeh-Effekt achten. Um den Bokeh-Effekt zu erzeugen, müssen Sie eine binäre Kernel-Unschärfe-Methode verwenden (wie Disc-Unschärfe, bei der Sie alle Pixel um das aktuelle Pixel in einer Schüsselform mitteln). Außerdem müssen Sie das Bild gamma korrigieren, so dass die dunklen Teile wirklich dunkel werden, so dass nur die hellen Flecken das Bokeh erzeugen. Sie können das Bild dann ohne Gammakorrektur wieder unscharf machen und das Maximum von beiden erhalten.
Pseudo-Code:
gammaCorrectedImage = Bild^3 // Oder was auch immer Macht für Sie arbeitet.
bokeh = discBlur (gammaCorrectedImage)
bokeh = WürfelRoot (Bild) // Um das ursprüngliche Gamma zurück zu bekommen.
blurImage = discBlur (Bild)
finalImage = max (Bokeh, blurImage)
bekam ich einen nahe genug Ergebnis.
Was ist ein echter Linseneffekt? –
Defokussierungsunschärfe ist ungefähr Faltung mit einem Bild Ihrer beabsichtigten Öffnung (vielleicht ein Kreis?). Wenn Sie etwas komplizierteres wollen, erklären Sie bitte genau was Sie wollen. – harold
Ein echter Linseneffekt ist so etwas wie ein echter Kameraunschärfeeffekt. Ich bin mir sicher, dass du weißt, dass es eine ganz andere Front ist als die einfache Unschärfe. – Farsheed