{ "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", "\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min8
max248
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min24
max248
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min28
max247
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min-88.0
max72.0
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat32
size254.0 kB
min-0.15148893
max0.0996153
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.0
max519.0761023202667
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat32
size254.0 kB
min0.0
max66.211784
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min0
max240
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min0
max89
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.0
max1.0
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min34
max238
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min30.42419422074899
max247.4738098724574
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min19.85105575700593
max248.34350816581673
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(15, 15)
dtypefloat64
size1.8 kB
min0.0
max0.05936943721673174
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.36973499065669824
max311.62447178679207
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min-626.7738812690973
max1074.581976763582
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min-0.05634032528120539
max172.71681721775462
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.0
max208.0
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.0
max224.0
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min8
max148
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min108
max248
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min0.0
max0.9999999999999999
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypefloat64
size508.0 kB
min20.719606939426107
max237.734319340099
\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", "\n", "n-sitk made image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(254, 256)
dtypeuint8
size63.5 kB
min7
max247
\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 }