1. 目标
- 按序号显示所有120个家庭场景
- 统计单个场景里物体数量
2. 代码
python
import time
from ai2thor.controller import Controller
# 统计当前场景中的物体数量
def count_objects_in_scene(controller):
objects = controller.last_event.metadata["objects"]
object_count = len(objects)
return object_count
# 初始化控制器
controller = Controller(
width=1280,
height=720,
fieldOfView=110,
visibilityDistance=5,
renderInstanceSegmentation=True
)
input("请按任意键启动场景遍历:")
# 定义需要遍历的场景编号范围
scene_ranges = [
range(1, 31), # 厨房
range(201, 231), # 客厅
range(301, 331), # 卧室
range(401, 431) # 浴室
]
for scene_range in scene_ranges:
for scene_number in scene_range:
selected_scene = f"FloorPlan{scene_number}"
# 刷新到选定的场景
controller.reset(selected_scene)
# 统计当前场景中的物体数量
object_count = count_objects_in_scene(controller)
print(f"{selected_scene}场景中共有 {object_count} 个物体")
time.sleep(0.5) # 等待0.5秒后进入下一个场景
3. 最终成果
ithor全部场景
