特定の方法で 2 つのテキスト ファイルを比較しようとしています。すべてのファイルには、次のような数千の行が含まれています。
(29, '2 [484, 41, 69, 72]')
は29
、は 、frame
内の 4 つの値は の値です。この場合、.2
ID
[]
rect
X,Y,W,H
X = 484, Y = 41, W = 69, H = 72
すべてframe
に複数rects
をアタッチできます。1 から 20 まで、場合によってはそれ以上。
比較する必要がある 2 つのファイルの例を次に示します。
ファイル A:
ファイル B:
比較方法については、次の式を使用してrects
すべてを比較する必要があります。frame
(overlap)/(two rects area - overlap) > Threshold
しきい値が手動で 0.8 程度に定義されている場合。
frames
2 つのファイル間でどのインクルードが異なるかを判断した後、(上記の式を使用して) 顕著な十分な違いをもたらしたすべての ID を3 番目のファイルにrects
書き込む必要があります。start frame
end 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
。