LoginSignup
7

More than 5 years have passed since last update.

画像を雑に分類する

Posted at

Imagemagickのidentifyコマンドで取れる統計値を使って、大雑把に画像を分類する。
機械学習とかディープラーニングとか、そういう高度な話ではない。

大量の画像があって、似通った画像を探したいときには役に立つかもしれない(おおざっぱだけど)。

identifyで画素平均値をとる

次のコマンドで画素平均とファイル名のリストを出力する。ついでに数字順ソートしておく

$ 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に画素平均順の連番を付け足して、ファイル名でソートすると似た画像が固まるようにする。

$ 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] などがありますが、実験した範囲では分類の大雑把さは似たり寄ったり。

画像全体の統計値だから、たまたま結果が近い画像同士は並んでしまう。ま、大雑把にやってるからしょうがないでしょう。

大雑把じゃなく分類したい人はディープラーニングとかを勉強しましょうね。

参考

ImageMagick: Command-line Tools: Identify

-format で指定できる値
http://www.imagemagick.org/script/escape.php

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7