比较两个不同大小图像的坐标
Compare coordinates of two images of different size
我正在使用 python,我需要计算并集的交集,同时考虑到基本事实和锚框(更常见的是两个矩形)。问题是我在尺寸为 53x64 的图像上生成我的锚点,而我拥有尺寸为 424x512 的图像的真实坐标。
我掌握的信息是:
- 锚点:[x1,y1, x2,y2] 相对于 53x64 图像;
- GT:[x1,y1,x2,y2] 424x512 图像;
特别地,它们是矩形的两个对角的坐标。
所以问题是这样的距离和面积不成比例。
所以问题是,我如何才能以正确的方式比较这两个元素?
这是我的答案。我希望我能正确理解你想要什么。
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}
根据您拥有的信息,您可以将锚图像坐标中给定的点转换为 ground-truth 图像上的等效点。这可以通过使用 linear interpolation 来完成,如下所示。类似的数学可以用来计算逆(ground-truth ⇒ 锚点)变换。
您可以使用它来将您的坐标转换到它们相对于 ground-truth 图像的等效位置。然后,您应该能够使用这些转换后的值来正确计算距离、角度等。
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)```
我正在使用 python,我需要计算并集的交集,同时考虑到基本事实和锚框(更常见的是两个矩形)。问题是我在尺寸为 53x64 的图像上生成我的锚点,而我拥有尺寸为 424x512 的图像的真实坐标。 我掌握的信息是:
- 锚点:[x1,y1, x2,y2] 相对于 53x64 图像;
- GT:[x1,y1,x2,y2] 424x512 图像;
特别地,它们是矩形的两个对角的坐标。 所以问题是这样的距离和面积不成比例。 所以问题是,我如何才能以正确的方式比较这两个元素?
这是我的答案。我希望我能正确理解你想要什么。
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}
根据您拥有的信息,您可以将锚图像坐标中给定的点转换为 ground-truth 图像上的等效点。这可以通过使用 linear interpolation 来完成,如下所示。类似的数学可以用来计算逆(ground-truth ⇒ 锚点)变换。
您可以使用它来将您的坐标转换到它们相对于 ground-truth 图像的等效位置。然后,您应该能够使用这些转换后的值来正确计算距离、角度等。
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)```