2016-08-13 5 views
1

私は現在、gpu-image port for androidを使って写真編集アプリを作成しており、滑らかなスキンフィルタを適用したいと考えています。GLES 2.0滑らかな肌のためのシェーダベースのフィルタ

私はいくつかのGoogleの後に私は両側のぼかしとメディアンフィルタがこの効果を達成するためのいくつかのフィルタであることが分かった。

しかし、gpu-imageで両側のぼかしを適用しようとすると、眉毛や唇のように他の部分が滑らかになるため、結果はあまり満足できません。

誰かが私に別の良いフィルタを提案することができますか、または滑らかなスキン効果を達成するためにいくつかのフィルタを組み合わせる方法がありますか?私は本当にこれを複製したい:like in the right-most image

+0

誰も私を助けてくれていない.....? : – ttson153

+0

あなたは成功しましたか? – AmniX

+0

@AmniXそれほど多くはありません。私は美しいfsを持っている[このgithubプロジェクト](https://github.com/wuhaoyu1990/MagicCamera)を見つけました。あなたは何か考えていますか? – ttson153

答えて

1

私はAndroid用のHighPassScalFilterを作成するために管理し、それもGithubにあります。

https://github.com/AmniX/HighPassSkinSmoothing-Android

実装のようなものです:

enter image description here

ハイパススキンスムージングの背後にある主な理論は周波数分離である

論。

周波数分離は、より詳細なテクスチャから画像のトーンとカラーを分割します。ディジタル画像は正弦波として表される異なる周波数として解釈できるので可能である。

画像の高周波数には、肌の毛穴、髪の毛、細かい線、肌の不完全さなどの詳細に関する情報が含まれます。

低周波数は、ボリューム、トーン、および色の変化に関する情報を含む画像データです。言い換えれば、影と明るい部分、色と色調。

https://fstoppers.com/post-production/ultimate-guide-frequency-separation-technique-8699 ハイパスフィルタを使用することで、画像を高い空間周波数と低い空間周波数に分離することができます。次に、画像の一定の周波数に調整(図の曲線調整)を適用することで、細かいディテールを維持しながら画像をスムージングすることができます。 乾杯。

+0

これは理論的に質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にすることが望ましいです(// meta.stackoverflow.com/q/8259)。 –

+0

これを作成して本当にうまくいくことに感謝します。しかし、GPUImageフレームワークでGLSLを使ってリアルタイムの解決策を見つけるのは、画像がビットマップではなくGLESによってレンダリングされるためです。あなたの理論との道、方法によって+1 – ttson153

+0

完了したらいつでも同じことを教えてください。 Btw、同じものにGPUImageを使用するiOS用ライブラリがあります。 ここにリンクがあります。 https://github.com/YuAo/YUGPUImageHighPassSkinSmoothing – AmniX

関連する問題