Implement a more robust scoring mechanism for screw optimization and add functionality to generate synthetic X-ray projections (AP and lateral views) from CT data. Key changes: - core: add `generate_cylinder_butt_torch` to create a mask for the screw entrance (0.25mm) to exempt it from bone-breaching penalties. - core: update `cl_score_torch_xfr` to include a diameter preference bonus and utilize the entrance mask. - core: adjust optimizer bounds and scoring weights to favor larger diameter screws and improve convergence. - xfr_cbt_native: implement `render_xray_projections` to generate synthetic AP and lateral X-ray images for visualization. - visualization: enhance `render_bone_figure` with semi-transparent spinous process rendering and improved depth sorting for screws. - xfr_debug: improve level detection to support arbitrary lumbar levels (L1-L9) and add safe volume-level cleanup for CBT writing. - config: update allowed diameters and lengths constants.
38 lines
No EOL
867 B
Python
38 lines
No EOL
867 B
Python
"""
|
||
LABEL_MAP: 一般脊椎與label對應的順序,若是自己標記的需要額外修改定義。
|
||
ALLOWED_DIAMETERS: 螺絲直徑範圍。
|
||
ALLOWED_LENGTHS: 螺絲長度範圍。
|
||
OVERLAP_THRESH: 圓柱體與骨頭接觸的比例(0-1),若低於這個閾值則會重跑。
|
||
spacing: 影像的spacing。
|
||
"""
|
||
|
||
LABEL_MAP = {
|
||
1: "C1", 2: "C2", 3: "C3", 4: "C4", 5: "C5", 6: "C6", 7: "C7",
|
||
8: "T1", 9: "T2", 10: "T3", 11: "T4", 12: "T5", 13: "T6", 14: "T7",
|
||
15: "T8", 16: "T9", 17: "T10", 18: "T11", 19: "T12",
|
||
20: "L1", 21: "L2", 22: "L3", 23: "L4", 24: "L5"
|
||
}
|
||
ALLOWED_DIAMETERS = [
|
||
# 3.5,
|
||
# 4.0,
|
||
4.5,
|
||
5.0,
|
||
5.5,
|
||
6.0,
|
||
# 6.5,
|
||
# 7.0,
|
||
# 7.5,
|
||
]
|
||
ALLOWED_LENGTHS = [
|
||
# 25,
|
||
# 30,
|
||
35,
|
||
40,
|
||
45,
|
||
50,
|
||
# 60,
|
||
# 70,
|
||
# 80,
|
||
]
|
||
OVERLAP_THRESH = 0.50
|
||
DEFAULT_SPACING = [0.5, 0.5, 0.5] |