mieki256's diary



2013/07/12(金) [n年前の日記]

#1 [cg_tools] 写真をアニメの背景っぽくできないか実験

_写真を絵のように見せる写真加工技術「PhotoDramatica」トップ - あやえも研究所 を参考にしながら Photoshop Elements で実験してたのだけど。数が多いと大変だなと。ImageMagick を使って、自動でまとめて処理できないかなと。 しかし、カットアウトフィルタが難問。

ImageMagick で -segment を使ってどうにかできないかと思ったけれど、結果も全然違うし、異様に時間がかかる時があるし。なかなか難しい。

一応batファイルは書いてみたけど…。カレントフォルダ中の src*.jpg、src*.png 等を次々に変換するbatファイル。
@echo off
@rem ImageMagick を使って写真を手描きイラスト風に変換できるかどうかのテスト
@rem カレントフォルダ中の src??.* ファイルに対して処理を行う。

setlocal enabledelayedexpansion
for %%i in (src*.*) do (
    set SRC=%%i
    set OUTFN=result_%%~ni
    echo ----------------------------------------
    echo !SRC! に対して処理をします
    
    echo リサイズします
    convert -resize 800x !SRC! !OUTFN!_tmp1.png

    echo コントラスト調整・彩度調整・色相をずらします
    @rem convert tmp1.png -auto-level tmp2_0.png
    convert -contrast -contrast -contrast -modulate 100,130,105 !OUTFN!_tmp1.png !OUTFN!_tmp3.png

    echo cutoutっぽいフィルタをかけます
    @rem convert -resize 1024x !OUTFN!_tmp3.png !OUTFN!_tmp_s_3.png
    @rem convert -segment 2x3 !OUTFN!_tmp_s_3.png !OUTFN!_tmp_s_4.png
    @rem convert -resize 1920x !OUTFN!_tmp_s_4.png !OUTFN!_tmp4.png

    convert -segment 1x3 !OUTFN!_tmp3.png !OUTFN!_tmp4.png

    echo 合成用マスク画像を生成します
    convert !OUTFN!_tmp4.png -fill "#9a9a9a" -draw "color 0,0 reset" !OUTFN!_tmpg60.png
    convert !OUTFN!_tmp4.png -fill "#c0c0c0" -draw "color 0,0 reset" !OUTFN!_tmpg75.png

    echo 合成します
    convert !OUTFN!_tmp3.png !OUTFN!_tmp4.png !OUTFN!_tmpg60.png -composite !OUTFN!_tmp4_1.png

    echo medianフィルタをかけます
    convert -median 3 !OUTFN!_tmp4_1.png !OUTFN!_tmp5.png

    echo 合成します
    convert !OUTFN!_tmp4_1.png !OUTFN!_tmp5.png !OUTFN!_tmpg75.png -composite !OUTFN!_tmp6.png

    @rem @echo 輪郭を抽出して合成します
    @rem convert +dither -colorspace Gray -colors 2 -edge 1 -negate -antialias !OUTFN!_tmp6.png !OUTFN!_tmp7.png
    @rem convert !OUTFN!_tmp6.png !OUTFN!_tmp7.png -compose multiply -composite !OUTFN!_tmp8.png
    
    del !OUTFN!_tmpg*.png
    echo !SRC! に対する処理は終了しました
)
endlocal
echo 終了しました
せめてフルHDサイズで処理をしたかったのだけど、-segment の処理が返ってこないわ、medianフィルタの結果が今一つだわで。仕方なく 800x* で処理をしたり。

以下のような結果が得られた。元画像、結果画像、の順。
3_source
3_result
4_source
4_result
1_source
1_result
2_source
2_result
手描きに見えるかというと、なんとも微妙。

ちなみに、Photoshop Elements で処理すると、以下のような感じに。
1_result_PE
2_result_PE
ImageMagick の結果画像よりも、かなりソレっぽい気がする。やはり、カットアウトフィルタ相当の処理ができないあたりが厳しいのではと。

元画像は、 _PAKUTASO さんのソレを使わせてもらいました。ありがたや。

GIMPでもカットアウトフィルタが使えないものか。 :

_Cutout filter for gimp 2.6.6? - Gimptalk - Premier Gimp Community
_GIMP : scripts for photo effects(web.archive)
_Photo effects | GIMP Plugin Registry

昔はカットアウトフィルタっぽいことができるスクリプトがあったらしい…。が、GIMP 2.4時代のスクリプトらしくて。

諦めきれずに検索していたら、GIMP2.6、GIMP2.8 用に修正されたスクリプトがあるらしいと知り。

_scripts that work in gimp 2.6
_scripts that work in gimp 2.8

ありがたや。しかし、早速導入してみたものの、減色処理を肝として使っているせいか、全然違う結果になるような…。

Photoshopのカットアウトフィルタって、ベクターデータというかポリゴン単位で境界を作ってるっぽいのだけど。どういう処理をしているんだろう…。

この記事へのツッコミ

Re: 写真をアニメの背景っぽくできないか実験 by 名無しさん    2015/05/09 15:59
わたしもカットアウトのアルゴリズムを知りたいです
試しにぼかし(輪郭線の単純化)→ポスタリゼーション(諧調)で再現しようと思ってやってみたら全然それっぽくなくて涙目です
輪郭線もそうですが色調を損なわない色選びもよくできてますよね(範囲内のピクセルの平均取ってなんてやってたらもっとずっと重いはずですし)

以上、1 日分です。

過去ログ表示

Prev - 2013/07 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project