Skip to content

Commit

Permalink
fix(examples/evaluation): bug with SimpleITK >= 2.0.0 when using scal…
Browse files Browse the repository at this point in the history
…ar radius parameter, closes #41
  • Loading branch information
fabianbalsiger committed Sep 13, 2021
1 parent 142842e commit d63bbc6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 325 deletions.
333 changes: 9 additions & 324 deletions examples/evaluation/basic.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,10 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Evaluating Subject_1...\n",
"Evaluating Subject_2...\n",
"Evaluating Subject_4...\n",
"Evaluating Subject_3...\n",
"Evaluating Subject_4...\n"
"Evaluating Subject_1...\n"
]
}
],
Expand All @@ -181,7 +181,7 @@
" prediction = ground_truth\n",
" for label_val in labels.keys():\n",
" # erode each label we are going to evaluate\n",
" prediction = sitk.BinaryErode(prediction, 1, sitk.sitkBall, 0, label_val)\n",
" prediction = sitk.BinaryErode(prediction, [1] * prediction.GetDimension(), sitk.sitkBall, 0, label_val)\n",
"\n",
" # evaluate the \"prediction\" against the ground truth\n",
" evaluator.evaluate(prediction, ground_truth, subject_id)"
Expand Down Expand Up @@ -323,148 +323,8 @@
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SUBJECT</th>\n",
" <th>LABEL</th>\n",
" <th>DICE</th>\n",
" <th>HDRFDST95</th>\n",
" <th>VOLSMTY</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Subject_1</td>\n",
" <td>GREYMATTER</td>\n",
" <td>0.313373</td>\n",
" <td>9.165151</td>\n",
" <td>0.313373</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Subject_1</td>\n",
" <td>THALAMUS</td>\n",
" <td>0.752252</td>\n",
" <td>2.000000</td>\n",
" <td>0.752252</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Subject_1</td>\n",
" <td>WHITEMATTER</td>\n",
" <td>0.642021</td>\n",
" <td>6.708204</td>\n",
" <td>0.642021</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Subject_2</td>\n",
" <td>GREYMATTER</td>\n",
" <td>0.298358</td>\n",
" <td>10.862780</td>\n",
" <td>0.298358</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Subject_2</td>\n",
" <td>THALAMUS</td>\n",
" <td>0.768488</td>\n",
" <td>2.000000</td>\n",
" <td>0.768488</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Subject_2</td>\n",
" <td>WHITEMATTER</td>\n",
" <td>0.654239</td>\n",
" <td>6.000000</td>\n",
" <td>0.654239</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Subject_3</td>\n",
" <td>GREYMATTER</td>\n",
" <td>0.287460</td>\n",
" <td>8.717798</td>\n",
" <td>0.287460</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Subject_3</td>\n",
" <td>THALAMUS</td>\n",
" <td>0.760978</td>\n",
" <td>2.000000</td>\n",
" <td>0.760978</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Subject_3</td>\n",
" <td>WHITEMATTER</td>\n",
" <td>0.641251</td>\n",
" <td>6.164414</td>\n",
" <td>0.641251</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Subject_4</td>\n",
" <td>GREYMATTER</td>\n",
" <td>0.258504</td>\n",
" <td>8.660254</td>\n",
" <td>0.258504</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Subject_4</td>\n",
" <td>THALAMUS</td>\n",
" <td>0.780754</td>\n",
" <td>2.000000</td>\n",
" <td>0.780754</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Subject_4</td>\n",
" <td>WHITEMATTER</td>\n",
" <td>0.649203</td>\n",
" <td>6.000000</td>\n",
" <td>0.649203</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SUBJECT LABEL DICE HDRFDST95 VOLSMTY\n",
"0 Subject_1 GREYMATTER 0.313373 9.165151 0.313373\n",
"1 Subject_1 THALAMUS 0.752252 2.000000 0.752252\n",
"2 Subject_1 WHITEMATTER 0.642021 6.708204 0.642021\n",
"3 Subject_2 GREYMATTER 0.298358 10.862780 0.298358\n",
"4 Subject_2 THALAMUS 0.768488 2.000000 0.768488\n",
"5 Subject_2 WHITEMATTER 0.654239 6.000000 0.654239\n",
"6 Subject_3 GREYMATTER 0.287460 8.717798 0.287460\n",
"7 Subject_3 THALAMUS 0.760978 2.000000 0.760978\n",
"8 Subject_3 WHITEMATTER 0.641251 6.164414 0.641251\n",
"9 Subject_4 GREYMATTER 0.258504 8.660254 0.258504\n",
"10 Subject_4 THALAMUS 0.780754 2.000000 0.780754\n",
"11 Subject_4 WHITEMATTER 0.649203 6.000000 0.649203"
]
"text/plain": " SUBJECT LABEL DICE HDRFDST95 VOLSMTY\n0 Subject_1 GREYMATTER 0.313373 9.165151 0.313373\n1 Subject_1 THALAMUS 0.752252 2.000000 0.752252\n2 Subject_1 WHITEMATTER 0.642021 6.708204 0.642021\n3 Subject_2 GREYMATTER 0.298358 10.862780 0.298358\n4 Subject_2 THALAMUS 0.768488 2.000000 0.768488\n5 Subject_2 WHITEMATTER 0.654239 6.000000 0.654239\n6 Subject_3 GREYMATTER 0.287460 8.717798 0.287460\n7 Subject_3 THALAMUS 0.760978 2.000000 0.760978\n8 Subject_3 WHITEMATTER 0.641251 6.164414 0.641251\n9 Subject_4 GREYMATTER 0.258504 8.660254 0.258504\n10 Subject_4 THALAMUS 0.780754 2.000000 0.780754\n11 Subject_4 WHITEMATTER 0.649203 6.000000 0.649203",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>SUBJECT</th>\n <th>LABEL</th>\n <th>DICE</th>\n <th>HDRFDST95</th>\n <th>VOLSMTY</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Subject_1</td>\n <td>GREYMATTER</td>\n <td>0.313373</td>\n <td>9.165151</td>\n <td>0.313373</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Subject_1</td>\n <td>THALAMUS</td>\n <td>0.752252</td>\n <td>2.000000</td>\n <td>0.752252</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Subject_1</td>\n <td>WHITEMATTER</td>\n <td>0.642021</td>\n <td>6.708204</td>\n <td>0.642021</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Subject_2</td>\n <td>GREYMATTER</td>\n <td>0.298358</td>\n <td>10.862780</td>\n <td>0.298358</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Subject_2</td>\n <td>THALAMUS</td>\n <td>0.768488</td>\n <td>2.000000</td>\n <td>0.768488</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Subject_2</td>\n <td>WHITEMATTER</td>\n <td>0.654239</td>\n <td>6.000000</td>\n <td>0.654239</td>\n </tr>\n <tr>\n <th>6</th>\n <td>Subject_3</td>\n <td>GREYMATTER</td>\n <td>0.287460</td>\n <td>8.717798</td>\n <td>0.287460</td>\n </tr>\n <tr>\n <th>7</th>\n <td>Subject_3</td>\n <td>THALAMUS</td>\n <td>0.760978</td>\n <td>2.000000</td>\n <td>0.760978</td>\n </tr>\n <tr>\n <th>8</th>\n <td>Subject_3</td>\n <td>WHITEMATTER</td>\n <td>0.641251</td>\n <td>6.164414</td>\n <td>0.641251</td>\n </tr>\n <tr>\n <th>9</th>\n <td>Subject_4</td>\n <td>GREYMATTER</td>\n <td>0.258504</td>\n <td>8.660254</td>\n <td>0.258504</td>\n </tr>\n <tr>\n <th>10</th>\n <td>Subject_4</td>\n <td>THALAMUS</td>\n <td>0.780754</td>\n <td>2.000000</td>\n <td>0.780754</td>\n </tr>\n <tr>\n <th>11</th>\n <td>Subject_4</td>\n <td>WHITEMATTER</td>\n <td>0.649203</td>\n <td>6.000000</td>\n <td>0.649203</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 11,
"metadata": {},
Expand Down Expand Up @@ -495,183 +355,8 @@
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>LABEL</th>\n",
" <th>METRIC</th>\n",
" <th>STATISTIC</th>\n",
" <th>VALUE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>GREYMATTER</td>\n",
" <td>DICE</td>\n",
" <td>MEAN</td>\n",
" <td>0.289424</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>GREYMATTER</td>\n",
" <td>DICE</td>\n",
" <td>STD</td>\n",
" <td>0.020083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>GREYMATTER</td>\n",
" <td>HDRFDST95</td>\n",
" <td>MEAN</td>\n",
" <td>9.351496</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>GREYMATTER</td>\n",
" <td>HDRFDST95</td>\n",
" <td>STD</td>\n",
" <td>0.894161</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>GREYMATTER</td>\n",
" <td>VOLSMTY</td>\n",
" <td>MEAN</td>\n",
" <td>0.289424</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>GREYMATTER</td>\n",
" <td>VOLSMTY</td>\n",
" <td>STD</td>\n",
" <td>0.020083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>THALAMUS</td>\n",
" <td>DICE</td>\n",
" <td>MEAN</td>\n",
" <td>0.765618</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>THALAMUS</td>\n",
" <td>DICE</td>\n",
" <td>STD</td>\n",
" <td>0.010458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>THALAMUS</td>\n",
" <td>HDRFDST95</td>\n",
" <td>MEAN</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>THALAMUS</td>\n",
" <td>HDRFDST95</td>\n",
" <td>STD</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>THALAMUS</td>\n",
" <td>VOLSMTY</td>\n",
" <td>MEAN</td>\n",
" <td>0.765618</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>THALAMUS</td>\n",
" <td>VOLSMTY</td>\n",
" <td>STD</td>\n",
" <td>0.010458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>DICE</td>\n",
" <td>MEAN</td>\n",
" <td>0.646678</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>DICE</td>\n",
" <td>STD</td>\n",
" <td>0.005355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>HDRFDST95</td>\n",
" <td>MEAN</td>\n",
" <td>6.218154</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>HDRFDST95</td>\n",
" <td>STD</td>\n",
" <td>0.290783</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>VOLSMTY</td>\n",
" <td>MEAN</td>\n",
" <td>0.646678</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>WHITEMATTER</td>\n",
" <td>VOLSMTY</td>\n",
" <td>STD</td>\n",
" <td>0.005355</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" LABEL METRIC STATISTIC VALUE\n",
"0 GREYMATTER DICE MEAN 0.289424\n",
"1 GREYMATTER DICE STD 0.020083\n",
"2 GREYMATTER HDRFDST95 MEAN 9.351496\n",
"3 GREYMATTER HDRFDST95 STD 0.894161\n",
"4 GREYMATTER VOLSMTY MEAN 0.289424\n",
"5 GREYMATTER VOLSMTY STD 0.020083\n",
"6 THALAMUS DICE MEAN 0.765618\n",
"7 THALAMUS DICE STD 0.010458\n",
"8 THALAMUS HDRFDST95 MEAN 2.000000\n",
"9 THALAMUS HDRFDST95 STD 0.000000\n",
"10 THALAMUS VOLSMTY MEAN 0.765618\n",
"11 THALAMUS VOLSMTY STD 0.010458\n",
"12 WHITEMATTER DICE MEAN 0.646678\n",
"13 WHITEMATTER DICE STD 0.005355\n",
"14 WHITEMATTER HDRFDST95 MEAN 6.218154\n",
"15 WHITEMATTER HDRFDST95 STD 0.290783\n",
"16 WHITEMATTER VOLSMTY MEAN 0.646678\n",
"17 WHITEMATTER VOLSMTY STD 0.005355"
]
"text/plain": " LABEL METRIC STATISTIC VALUE\n0 GREYMATTER DICE MEAN 0.289424\n1 GREYMATTER DICE STD 0.020083\n2 GREYMATTER HDRFDST95 MEAN 9.351496\n3 GREYMATTER HDRFDST95 STD 0.894161\n4 GREYMATTER VOLSMTY MEAN 0.289424\n5 GREYMATTER VOLSMTY STD 0.020083\n6 THALAMUS DICE MEAN 0.765618\n7 THALAMUS DICE STD 0.010458\n8 THALAMUS HDRFDST95 MEAN 2.000000\n9 THALAMUS HDRFDST95 STD 0.000000\n10 THALAMUS VOLSMTY MEAN 0.765618\n11 THALAMUS VOLSMTY STD 0.010458\n12 WHITEMATTER DICE MEAN 0.646678\n13 WHITEMATTER DICE STD 0.005355\n14 WHITEMATTER HDRFDST95 MEAN 6.218154\n15 WHITEMATTER HDRFDST95 STD 0.290783\n16 WHITEMATTER VOLSMTY MEAN 0.646678\n17 WHITEMATTER VOLSMTY STD 0.005355",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>LABEL</th>\n <th>METRIC</th>\n <th>STATISTIC</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>GREYMATTER</td>\n <td>DICE</td>\n <td>MEAN</td>\n <td>0.289424</td>\n </tr>\n <tr>\n <th>1</th>\n <td>GREYMATTER</td>\n <td>DICE</td>\n <td>STD</td>\n <td>0.020083</td>\n </tr>\n <tr>\n <th>2</th>\n <td>GREYMATTER</td>\n <td>HDRFDST95</td>\n <td>MEAN</td>\n <td>9.351496</td>\n </tr>\n <tr>\n <th>3</th>\n <td>GREYMATTER</td>\n <td>HDRFDST95</td>\n <td>STD</td>\n <td>0.894161</td>\n </tr>\n <tr>\n <th>4</th>\n <td>GREYMATTER</td>\n <td>VOLSMTY</td>\n <td>MEAN</td>\n <td>0.289424</td>\n </tr>\n <tr>\n <th>5</th>\n <td>GREYMATTER</td>\n <td>VOLSMTY</td>\n <td>STD</td>\n <td>0.020083</td>\n </tr>\n <tr>\n <th>6</th>\n <td>THALAMUS</td>\n <td>DICE</td>\n <td>MEAN</td>\n <td>0.765618</td>\n </tr>\n <tr>\n <th>7</th>\n <td>THALAMUS</td>\n <td>DICE</td>\n <td>STD</td>\n <td>0.010458</td>\n </tr>\n <tr>\n <th>8</th>\n <td>THALAMUS</td>\n <td>HDRFDST95</td>\n <td>MEAN</td>\n <td>2.000000</td>\n </tr>\n <tr>\n <th>9</th>\n <td>THALAMUS</td>\n <td>HDRFDST95</td>\n <td>STD</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>10</th>\n <td>THALAMUS</td>\n <td>VOLSMTY</td>\n <td>MEAN</td>\n <td>0.765618</td>\n </tr>\n <tr>\n <th>11</th>\n <td>THALAMUS</td>\n <td>VOLSMTY</td>\n <td>STD</td>\n <td>0.010458</td>\n </tr>\n <tr>\n <th>12</th>\n <td>WHITEMATTER</td>\n <td>DICE</td>\n <td>MEAN</td>\n <td>0.646678</td>\n </tr>\n <tr>\n <th>13</th>\n <td>WHITEMATTER</td>\n <td>DICE</td>\n <td>STD</td>\n <td>0.005355</td>\n </tr>\n <tr>\n <th>14</th>\n <td>WHITEMATTER</td>\n <td>HDRFDST95</td>\n <td>MEAN</td>\n <td>6.218154</td>\n </tr>\n <tr>\n <th>15</th>\n <td>WHITEMATTER</td>\n <td>HDRFDST95</td>\n <td>STD</td>\n <td>0.290783</td>\n </tr>\n <tr>\n <th>16</th>\n <td>WHITEMATTER</td>\n <td>VOLSMTY</td>\n <td>MEAN</td>\n <td>0.646678</td>\n </tr>\n <tr>\n <th>17</th>\n <td>WHITEMATTER</td>\n <td>VOLSMTY</td>\n <td>STD</td>\n <td>0.005355</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 12,
"metadata": {},
Expand All @@ -686,7 +371,7 @@
"metadata": {
"celltoolbar": "Raw Cell Format",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -700,7 +385,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
"version": "3.8.10"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion examples/evaluation/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def main(data_dir: str, result_file: str, result_summary_file: str):
prediction = ground_truth
for label_val in labels.keys():
# erode each label we are going to evaluate
prediction = sitk.BinaryErode(prediction, 1, sitk.sitkBall, 0, label_val)
prediction = sitk.BinaryErode(prediction, [1] * prediction.GetDimension(), sitk.sitkBall, 0, label_val)

# evaluate the "prediction" against the ground truth
evaluator.evaluate(prediction, ground_truth, subject_id)
Expand Down

0 comments on commit d63bbc6

Please sign in to comment.