Help us understand the problem. What is going on with this article?

画像を雑に分類する

More than 5 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away