1

特定の方法で 2 つのテキスト ファイルを比較しようとしています。すべてのファイルには、次のような数千の行が含まれています。

(29, '2 [484, 41, 69, 72]')

29、は 、frame内の 4 つの値は の値です。この場合、.2ID[]rectX,Y,W,HX = 484, Y = 41, W = 69, H = 72

すべてframeに複数rectsをアタッチできます。1 から 20 まで、場合によってはそれ以上。

比較する必要がある 2 つのファイルの例を次に示します。

ファイル A:

http://pastebin.com/qGLvxU1f

ファイル B:

http://pastebin.com/1aKw6iuH

比較方法については、次の式を使用してrectsすべてを比較する必要があります。frame

(overlap)/(two rects area - overlap) > Threshold

しきい値が手動で 0.8 程度に定義されている場合。

frames2 つのファイル間でどのインクルードが異なるかを判断した後、(上記の式を使用して) 顕著な十分な違いをもたらしたすべての ID を3 番目のファイルにrects書き込む必要があります。start frameend frame

私は行ごとに比較しようとしています:

 def _compare(self, data1, data2):
        diff = []
        for frame in data1.keys():
            if frame in data2.keys():
                data1.pop(frame)
                data2.pop(frame)
        return diff
        with open(out_file, 'w') as f:
            f.write('\n'.join(diff))

ただし、これは特定の行に違いがあるかどうかを判断するだけであり、それぞれの実際の値を比較するわけではありませんrect

4

1 に答える 1