1. deltam

    Posted

    deltam
Changes in title
+画像を雑に分類する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,51 @@
+
+Imagemagickのidentifyコマンドで取れる統計値を使って、大雑把に画像を分類する。
+機械学習とかディープラーニングとか、そういう高度な話ではない。
+
+
+大量の画像があって、似通った画像を探したいときには役に立つかもしれない(おおざっぱだけど)。
+
+# identifyで画素平均値をとる
+
+次のコマンドで画素平均とファイル名のリストを出力する。ついでに数字順ソートしておく
+
+```bash
+$ identify -format '%[mean], %f\n' *.png |sort -n > list.txt
+$ head list.txt
+7088.67, 574.png
+7145.75, 387.png
+7222.86, 318.png
+7259.57, 084.png
+7619.62, 155.png
+7637.2, 158.png
+7639.7, 177.png
+7652.95, 305.png
+7690.87, 519.png
+7693.43, 364.png
+```
+
+# 似た画像順に並ぶようリネームする
+
+ファイル名のprefixに画素平均順の連番を付け足して、ファイル名でソートすると似た画像が固まるようにする。
+
+
+```bash
+$ i=1; for f in `cat list.txt|cut -d',' -f2`; do g=m`printf '%03d' $i`_$f; mv $f $g; i=$((i+1)); done
+```
+
+# 確認
+
+スライドショーを見てだいたい似た画像が固まっているか見てみてください。
+
+identifyの統計値には `%[mean]` のほかに `%[entropy]`, `%[standard-deviation]` などがありますが、実験した範囲では分類の大雑把さは似たり寄ったり。
+
+画像全体の統計値だから、たまたま結果が近い画像同士は並んでしまう。ま、大雑把にやってるからしょうがないでしょう。
+
+大雑把じゃなく分類したい人は[ディープラーニング](http://qiita.com/tags/deeplearning)とかを勉強しましょうね。
+
+# 参考
+
+[ImageMagick: Command-line Tools: Identify](http://www.imagemagick.org/script/identify.php)
+
+`-format` で指定できる値
+http://www.imagemagick.org/script/escape.php