【发布时间】:2021-12-25 15:45:58
【问题描述】:
我有照片和这些照片中对象的坐标。
例如:
{
"shape_attributes": {
"name": "polygon",
"all_points_x": [613, 2007, 1769, 581],
"all_points_y": [1767, 1674, 2260, 2395]
},
"region_attributes": {"field_name": "doc_quad"}
}
我需要将它们转换为 4 个点:
x_center y_center width height
得到一个边界框。之后,我需要按照以下说明对它们进行规范化:
Box coordinates must be in normalized xywh format (from 0 - 1). If your boxes are in pixels, divide x_center and width by image width, and y_center and height by image height.
如何将8个指向多边形坐标转换为规范化形式(4个点)?
这个问题可能需要一些几何知识,如果您觉得这个问题太简单,您可以发送相关文章的链接。问题是我不知道如何向 Google 提问以找到答案,因为 How to convert 8 point polygon coordinates into 4 point rectangle coordinates 没有给我想要的结果(我发现的大多数文章都假设我不知道实际坐标并使用了一些检测来自opencv 的函数,但我确实知道实际坐标)这就是我在这里问的原因。
【问题讨论】:
-
您的多边形不是“8 点”。它是四点的,每个点由两个值组成。你需要先try解决你的问题。请查看tour 和How to Ask,以提高获得体面答案的机会。
-
@ChristophRackwitz 我得到了下面的答案。我尝试首先解决问题并进行了谷歌搜索。我问是因为我自己无法弄清楚。有意义吗?
-
老实说,没有。在四个点周围放置一个框...您应该已经认识到您需要使用
min()和max(),而那个框的中心只是...这都是基本的数学。高中数学。无论如何,你得到了答案,你甚至得到了为你编写的代码,争论这个不会有任何结果。 -
@ChristophRackwitz 我同意这是一个非常简单的问题,但并不是这个世界上的每个人都像你一样拥有相同的知识。我无法理解这 8 个数字代表 4 个点而不是 8 个点。我没有要求 code ,而是要求一种解决问题的方法。我什至要求提供一些链接。现在我有了一个可视化,并理解这是一个简单的问题。
标签: python opencv bounding-box