{
"cells": [
{
"cell_type": "markdown",
"id": "a3779d27-e253-458a-ab7a-5408dc9545f2",
"metadata": {},
"source": [
"# Bildverarbeitung mit SimpleITK\n",
"\n",
"Siehe auch\n",
"* [SimpleITK Notebooks](https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "36ad16e3",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import numpy as np\n",
"from skimage.io import imread\n",
"import napari_simpleitk_image_processing as nsitk\n",
"import stackview"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7e1c47f4",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"\n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 8 | max | 248 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 40, 32, 24, ..., 216, 200, 200],\n",
" [ 56, 40, 24, ..., 232, 216, 216],\n",
" [ 64, 48, 24, ..., 240, 232, 232],\n",
" ...,\n",
" [ 72, 80, 80, ..., 48, 48, 48],\n",
" [ 80, 80, 80, ..., 48, 48, 48],\n",
" [ 96, 88, 80, ..., 48, 48, 48]], dtype=uint8)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"blobs = imread('https://samples.fiji.sc/blobs.png')\n",
"stackview.insight(blobs)"
]
},
{
"cell_type": "markdown",
"id": "8dec9a63",
"metadata": {},
"source": [
"## Median-Filter"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "766b55d8",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 24 | max | 248 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 40, 40, 32, ..., 232, 232, 232],\n",
" [ 40, 40, 32, ..., 232, 232, 232],\n",
" [ 40, 40, 32, ..., 232, 232, 232],\n",
" ...,\n",
" [ 72, 72, 72, ..., 48, 48, 48],\n",
" [ 72, 72, 72, ..., 48, 48, 48],\n",
" [ 80, 72, 72, ..., 48, 48, 48]], dtype=uint8)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.median_filter(blobs, 5, 5, 0)"
]
},
{
"cell_type": "markdown",
"id": "76f76984",
"metadata": {},
"source": [
"# Gau\u00dfsche Unsch\u00e4rfe"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "68b7f41b",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 28 | max | 247 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 36, 34, 33, ..., 225, 221, 218],\n",
" [ 37, 35, 34, ..., 227, 224, 221],\n",
" [ 37, 36, 35, ..., 229, 227, 224],\n",
" ...,\n",
" [ 74, 73, 71, ..., 47, 47, 47],\n",
" [ 77, 76, 74, ..., 47, 47, 47],\n",
" [ 80, 78, 76, ..., 47, 47, 47]], dtype=uint8)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.gaussian_blur(blobs, 10, 10, 0)"
]
},