|
38 | 38 | ppm210_1 = PM(pred210_1, ref210) |
39 | 39 | ppm210_2 = PM(pred210_2, ref210) |
40 | 40 |
|
| 41 | +#Data for figure 2.12 p53 |
| 42 | +ref212 = np.zeros([22, 22]) |
| 43 | +ref212[2:21, 2:21] = 1 |
| 44 | +pred212 = np.zeros([22, 22]) |
| 45 | +pred212[3:21, 2:21] = 1 |
| 46 | +ppm212_1 = PM(pred212, ref212) |
| 47 | +ppm212_2 = PM(pred212,ref212,dict_args={'boundary_dist':2}) |
41 | 48 |
|
42 | 49 | ### Small size of structures relative to pixel/voxel size (DSC) |
43 | 50 | ## Larger structure |
|
70 | 77 | f27_ref2 = f27_pred1 |
71 | 78 | f27_pred2 = f27_ref1 |
72 | 79 |
|
| 80 | +# Figure ClDice p 53 S2.14 |
| 81 | +ref214 = np.zeros([24,24]) |
| 82 | +ref214[1:10,7:12]=1 |
| 83 | +ref214[10:12,3:19]=1 |
| 84 | +ref214[12:15,3:5]=1 |
| 85 | +ref214[12:15,15:19]=1 |
| 86 | +ref214[14:20,15:17]=1 |
| 87 | +ref214[14:15,1:5]=1 |
| 88 | +ref214[14:17,2:3]=1 |
| 89 | +ref214[14:19,4:5]=1 |
| 90 | +ref214[17:18,4:8]=1 |
| 91 | +ref214[14:15,15:24]=1 |
| 92 | +ref214[12:15,22:23]=1 |
| 93 | +ref214[14:17,21:22]=1 |
| 94 | +ref214[17:20,5:6]=1 |
| 95 | +ref214[17:22,12:13]=1 |
| 96 | +ref214[19:20,12:17]=1 |
| 97 | +ref214[18:19,15:20]=1 |
| 98 | +ref214[17,19]=1 |
| 99 | + |
| 100 | +pred214_1 = np.zeros([24,24]) |
| 101 | +pred214_1[1:10,7:12]=1 |
| 102 | +pred214_1[10:12,3:15]=1 |
| 103 | + |
| 104 | +pred214_2 = np.copy(ref214) |
| 105 | +pred214_2[10:14,3:4] = 0 |
| 106 | +pred214_2[10:11,3:9] = 0 |
| 107 | +pred214_2[10:11,10:19] = 0 |
| 108 | +pred214_2[1:11,7:9] = 0 |
| 109 | +pred214_2[1:11,10:12]=0 |
| 110 | +pred214_2[10:14,18:19]=0 |
| 111 | +pred214_2[12:14,15:17]=0 |
| 112 | +pred214_2[14:19,15:16]=0 |
| 113 | + |
| 114 | +ppm214_1 = PM(pred214_1, ref214) |
| 115 | +ppm214_2 = PM(pred214_2, ref214) |
| 116 | + |
| 117 | + |
| 118 | + |
73 | 119 | # panoptic quality |
74 | 120 | pq_pred1 = np.zeros([21, 21]) |
75 | 121 | pq_pred1[5:7, 2:5] = 1 |
@@ -790,16 +836,32 @@ def test_hd(): |
790 | 836 |
|
791 | 837 |
|
792 | 838 | def test_boundary_iou(): |
793 | | - f21_ref = np.zeros([22, 22]) |
794 | | - f21_ref[2:21, 2:21] = 1 |
795 | | - f21_pred = np.zeros([22, 22]) |
796 | | - f21_pred[3:21, 2:21] = 1 |
797 | | - bpm = PM(f21_pred, f21_ref) |
798 | | - value_test = bpm.boundary_iou() |
799 | | - expected_biou = 0.6 |
800 | | - assert_allclose(value_test, expected_biou, atol=0.1) |
801 | | - assert np.round(value_test, 1) == 0.6 |
| 839 | + """ |
| 840 | + Taking as inspiration figure S 2.12 |
| 841 | + """ |
| 842 | + |
| 843 | + value_test1 = ppm212_1.boundary_iou() |
| 844 | + expected_biou_1 = 0.6 |
| 845 | + expected_biou_2 = 0.8 |
| 846 | + value_test2 = ppm212_2.boundary_iou() |
| 847 | + assert_allclose(value_test1, expected_biou_1, atol=0.1) |
| 848 | + assert_allclose(value_test2, expected_biou_2, atol=0.1) |
| 849 | + |
| 850 | +def test_cldsc_s214(): |
| 851 | + value_test1 = ppm214_1.centreline_dsc() |
| 852 | + value_test2 = ppm214_2.centreline_dsc() |
| 853 | + expected_cldsc1 = 0.475 |
| 854 | + expected_cldsc2 = 0.78 |
| 855 | + assert_allclose(value_test1, expected_cldsc1, atol=0.01) |
| 856 | + assert_allclose(value_test2, expected_cldsc2, atol=0.01) |
802 | 857 |
|
| 858 | +def test_dsc_s214(): |
| 859 | + value_test1 = ppm214_1.dsc() |
| 860 | + value_test2 = ppm214_2.dsc() |
| 861 | + expected_dsc1 = 0.666 |
| 862 | + expected_dsc2 = 0.685 |
| 863 | + assert_allclose(value_test1, expected_dsc1, atol=0.01) |
| 864 | + assert_allclose(value_test2, expected_dsc2, atol=0.01) |
803 | 865 |
|
804 | 866 | def test_cldsc(): |
805 | 867 | pm1 = PM(pred_clDice_small1, ref_clDice_small) |
|
0 commit comments