2つの画像が、似てるのか、同じなのか、全く違うのかを調べることができます。
macOS Big Sur で動作確認済み
ImageMagick インストール
% brew install imagemagick
バージョン確認
% convert --version Version: ImageMagick 7.0.10-48 Q16 x86_64 2020-12-10 https://imagemagick.org
比較1
% compare -metric PSNR castle2.png castle2.png /dev/null inf%
比較2
% compare -metric PSNR castle3.png castle2.png /dev/null 9.31704%
/dev/null をつけないとエラーになります。
inf は 100% 一致の場合。
それ以外だと、似てるほど数字が0%に近くなります。
数字が大きいということは、全然違う画像、ということ。
RMagick上で比較
ruby でやるときは、RMagick という ImageMagick のラッパーを使います。
以下で RMagick インストール
% brew install pkg-config % sudo gem install rmagick
コードは以下のようになります。
require 'RMagick' include Magick img1 = ImageList.new("field.png") img2 = ImageList.new("glass.png") metric = Magick::PeakSignalToNoiseRatioErrorMetric diff = img1.compare_channel(img2, metric)[1] p diff # => 11.170329325888561
コメント