
{
"cell_type": "markdown",
"id": "cd221f10",
"metadata": {},
"source": [
"## Kantenverst\u00e4rkung / Kantenerkennung"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "056b6ef8",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | -88.0 | max | 72.0 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 8., 8., 8., ..., 16., 32., 16.],\n",
" [-24., 0., 16., ..., -16., 16., 0.],\n",
" [-48., -24., 40., ..., -16., -8., -16.],\n",
" ...,\n",
" [ 8., -16., -8., ..., 0., 0., 0.],\n",
" [ 8., 8., 0., ..., 0., 0., 0.],\n",
" [-24., -8., 8., ..., 0., 0., 0.]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.laplacian_filter(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6dcabad6",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float32 | \n",
"size | 254.0 kB | \n",
"min | -0.15148893 | max | 0.0996153 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 0.04143169, 0.03739895, 0.03302537, ...,\n",
" -0.13799646, -0.14374909, -0.14888938],\n",
" [ 0.03790184, 0.03396917, 0.02970707, ...,\n",
" -0.1393942 , -0.14508256, -0.15016647],\n",
" [ 0.03421452, 0.03039436, 0.02625637, ...,\n",
" -0.14042452, -0.14603451, -0.15104878],\n",
" ...,\n",
" [ 0.03438915, 0.03680093, 0.03920772, ...,\n",
" 0.01475119, 0.02091116, 0.02687691],\n",
" [ 0.03811312, 0.04037919, 0.04263743, ...,\n",
" 0.01406322, 0.02019631, 0.02613378],\n",
" [ 0.04134034, 0.04346982, 0.04558875, ...,\n",
" 0.01325303, 0.01936782, 0.02528556]], dtype=float32)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.laplacian_of_gaussian_filter(blobs, sigma=20)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "74d2b06a",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.0 | max | 519.0761023202667 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 68.81860214, 86.16263691, 40.79215611, ...,\n",
" 132.42356286, 90.50966799, 64. ],\n",
" [104.30723848, 132.42356286, 60.92618485, ...,\n",
" 124.45079349, 132.42356286, 128. ],\n",
" [ 67.88225099, 120.26637103, 57.68882041, ...,\n",
" 68.81860214, 68.81860214, 64. ],\n",
" ...,\n",
" [ 60.92618485, 46.64761516, 32. , ...,\n",
" 0. , 0. , 0. ],\n",
" [ 80. , 40.79215611, 11.3137085 , ...,\n",
" 0. , 0. , 0. ],\n",
" [ 60.92618485, 57.68882041, 25.29822128, ...,\n",
" 0. , 0. , 0. ]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.sobel(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b1ddde24",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float32 | \n",
"size | 254.0 kB | \n",
"min | 0.0 | max | 66.211784 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 8.944272, 8.944272, 4. , ..., 17.888544,\n",
" 11.313708, 8. ],\n",
" [14.422205, 17.888544, 8. , ..., 16.970562,\n",
" 17.888544, 16. ],\n",
" [11.313708, 20. , 8.944272, ..., 5.656854,\n",
" 8.944272, 8. ],\n",
" ...,\n",
" [ 8.944272, 5.656854, 4. , ..., 0. ,\n",
" 0. , 0. ],\n",
" [12. , 4. , 0. , ..., 0. ,\n",
" 0. , 0. ],\n",
" [ 8.944272, 8.944272, 4. , ..., 0. ,\n",
" 0. , 0. ]], dtype=float32)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.gradient_magnitude(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "bf8eeb75",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 0 | max | 240 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[48, 48, 48, ..., 48, 48, 48],\n",
" [48, 48, 48, ..., 48, 48, 48],\n",
" [48, 48, 48, ..., 48, 48, 48],\n",
" ...,\n",
" [40, 40, 40, ..., 16, 16, 8],\n",
" [32, 40, 40, ..., 16, 8, 8],\n",
" [32, 32, 40, ..., 8, 0, 0]], dtype=uint8)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.morphological_gradient(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "8cfbfc64",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 0 | max | 89 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[12, 11, 11, ..., 17, 17, 17],\n",
" [12, 12, 11, ..., 16, 16, 16],\n",
" [12, 12, 11, ..., 15, 15, 15],\n",
" ...,\n",
" [13, 12, 12, ..., 3, 2, 2],\n",
" [12, 12, 12, ..., 2, 1, 1],\n",
" [12, 12, 12, ..., 1, 0, 0]], dtype=uint8)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.standard_deviation_filter(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "32804dfe",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.0 | max | 1.0 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" ...,\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.]])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.canny_edge_detection(blobs)"
]
},
{
"cell_type": "markdown",
"id": "0c396d66",
"metadata": {},
"source": [
"## Rauschunterdr\u00fcckung"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "a9082cb0",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 34 | max | 238 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 37, 36, 36, ..., 218, 215, 215],\n",
" [ 39, 37, 36, ..., 220, 218, 217],\n",
" [ 41, 39, 36, ..., 222, 220, 220],\n",
" ...,\n",
" [ 71, 71, 70, ..., 51, 50, 50],\n",
" [ 73, 72, 71, ..., 51, 50, 50],\n",
" [ 76, 74, 72, ..., 51, 50, 50]], dtype=uint8)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.bilateral_filter(blobs, radius=10)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "92f0086f",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 30.42419422074899 | max | 247.4738098724574 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 35.56551057, 35.44926425, 35.11150529, ...,\n",
" 234.76304854, 233.30590651, 232.47789577],\n",
" [ 35.77709637, 35.66327957, 35.33025724, ...,\n",
" 234.81736018, 233.39808796, 232.5916992 ],\n",
" [ 36.38108298, 36.27299886, 35.95061471, ...,\n",
" 234.92220963, 233.60844849, 232.86229297],\n",
" ...,\n",
" [ 71.83095413, 71.56104291, 70.77635546, ...,\n",
" 48.27590613, 48.27687207, 48.29621387],\n",
" [ 73.42920327, 73.14246398, 72.30886172, ...,\n",
" 48.23916006, 48.20239439, 48.20279823],\n",
" [ 74.27138061, 73.97581503, 73.11661364, ...,\n",
" 48.21797925, 48.16105336, 48.15146728]])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.binominal_blur_filter(blobs, repetitions=20)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "6da97f56",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 19.85105575700593 | max | 248.34350816581673 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 33.94403645, 33.72513409, 33.4730825 , ...,\n",
" 234.73522629, 234.61940792, 234.26080718],\n",
" [ 33.76078454, 33.6233714 , 33.46185751, ...,\n",
" 234.61797296, 234.64955635, 234.61247859],\n",
" [ 33.59095341, 33.52604048, 33.43444125, ...,\n",
" 234.40850075, 234.5806033 , 234.63231801],\n",
" ...,\n",
" [ 71.96102783, 71.21219893, 69.99962524, ...,\n",
" 48. , 48. , 48. ],\n",
" [ 74.26007076, 73.31680089, 71.78763889, ...,\n",
" 48. , 48. , 48. ],\n",
" [ 75.34714271, 74.3548973 , 72.70641688, ...,\n",
" 48. , 48. , 48. ]])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.curvature_flow_denoise(blobs, number_of_iterations=150)"
]
},