子イメージのすべてのインスタンス座標を取得します。

子イメージのすべてのインスタンス座標を取得します。

このコマンドは次のとおりです。 compare -metric mse -subimage-search image.jpg subimage.jpg null:

指定された指標の値と子画像が表示される座標を提供します。

特定のサブイメージのすべての項目の座標が必要な場合はどうなりますか?

ドキュメントには-similarity-thresholdパラメータが記載されていますが、imagick 6.7には存在しません。

ベストアンサー1

アイデアの始まりは次のとおりです。

compare -metric mse -subimage-search concat.png subimage.jpg resultimage.png
convert resultimage-1.png resultMap.txt
python extractPoints.py resultMap.txt

extractPoints.pyは次のようになります

#!/bin/python
import os,re,argparse

parser = argparse.ArgumentParser(description='extract top match pixels from an Imagemagick text file.')
parser.add_argument('infile', type=str, help='infile name')
args = parser.parse_args()

d = {}
with open(args.infile, 'r') as f:
    for line in f:
        parsed_line = re.match('([0-9]+,[0-9]+): \([0-9]+,[0-9]+\)\s.*graya\(([0-9]+),[0-9]\)', line)
        if not parsed_line:
            continue
        if parsed_line.group(2) in d:
            d[parsed_line.group(2)].append(parsed_line.group(1))
        else:
            d[parsed_line.group(2)]=[parsed_line.group(1)]
    max_pixel_val = (max(d, key=int))
    print(d[str(max_pixel_val)])

greya強度を使用しないことがあります。この場合、正規表現を変更したり、この情報をリストした最初の行を解析したりできます。

おすすめ記事