私のアプリは、漫画化したい人の写真やビデオで動作します。そのため、手動でそれを行うアルゴリズム(画像操作クラスを備えた製品にはc ++/Qtを使用)またはおそらくそれを行うCLIプログラムを使用して、独自のアプリから呼び出して使用できます。
遊ぶためのいくつかのアルゴリズムは次のとおりです。
これらはかなり基本的であり、すべて実装が非常に簡単です。中央値およびボックスぼかしフィルターは、線形時間複雑度w.r.tで実装できることに留意してください。カーネル半径。
その他の編集:
Huangのアルゴリズムのアイデアが得られたら、ボックスブラーフィルターの実装は非常に簡単です。
読み物:
その他の読み物には、セグメンテーションとエッジトレース用の Gonzalez&Woodsのデジタル画像処理 (旧版のようです)が含まれます。 8ウェイエッジトレースは、頭を曲げるのが非常に難しい場合があります(オンピクセルエッジまたはピクセル間エッジの選択と、エッジへのラッチ方法の選択)。いくつかのコードを共有したいと思いますが、100人のライナーはここにスムーズに収まりません。
toonyphotos.com のように、rotoscopyを試すことができます。
フリースタイル 、 非フォトリアリスティックレンダラー を Blender =。カートゥーンモードでの出力の例を次に示します。
(ソース: sourceforge.net )
私は自分でこれをやったことはありませんが、画像に漫画風の外観を与える可能性のある2つのステップについて考えています。
エッジを検出し、それらのエッジにかなり太い線(数ピクセル)を描画します。
画像の色数を減らします。
これが役立つかどうかはわかりませんが、 このチュートリアル Photoshopの場合は次のことをお勧めします。
結果は次のとおりです。
あなたのプログラムで似たようなことができると思います。
比較的簡単です。手順は次のとおりです。
写真を簡素化/抽象化する双方向フィルタリング。バイラテラルフィルターを分離して、高速化することもできます。勾配に沿って1dでバイラテラルフィルターを実行し、次に勾配の法線に沿って実行します。
エッジを検出します。たとえば、ガウシアンの差分アルゴリズムを使用します。 DoGを勾配方向に使用し、動線に沿って滑らかにすることができます。動線を取得するには、構造テンソルを介して取得できるEdge Tangent Flow(ETF)を取得する必要があります。
色を量子化します。実際には、輝度を量子化して、セルシェーディングまたはトゥーンシェーディングをシミュレートします。
量子化された抽象画像と検出したエッジをブレンドします。
これにより、セルシェーディングの漫画のように見えるレンダリング画像が得られます。
まさにこれを行ういくつかのフリーソフトウェア(win64用)を作成しました: http://3dstereophoto.blogspot.com/p/painting-software.html
ソフトウェアの名前は「The Cartoonist」であり、ここで実際に動作を確認できます。 http://3dstereophoto.blogspot.com/2018/07/non-photorealistic-rendering-software_9.html
これらは、主に3D写真(深度マップ、写真測量など)を扱う私のブログへのリンクです。
実際にはツールを知りませんが、osg(openSceneGraph)を見ることができます
osgFXライブラリがあり、漫画効果があります...多分あなたはそのライブラリからインスピレーションを得ることができます...
多分(私は知らない)imagemagickには多くの機能があります、多分それはそのような機能を持っていますが、私は知らない...