
{
"cell_type": "markdown",
"id": "9b3b21a1",
"metadata": {},
"source": [
"## Dekonvolution"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "ffe9d20a",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (15, 15) | \n",
"dtype | float64 | \n",
"size | 1.8 kB | \n",
"min | 0.0 | max | 0.05936943721673174 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 2.07316370e-05,\n",
" 7.40342327e-05, 2.18156257e-04, 5.10346748e-04,\n",
" 8.98618592e-04, 1.10942581e-03, 8.98618592e-04,\n",
" 5.10346748e-04, 2.18156257e-04, 7.40342327e-05,\n",
" 2.07316370e-05, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 7.40342327e-05,\n",
" 2.64381805e-04, 7.79052380e-04, 1.82248657e-03,\n",
" 3.20903448e-03, 3.96184288e-03, 3.20903448e-03,\n",
" 1.82248657e-03, 7.79052380e-04, 2.64381805e-04,\n",
" 7.40342327e-05, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 2.18156257e-04,\n",
" 7.79052380e-04, 2.29562927e-03, 5.37031092e-03,\n",
" 9.45604388e-03, 1.16743402e-02, 9.45604388e-03,\n",
" 5.37031092e-03, 2.29562927e-03, 7.79052380e-04,\n",
" 2.18156257e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 5.10346748e-04,\n",
" 1.82248657e-03, 5.37031092e-03, 1.25631084e-02,\n",
" 2.21211222e-02, 2.73105232e-02, 2.21211222e-02,\n",
" 1.25631084e-02, 5.37031092e-03, 1.82248657e-03,\n",
" 5.10346748e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 8.98618592e-04,\n",
" 3.20903448e-03, 9.45604388e-03, 2.21211222e-02,\n",
" 3.89508737e-02, 4.80883713e-02, 3.89508737e-02,\n",
" 2.21211222e-02, 9.45604388e-03, 3.20903448e-03,\n",
" 8.98618592e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 1.10942581e-03,\n",
" 3.96184288e-03, 1.16743402e-02, 2.73105232e-02,\n",
" 4.80883713e-02, 5.93694372e-02, 4.80883713e-02,\n",
" 2.73105232e-02, 1.16743402e-02, 3.96184288e-03,\n",
" 1.10942581e-03, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 8.98618592e-04,\n",
" 3.20903448e-03, 9.45604388e-03, 2.21211222e-02,\n",
" 3.89508737e-02, 4.80883713e-02, 3.89508737e-02,\n",
" 2.21211222e-02, 9.45604388e-03, 3.20903448e-03,\n",
" 8.98618592e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 5.10346748e-04,\n",
" 1.82248657e-03, 5.37031092e-03, 1.25631084e-02,\n",
" 2.21211222e-02, 2.73105232e-02, 2.21211222e-02,\n",
" 1.25631084e-02, 5.37031092e-03, 1.82248657e-03,\n",
" 5.10346748e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 2.18156257e-04,\n",
" 7.79052380e-04, 2.29562927e-03, 5.37031092e-03,\n",
" 9.45604388e-03, 1.16743402e-02, 9.45604388e-03,\n",
" 5.37031092e-03, 2.29562927e-03, 7.79052380e-04,\n",
" 2.18156257e-04, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 7.40342327e-05,\n",
" 2.64381805e-04, 7.79052380e-04, 1.82248657e-03,\n",
" 3.20903448e-03, 3.96184288e-03, 3.20903448e-03,\n",
" 1.82248657e-03, 7.79052380e-04, 2.64381805e-04,\n",
" 7.40342327e-05, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 2.07316370e-05,\n",
" 7.40342327e-05, 2.18156257e-04, 5.10346748e-04,\n",
" 8.98618592e-04, 1.10942581e-03, 8.98618592e-04,\n",
" 5.10346748e-04, 2.18156257e-04, 7.40342327e-05,\n",
" 2.07316370e-05, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n",
" [0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"kernel = np.zeros((15, 15))\n",
"kernel[7,7] = 1\n",
"kernel = nsitk.gaussian_blur(kernel, variance_x=3, variance_y=3)\n",
"kernel"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "f92e6cde",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.36973499065669824 | max | 311.62447178679207 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 43.83245666, 26.81790698, 14.91160491, ...,\n",
" 211.35817734, 188.64286128, 185.95219472],\n",
" [ 76.59179201, 38.84667003, 16.36094758, ...,\n",
" 234.20469078, 212.65568984, 210.19295382],\n",
" [ 83.5561574 , 47.00775022, 18.09241321, ...,\n",
" 249.58045699, 237.62628193, 235.30606438],\n",
" ...,\n",
" [ 66.97847756, 80.74987515, 85.84440382, ...,\n",
" 47.1919825 , 46.56816509, 46.60000493],\n",
" [ 81.8243559 , 84.54477811, 85.95353275, ...,\n",
" 46.63096005, 46.19254804, 46.52328468],\n",
" [106.55526755, 95.76158211, 84.16270399, ...,\n",
" 46.14923815, 45.65454142, 46.05176431]])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.richardson_lucy_deconvolution(blobs, kernel)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "b3643ac9",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | -626.7738812690973 | max | 1074.581976763582 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[-3.19548839e+02, 2.04451487e+02, 1.04841780e+02,\n",
" ..., -1.12294425e+02, -4.56854602e+02,\n",
" 7.82500372e+01],\n",
" [-2.84934726e+02, 2.16582708e+02, 5.93714472e+01,\n",
" ..., 7.50198987e+01, -2.87164252e+01,\n",
" 5.82257909e+02],\n",
" [-1.37726173e+02, 3.80843414e+02, 7.34047268e+01,\n",
" ..., 4.05168866e+02, 3.61567771e+02,\n",
" 1.07458198e+03],\n",
" ...,\n",
" [ 2.11035315e+02, 7.03694564e+01, 1.14019646e+02,\n",
" ..., -1.72707341e+02, -1.92517887e+02,\n",
" -3.47929656e+02],\n",
" [ 1.66002803e+02, 2.71788514e+01, -9.87918137e-02,\n",
" ..., 2.12195907e+02, 1.41878134e+02,\n",
" 9.40330836e+00],\n",
" [ 1.85390826e+02, 2.08516391e+01, 4.54073732e+01,\n",
" ..., 2.37085245e+02, 3.10593709e+02,\n",
" 2.49402887e+02]])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.wiener_deconvolution(blobs, kernel)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "1e6d2f4f",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | -0.05634032528120539 | max | 172.71681721775462 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 29.53713205, 23.79447052, 17.99095403, ...,\n",
" 146.64840885, 139.69083518, 135.69531842],\n",
" [ 32.43096945, 26.24976008, 20.3389355 , ...,\n",
" 152.07760507, 146.36281506, 143.01025057],\n",
" [ 31.57203508, 26.67702692, 22.44295313, ...,\n",
" 157.34034337, 152.8851905 , 150.20066893],\n",
" ...,\n",
" [ 50.09552598, 51.33430291, 51.75396249, ...,\n",
" 31.93115703, 31.8491745 , 31.79274509],\n",
" [ 55.15120207, 54.90066768, 53.94418082, ...,\n",
" 32.05843939, 32.00518694, 31.97868156],\n",
" [ 59.74229131, 57.81152308, 55.27038689, ...,\n",
" 32.30391371, 32.27966139, 32.27369132]])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.tikhonov_deconvolution(blobs, kernel, regularization_constant=0.5)"
]
},