diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 4587a9603..edfc4c183 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -2,6 +2,16 @@ Changelog ========= +v 3.24.0 +-------- + +CBCT +^^^^ + +* Some datasets were failing due to the proximity to the edge of the FOV. While we encourage an FOV that is 1cm+ larger than the + phantom to minimize edge artifacts and ensure the entire phantom is captured, we have reduced the required clearance + of the phantom to the edge by approximately half. + v 3.23.0 -------- diff --git a/pylinac/ct.py b/pylinac/ct.py index 868dca3e7..316e29061 100644 --- a/pylinac/ct.py +++ b/pylinac/ct.py @@ -2582,7 +2582,7 @@ def get_regions( thres = thresmeth(edges) bw = edges > thres if clear_borders: - bw = segmentation.clear_border(bw, buffer_size=int(max(bw.shape) / 50)) + bw = segmentation.clear_border(bw, buffer_size=min(int(max(bw.shape) / 100), 3)) if fill_holes: bw = ndimage.binary_fill_holes(bw) labeled_arr, num_roi = measure.label(bw, return_num=True) diff --git a/pylinac/version.py b/pylinac/version.py index dbea1a391..3e6d8c7b7 100644 --- a/pylinac/version.py +++ b/pylinac/version.py @@ -1 +1 @@ -__version__ = "3.23.0" +__version__ = "3.24.0" diff --git a/tests_basic/test_cbct.py b/tests_basic/test_cbct.py index b7b5af7b6..def1e1a12 100644 --- a/tests_basic/test_cbct.py +++ b/tests_basic/test_cbct.py @@ -1581,3 +1581,22 @@ class CatPhan604NegativeSliceOverlap(CatPhan604Mixin, TestCase): unif_values = {"Center": 24, "Left": 23, "Right": 22, "Top": 23, "Bottom": 21} mtf_values = {50: 0.40} lowcon_visible = 6 + + +class CatPhan504NearEdge(CatPhan504Mixin, TestCase): + file_name = "phantom_edge.zip" + expected_roll = 1.4 + origin_slice = 41 + hu_values = { + "Poly": -41, + "Acrylic": 120, + "Delrin": 322, + "Air": -1010, + "Teflon": 905, + "PMP": -189, + "LDPE": -98, + } + unif_values = {"Center": 12, "Left": 10, "Right": 9, "Top": 9, "Bottom": 11} + mtf_values = {50: 0.33} + lowcon_visible = 4 + slice_thickness = 3