ことのあらまし

年末の休みにTwitterを眺めていたらNPOSさんの投稿が流れてきて面白そうだったのでGo言語でもやってみた。

作ったもの

install

go install github.com/ieee0824/ndcd-go/ndcd

使い方

大本の論文ではドットの大きさを指定するようになっているが、このライブラリでは生成する画像の縦の大きさを指定するようになっている。
もしかしたら大本の実装と同じようにするかもしれない。

実行例

ndcd -i 入力ファイル -o 出力ファイル -oh 64 -bt box -bs 10 -c 1 -g 0.8 -s -oe 512
生成例
生成例

コマンドオプション

-b

明るさの補正パラメーター
指定すると処理する前に画像の明るさ調整が入ります

-bs

ぼかし処理のパラメーター
指定すると処理する前に画像のぼかし処理が入ります
jpegなどのノイズをある程度ごまかせます

-bt

ぼかしの種類を指定します
gaussianboxが指定できます
デフォルトは gaussian です

-c

コントラストの補正パラメーター
指定すると処理する前に画像のコントラスト調整が入ります

-cq

色数の量子化パラメーター
指定すると処理する前に画像の色数を減らします

-g

ガンマ補正パラメーター
指定すると処理する前に画像のガンマ補正が入ります

-i

入力画像のパス

-o

出力画像のパス

-s

先鋭化処理のパラメーター
指定すると処理する前に画像の先鋭化処理が入ります

-oh

出力画像の高さ
ドット絵の生成される高さです

-oe

出力したドット絵を拡大します
-oe, -ohが指定された場合, -ohの高さで生成したあとに-oeで指定された大きさに拡大します

所感

実際の写真よりもアニメ絵の方が綺麗に生成されることが多い気がする。
また、背景画像がスッキリしている方が画像としてきれい。