
{
"cell_type": "markdown",
"id": "641cd5eb",
"metadata": {},
"source": [
"## Hintergrund- / Vordergrundentfernung"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "6394778f",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.0 | max | 208.0 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 0., 0., 0., ..., 0., 0., 0.],\n",
" [16., 8., 0., ..., 32., 16., 0.],\n",
" [24., 24., 8., ..., 40., 32., 0.],\n",
" ...,\n",
" [ 0., 8., 8., ..., 0., 0., 0.],\n",
" [ 0., 0., 8., ..., 0., 0., 0.],\n",
" [ 0., 0., 0., ..., 0., 0., 0.]])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.white_top_hat(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "ed2c0e07",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.0 | max | 224.0 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 0., 0., 8., ..., 0., 0., 0.],\n",
" [ 0., 0., 8., ..., 0., 0., 0.],\n",
" [ 0., 8., 16., ..., 0., 0., 0.],\n",
" ...,\n",
" [ 0., 0., 0., ..., 0., 0., 0.],\n",
" [ 0., 0., 0., ..., 0., 0., 0.],\n",
" [ 0., 0., 0., ..., 0., 0., 0.]])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.black_top_hat(blobs)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "61fb6a19",
"metadata": {
"scrolled": true,
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 8 | max | 148 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[ 32, 32, 24, ..., 148, 148, 148],\n",
" [ 32, 32, 24, ..., 148, 148, 148],\n",
" [ 32, 32, 24, ..., 148, 148, 148],\n",
" ...,\n",
" [ 56, 56, 56, ..., 48, 48, 48],\n",
" [ 56, 56, 56, ..., 48, 48, 48],\n",
" [ 56, 56, 56, ..., 48, 48, 48]], dtype=uint8)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.h_maxima(blobs, height=100)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "392a5397",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 108 | max | 248 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[108, 108, 108, ..., 232, 232, 232],\n",
" [108, 108, 108, ..., 232, 232, 232],\n",
" [108, 108, 108, ..., 240, 232, 232],\n",
" ...,\n",
" [108, 108, 108, ..., 108, 108, 108],\n",
" [108, 108, 108, ..., 108, 108, 108],\n",
" [108, 108, 108, ..., 108, 108, 108]], dtype=uint8)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.h_minima(blobs, height=100)"
]
},