我正在尝试以特定方式比较两个文本文件。每个文件都包含数千行,如下所示:
(29, '2 [484, 41, 69, 72]')
其中,29
是,里面的四个值是是 的值。在这种情况下,。frame
2
ID
[]
rect
X,Y,W,H
X = 484, Y = 41, W = 69, H = 72
每个都可以附加frame
多个。rects
从 1 到 20 甚至更多。
以下是我需要比较的两个文件的示例:
档案一:
文件 B:
现在对于比较方法,我需要使用以下等式比较rects
所有的:frame
(overlap)/(two rects area - overlap) > Threshold
其中 Threshold 手动定义为 0.8 左右。
在我确定了其中的哪些frames
包含在两个文件之间有所不同之后,我需要将每个 ID 的和(使用上述等式)rects
写入第三个文件,这些ID 产生了足够显着的差异。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
。