我正在使用python,我需要考虑到地面真实性和锚点框(通常是两个矩形)来计算并集上的交点。问题是我在具有53x64大小的图像上生成锚点,而我却拥有相对于424x512大小的图像的地面真实坐标。 我得到的信息是:
尤其是它们是矩形的两个相对角度的坐标。 因此,问题在于这种方式的距离和面积不成比例。 所以问题是,如何正确地比较这两个要素?
答案 0 :(得分:0)
这是我的答案。希望我能正确理解您的要求。
Coordinates = {"x1" : 3, "x2" : 11, "y1" : 7, "y2" : 13}
NewCoords = {}
for key, value in Coordinates:
NewCoords[key] = (value*8)
print(NewCoords)
# {"x1" : 24, "x2" : 88, "y1" : 56, "y2" : 104}
答案 1 :(得分:0)
根据所获得的信息,您可以将锚点图像坐标中给定的点转换为真实图像上的等价点。可以通过使用linear interpolation来完成此操作,如下所示。类似的数学运算可用于计算逆变换(真相⇒锚)。
您可以使用它来将坐标转换为相对于真实图像的等效位置。然后,您应该能够使用这些转换后的值正确地计算距离,角度等。
anchor_height, anchor_width = 53, 64
gt_height, gt_width = 424, 512
def transform(x, y):
return x/anchor_width * gt_width, y/anchor_height * gt_height
print(transform(0, 0)) # - > (0.0, 0.0)
print(transform(32, 26.5)) # - > (256.0, 212.0)
print(transform(64, 53)) # - > (512.0, 424.0)```