
{
"cell_type": "markdown",
"id": "116ec5ed",
"metadata": {},
"source": [
"## Andere Filter"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "12005b26",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9999999999999999\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 0.0 | max | 0.9999999999999999 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[0.13333333, 0.1 , 0.06666667, ..., 0.86666667,\n",
" 0.8 , 0.8 ],\n",
" [0.2 , 0.13333333, 0.06666667, ..., 0.93333333,\n",
" 0.86666667, 0.86666667],\n",
" [0.23333333, 0.16666667, 0.06666667, ..., 0.96666667,\n",
" 0.93333333, 0.93333333],\n",
" ...,\n",
" [0.26666667, 0.3 , 0.3 , ..., 0.16666667,\n",
" 0.16666667, 0.16666667],\n",
" [0.3 , 0.3 , 0.3 , ..., 0.16666667,\n",
" 0.16666667, 0.16666667],\n",
" [0.36666667, 0.33333333, 0.3 , ..., 0.16666667,\n",
" 0.16666667, 0.16666667]])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rescaled = nsitk.rescale_intensity(blobs)\n",
"\n",
"print(rescaled.max())\n",
"\n",
"rescaled"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "e996cc45",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | float64 | \n",
"size | 508.0 kB | \n",
"min | 20.719606939426107 | max | 237.734319340099 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[119.50977373, 87.56177064, 55.30237745, ...,\n",
" 96.89270529, 79.79918119, 80.82263557],\n",
" [161.23418447, 115.59380895, 53.4020973 , ...,\n",
" 132.19622123, 97.83247995, 99.80753282],\n",
" [173.72644923, 139.67014505, 51.82205108, ...,\n",
" 175.00137272, 138.17574745, 141.85426313],\n",
" ...,\n",
" [124.81910604, 158.90641677, 161.15876581, ...,\n",
" 104.79459468, 103.09188644, 102.94053513],\n",
" [153.06771667, 156.20188299, 158.7294625 , ...,\n",
" 103.99999856, 101.92431687, 101.5783686 ],\n",
" [182.90615321, 173.21626885, 155.61706799, ...,\n",
" 106.11892293, 103.99999837, 103.99999746]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.adaptive_histogram_equalization(blobs, radius_x=5, radius_y=5)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "da2dfba6",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"n-sitk made image \n",
"\n",
"shape | (254, 256) | \n",
"dtype | uint8 | \n",
"size | 63.5 kB | \n",
"min | 7 | max | 247 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[215, 223, 231, ..., 39, 55, 55],\n",
" [199, 215, 231, ..., 23, 39, 39],\n",
" [191, 207, 231, ..., 15, 23, 23],\n",
" ...,\n",
" [183, 175, 175, ..., 207, 207, 207],\n",
" [175, 175, 175, ..., 207, 207, 207],\n",
" [159, 167, 175, ..., 207, 207, 207]], dtype=uint8)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsitk.invert_intensity(blobs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "40d2f561-d6a2-49b9-8fe6-489550617f1c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 5
}