DOS> compare.exe input_img_1.png input_img_2.png diff_img.png
基本的な実行は上記の通りで、diff_img.png に差分が出力されます。
例えば、pythonから連続的に compareを実行する場合、次のようになると思います。
#!/usr/local/bin/python # -*- coding: utf-8 -*- import os import sys import subprocess import time conf = {"image_magick_compare": "c:/Users/end0t/tmp/ImageMagick-70/compare.exe"} def main(): if len(sys.argv) == 4: in_dir_1 = sys.argv[1] in_dir_2 = sys.argv[2] out_dir = sys.argv[3] else: print("USAGE:",sys.argv[0],"IN_DIR_1 IN_DIR_2 OUT_DIR") return None i = 0 for filename in os.listdir(in_dir_1): i += 1 print(i, filename) cmd_line = " ".join([conf["image_magick_compare"], in_dir_1 +"/"+ filename, in_dir_2 +"/"+ filename, out_dir +"/"+ filename ]) result = subprocess.call(cmd_line) if __name__ == '__main__': main()
以下、差分出力例。赤い部分が差異部分です