【发布时间】:2021-05-18 16:49:58
【问题描述】:
我正在尝试循环并选择我想要的两个 class_id 值,然后将它们的 center_x 和 center_y 值一起比较。如果它们在某个范围内,我现在设置为 0.10,它将在范围内打印。但是,当我现在运行我的代码并打印出它们之间的x_absolute_dif 和y_absolute_dif 时,它只会输出0.0,这意味着它没有正确选择它们。任何帮助将不胜感激。
Python 代码:
desired_id1 = 14
for thing in results:
for object1 in thing["objects"]:
if object1["class_id"] == desired_id1:
specific_class = object1
print("Correct Class")
break
for _class in results:
for object1 in _class["objects"]:
relative_coordinates = object1["relative_coordinates"]
center_x = relative_coordinates["center_x"]
center_y = relative_coordinates["center_y"]
# Do something with these values
desired_id2 = 15
for thing in results:
for object2 in thing["objects"]:
if object2["class_id"] == desired_id2:
specific_class = object2
print("Correct Class")
break
for _class in results:
for object2 in _class["objects"]:
relative_coordinates = object2["relative_coordinates"]
center_x = relative_coordinates["center_x"]
center_y = relative_coordinates["center_y"]
# Do something with these values
x_dif = object1["relative_coordinates"]["center_x"] - object2["relative_coordinates"]["center_x"]
x_absolute_dif = abs(x_dif)
print(x_absolute_dif)
if (x_absolute_dif <= 0.10):
print("X-Cords Within Range")
x_within_range = True
else:
print("X-Cords Not Within Range")
y_dif = object1["relative_coordinates"]["center_y"] - object2["relative_coordinates"]["center_y"]
y_absolute_dif = abs(y_dif)
print(y_absolute_dif)
if (y_absolute_dif <= 0.10):
print("Y-Cords Within Range")
y_within_range = True
else:
print("Y-Cords Not Within Range")
Json 文件:
[
{
"frame_id": 1,
"filename": "C:\\Yolo_v4\\darknet\\build\\darknet\\x64\\f047.png",
"objects": [
{
"class_id": 14,
"name": "d",
"relative_coordinates": {
"center_x": 0.049905,
"center_y": 0.635935,
"width": 0.101077,
"height": 0.044067
},
"confidence": 0.966701
},
{
"class_id": 15,
"name": "e",
"relative_coordinates": {
"center_x": 0.045943,
"center_y": 0.685398,
"width": 0.109195,
"height": 0.041489
},
"confidence": 0.923188
},
]
}
]
【问题讨论】:
标签: python json function loops dictionary