| #!/usr/bin/env python3 | |
| """ | |
| 编辑节点(poplab)超点可视化入口。 | |
| 实际逻辑在 Pointcept 仓库: | |
| ../_work_biptv3/pointcept_framework/scripts/visualize_s3dis_superpoints.py | |
| 超点如何生成:每个房间 superpoint.npy,与 preprocess_s3dis.generate_superpoint_labels | |
| 同思路(体素 + 可选法向分箱 -> unique 得 per-point id)。 | |
| 用法(在 /mnt/data/AODUOLI 下): | |
| python PAMI2026/visualize_superpoints.py --room Area_1/office_1 --out /tmp/sp.ply | |
| python PAMI2026/visualize_superpoints.py --room Area_1/office_1 --recompute | |
| """ | |
| from __future__ import annotations | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| AODUOLI = Path(__file__).resolve().parents[1] | |
| SCRIPT = ( | |
| AODUOLI | |
| / "_work_biptv3" | |
| / "pointcept_framework" | |
| / "scripts" | |
| / "visualize_s3dis_superpoints.py" | |
| ) | |
| PYTHON = AODUOLI / "miniconda_envs" / "Aoduo" / "bin" / "python" | |
| def main() -> None: | |
| if not SCRIPT.is_file(): | |
| sys.exit("未找到可视化脚本: {}".format(SCRIPT)) | |
| py = str(PYTHON) if PYTHON.is_file() else sys.executable | |
| cmd = [py, str(SCRIPT)] + sys.argv[1:] | |
| raise SystemExit(subprocess.call(cmd)) | |
| if __name__ == "__main__": | |
| main() | |