diff --git a/demo/measurement/label_statistics.ipynb b/demo/measurement/label_statistics.ipynb
new file mode 100644
index 00000000..964421c6
--- /dev/null
+++ b/demo/measurement/label_statistics.ipynb
@@ -0,0 +1,1259 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "10042491-842e-4ce0-aaa3-7a80504886bb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'0.18.1'"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pyclesperanto_prototype as cle\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "cle.__version__"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "9c66a333-a0dc-4383-a833-f8e8ee70ecc7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ " | \n",
+ "\n",
+ "cle._ image \n",
+ "\n",
+ "shape | (40, 40) | \n",
+ "dtype | float32 | \n",
+ "size | 6.2 kB | \n",
+ "min | 0.0 | max | 1521.0 | \n",
+ " \n",
+ " \n",
+ " | \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "cl.OCLArray([[0.000e+00, 0.000e+00, 0.000e+00, ..., 0.000e+00, 0.000e+00,\n",
+ " 0.000e+00],\n",
+ " [0.000e+00, 1.000e+00, 2.000e+00, ..., 3.700e+01, 3.800e+01,\n",
+ " 3.900e+01],\n",
+ " [0.000e+00, 2.000e+00, 4.000e+00, ..., 7.400e+01, 7.600e+01,\n",
+ " 7.800e+01],\n",
+ " ...,\n",
+ " [0.000e+00, 3.700e+01, 7.400e+01, ..., 1.369e+03, 1.406e+03,\n",
+ " 1.443e+03],\n",
+ " [0.000e+00, 3.800e+01, 7.600e+01, ..., 1.406e+03, 1.444e+03,\n",
+ " 1.482e+03],\n",
+ " [0.000e+00, 3.900e+01, 7.800e+01, ..., 1.443e+03, 1.482e+03,\n",
+ " 1.521e+03]], dtype=float32)"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "image1 = cle.create((40,40))\n",
+ "cle.set_ramp_x(image1)\n",
+ "image2 = cle.create((40,40))\n",
+ "cle.set_ramp_y(image2)\n",
+ "\n",
+ "image = image1 * image2\n",
+ "image"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "ebbbb474-97a2-4675-ad23-a3c814673c0e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " | \n",
+ "\n",
+ "cle._ image \n",
+ "\n",
+ "shape | (40, 40) | \n",
+ "dtype | uint32 | \n",
+ "size | 6.2 kB | \n",
+ "min | 1.0 | max | 4.0 | \n",
+ " \n",
+ "\n",
+ " | \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "cl.OCLArray([[1, 1, 1, ..., 2, 2, 2],\n",
+ " [1, 1, 1, ..., 2, 2, 2],\n",
+ " [1, 1, 1, ..., 2, 2, 2],\n",
+ " ...,\n",
+ " [1, 1, 1, ..., 3, 3, 3],\n",
+ " [1, 1, 1, ..., 3, 3, 3],\n",
+ " [1, 1, 1, ..., 3, 3, 3]], dtype=uint32)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "label_image = cle.scale(cle.asarray([\n",
+ " [1, 1, 2, 2],\n",
+ " [1, 4, 4, 2],\n",
+ " [1, 4, 4, 3],\n",
+ " [1, 1, 3, 3],\n",
+ "]), factor_x=10, factor_y=10, auto_size=True).astype(np.uint32)\n",
+ "label_image"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "e7d24d84-2632-40d1-aab1-0d93b620cce6",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'label': array([1, 2, 3, 4]),\n",
+ " 'original_label': array([1, 2, 3, 4]),\n",
+ " 'bbox_min_x': array([ 0., 20., 20., 10.], dtype=float32),\n",
+ " 'bbox_min_y': array([ 0., 0., 20., 10.], dtype=float32),\n",
+ " 'bbox_min_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'bbox_max_x': array([19., 39., 39., 29.], dtype=float32),\n",
+ " 'bbox_max_y': array([39., 19., 39., 29.], dtype=float32),\n",
+ " 'bbox_max_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'bbox_width': array([20., 20., 20., 20.], dtype=float32),\n",
+ " 'bbox_height': array([40., 20., 20., 20.], dtype=float32),\n",
+ " 'bbox_depth': array([1., 1., 1., 1.], dtype=float32),\n",
+ " 'min_intensity': array([ 0., 0., 600., 100.], dtype=float32),\n",
+ " 'max_intensity': array([ 741., 741., 1521., 841.], dtype=float32),\n",
+ " 'sum_intensity': array([ 91650., 76575., 288075., 152100.], dtype=float32),\n",
+ " 'area': array([600., 300., 300., 400.], dtype=float32),\n",
+ " 'mean_intensity': array([152.75, 255.25, 960.25, 380.25], dtype=float32),\n",
+ " 'sum_intensity_times_x': array([1074450., 2550975., 9170475., 3225300.], dtype=float32),\n",
+ " 'mass_center_x': array([11.723405, 33.31342 , 31.833637, 21.205128], dtype=float32),\n",
+ " 'sum_intensity_times_y': array([2703450., 921975., 9170475., 3225300.], dtype=float32),\n",
+ " 'mass_center_y': array([29.497545, 12.040156, 31.833637, 21.205128], dtype=float32),\n",
+ " 'sum_intensity_times_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'mass_center_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'sum_x': array([4700., 9350., 9350., 7800.], dtype=float32),\n",
+ " 'centroid_x': array([ 7.8333335, 31.166668 , 31.166668 , 19.5 ], dtype=float32),\n",
+ " 'sum_y': array([11700., 2350., 9350., 7800.], dtype=float32),\n",
+ " 'centroid_y': array([19.5 , 7.8333335, 31.166668 , 19.5 ], dtype=float32),\n",
+ " 'sum_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'centroid_z': array([0., 0., 0., 0.], dtype=float32),\n",
+ " 'sum_distance_to_centroid': array([7803.0596, 2169.439 , 2169.4387, 3057.9111], dtype=float32),\n",
+ " 'mean_distance_to_centroid': array([13.005099 , 7.2314634, 7.2314625, 7.644778 ], dtype=float32),\n",
+ " 'sum_distance_to_mass_center': array([9336.952 , 2461.59 , 2172.0378, 3159.9648], dtype=float32),\n",
+ " 'mean_distance_to_mass_center': array([15.561587, 8.2053 , 7.240126, 7.899912], dtype=float32),\n",
+ " 'standard_deviation_intensity': array([176.3723 , 198.25412, 207.15257, 162.45674], dtype=float32),\n",
+ " 'max_distance_to_centroid': array([22.47097 , 13.64022 , 13.640219, 13.435029], dtype=float32),\n",
+ " 'max_distance_to_mass_center': array([31.741825, 17.95028 , 13.83444 , 15.846443], dtype=float32),\n",
+ " 'mean_max_distance_to_centroid_ratio': array([1.7278584, 1.8862323, 1.8862324, 1.7574127], dtype=float32),\n",
+ " 'mean_max_distance_to_mass_center_ratio': array([2.0397549, 2.1876445, 1.910801 , 2.0059013], dtype=float32)}"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "statistics = cle.statistics_of_labelled_pixels(image, label_image)\n",
+ "statistics"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "a4b99512-c217-419d-a7f0-eee14831987d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " label | \n",
+ " original_label | \n",
+ " bbox_min_x | \n",
+ " bbox_min_y | \n",
+ " bbox_min_z | \n",
+ " bbox_max_x | \n",
+ " bbox_max_y | \n",
+ " bbox_max_z | \n",
+ " bbox_width | \n",
+ " bbox_height | \n",
+ " ... | \n",
+ " centroid_z | \n",
+ " sum_distance_to_centroid | \n",
+ " mean_distance_to_centroid | \n",
+ " sum_distance_to_mass_center | \n",
+ " mean_distance_to_mass_center | \n",
+ " standard_deviation_intensity | \n",
+ " max_distance_to_centroid | \n",
+ " max_distance_to_mass_center | \n",
+ " mean_max_distance_to_centroid_ratio | \n",
+ " mean_max_distance_to_mass_center_ratio | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 19.0 | \n",
+ " 39.0 | \n",
+ " 0.0 | \n",
+ " 20.0 | \n",
+ " 40.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 7803.059570 | \n",
+ " 13.005099 | \n",
+ " 9336.952148 | \n",
+ " 15.561587 | \n",
+ " 176.372299 | \n",
+ " 22.470970 | \n",
+ " 31.741825 | \n",
+ " 1.727858 | \n",
+ " 2.039755 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 20.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 39.0 | \n",
+ " 19.0 | \n",
+ " 0.0 | \n",
+ " 20.0 | \n",
+ " 20.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 2169.438965 | \n",
+ " 7.231463 | \n",
+ " 2461.590088 | \n",
+ " 8.205300 | \n",
+ " 198.254120 | \n",
+ " 13.640220 | \n",
+ " 17.950279 | \n",
+ " 1.886232 | \n",
+ " 2.187644 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 20.0 | \n",
+ " 20.0 | \n",
+ " 0.0 | \n",
+ " 39.0 | \n",
+ " 39.0 | \n",
+ " 0.0 | \n",
+ " 20.0 | \n",
+ " 20.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 2169.438721 | \n",
+ " 7.231462 | \n",
+ " 2172.037842 | \n",
+ " 7.240126 | \n",
+ " 207.152573 | \n",
+ " 13.640219 | \n",
+ " 13.834440 | \n",
+ " 1.886232 | \n",
+ " 1.910801 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 10.0 | \n",
+ " 10.0 | \n",
+ " 0.0 | \n",
+ " 29.0 | \n",
+ " 29.0 | \n",
+ " 0.0 | \n",
+ " 20.0 | \n",
+ " 20.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 3057.911133 | \n",
+ " 7.644778 | \n",
+ " 3159.964844 | \n",
+ " 7.899912 | \n",
+ " 162.456741 | \n",
+ " 13.435029 | \n",
+ " 15.846443 | \n",
+ " 1.757413 | \n",
+ " 2.005901 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
4 rows × 37 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " label original_label bbox_min_x bbox_min_y bbox_min_z bbox_max_x \\\n",
+ "0 1 1 0.0 0.0 0.0 19.0 \n",
+ "1 2 2 20.0 0.0 0.0 39.0 \n",
+ "2 3 3 20.0 20.0 0.0 39.0 \n",
+ "3 4 4 10.0 10.0 0.0 29.0 \n",
+ "\n",
+ " bbox_max_y bbox_max_z bbox_width bbox_height ... centroid_z \\\n",
+ "0 39.0 0.0 20.0 40.0 ... 0.0 \n",
+ "1 19.0 0.0 20.0 20.0 ... 0.0 \n",
+ "2 39.0 0.0 20.0 20.0 ... 0.0 \n",
+ "3 29.0 0.0 20.0 20.0 ... 0.0 \n",
+ "\n",
+ " sum_distance_to_centroid mean_distance_to_centroid \\\n",
+ "0 7803.059570 13.005099 \n",
+ "1 2169.438965 7.231463 \n",
+ "2 2169.438721 7.231462 \n",
+ "3 3057.911133 7.644778 \n",
+ "\n",
+ " sum_distance_to_mass_center mean_distance_to_mass_center \\\n",
+ "0 9336.952148 15.561587 \n",
+ "1 2461.590088 8.205300 \n",
+ "2 2172.037842 7.240126 \n",
+ "3 3159.964844 7.899912 \n",
+ "\n",
+ " standard_deviation_intensity max_distance_to_centroid \\\n",
+ "0 176.372299 22.470970 \n",
+ "1 198.254120 13.640220 \n",
+ "2 207.152573 13.640219 \n",
+ "3 162.456741 13.435029 \n",
+ "\n",
+ " max_distance_to_mass_center mean_max_distance_to_centroid_ratio \\\n",
+ "0 31.741825 1.727858 \n",
+ "1 17.950279 1.886232 \n",
+ "2 13.834440 1.886232 \n",
+ "3 15.846443 1.757413 \n",
+ "\n",
+ " mean_max_distance_to_mass_center_ratio \n",
+ "0 2.039755 \n",
+ "1 2.187644 \n",
+ "2 1.910801 \n",
+ "3 2.005901 \n",
+ "\n",
+ "[4 rows x 37 columns]"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "table = pd.DataFrame(statistics)\n",
+ "table"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "685ba6c8-a4b7-4226-99f8-33e37dd4de0c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " count | \n",
+ " mean | \n",
+ " std | \n",
+ " min | \n",
+ " 25% | \n",
+ " 50% | \n",
+ " 75% | \n",
+ " max | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " label | \n",
+ " 4.0 | \n",
+ " 2.500000e+00 | \n",
+ " 1.290994e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.750000e+00 | \n",
+ " 2.500000e+00 | \n",
+ " 3.250000e+00 | \n",
+ " 4.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " original_label | \n",
+ " 4.0 | \n",
+ " 2.500000e+00 | \n",
+ " 1.290994e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.750000e+00 | \n",
+ " 2.500000e+00 | \n",
+ " 3.250000e+00 | \n",
+ " 4.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " bbox_min_x | \n",
+ " 4.0 | \n",
+ " 1.250000e+01 | \n",
+ " 9.574271e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 7.500000e+00 | \n",
+ " 1.500000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_min_y | \n",
+ " 4.0 | \n",
+ " 7.500000e+00 | \n",
+ " 9.574271e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 5.000000e+00 | \n",
+ " 1.250000e+01 | \n",
+ " 2.000000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_min_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " bbox_max_x | \n",
+ " 4.0 | \n",
+ " 3.150000e+01 | \n",
+ " 9.574271e+00 | \n",
+ " 1.900000e+01 | \n",
+ " 2.650000e+01 | \n",
+ " 3.400000e+01 | \n",
+ " 3.900000e+01 | \n",
+ " 3.900000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_max_y | \n",
+ " 4.0 | \n",
+ " 3.150000e+01 | \n",
+ " 9.574271e+00 | \n",
+ " 1.900000e+01 | \n",
+ " 2.650000e+01 | \n",
+ " 3.400000e+01 | \n",
+ " 3.900000e+01 | \n",
+ " 3.900000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_max_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " bbox_width | \n",
+ " 4.0 | \n",
+ " 2.000000e+01 | \n",
+ " 0.000000e+00 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_height | \n",
+ " 4.0 | \n",
+ " 2.500000e+01 | \n",
+ " 1.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.000000e+01 | \n",
+ " 2.500000e+01 | \n",
+ " 4.000000e+01 | \n",
+ "
\n",
+ " \n",
+ " bbox_depth | \n",
+ " 4.0 | \n",
+ " 1.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.000000e+00 | \n",
+ " 1.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " min_intensity | \n",
+ " 4.0 | \n",
+ " 1.750000e+02 | \n",
+ " 2.872281e+02 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 5.000000e+01 | \n",
+ " 2.250000e+02 | \n",
+ " 6.000000e+02 | \n",
+ "
\n",
+ " \n",
+ " max_intensity | \n",
+ " 4.0 | \n",
+ " 9.610000e+02 | \n",
+ " 3.762978e+02 | \n",
+ " 7.410000e+02 | \n",
+ " 7.410000e+02 | \n",
+ " 7.910000e+02 | \n",
+ " 1.011000e+03 | \n",
+ " 1.521000e+03 | \n",
+ "
\n",
+ " \n",
+ " sum_intensity | \n",
+ " 4.0 | \n",
+ " 1.521000e+05 | \n",
+ " 9.634561e+04 | \n",
+ " 7.657500e+04 | \n",
+ " 8.788125e+04 | \n",
+ " 1.218750e+05 | \n",
+ " 1.860938e+05 | \n",
+ " 2.880750e+05 | \n",
+ "
\n",
+ " \n",
+ " area | \n",
+ " 4.0 | \n",
+ " 4.000000e+02 | \n",
+ " 1.414214e+02 | \n",
+ " 3.000000e+02 | \n",
+ " 3.000000e+02 | \n",
+ " 3.500000e+02 | \n",
+ " 4.500000e+02 | \n",
+ " 6.000000e+02 | \n",
+ "
\n",
+ " \n",
+ " mean_intensity | \n",
+ " 4.0 | \n",
+ " 4.371250e+02 | \n",
+ " 3.609442e+02 | \n",
+ " 1.527500e+02 | \n",
+ " 2.296250e+02 | \n",
+ " 3.177500e+02 | \n",
+ " 5.252500e+02 | \n",
+ " 9.602500e+02 | \n",
+ "
\n",
+ " \n",
+ " sum_intensity_times_x | \n",
+ " 4.0 | \n",
+ " 4.005300e+06 | \n",
+ " 3.558669e+06 | \n",
+ " 1.074450e+06 | \n",
+ " 2.181844e+06 | \n",
+ " 2.888138e+06 | \n",
+ " 4.711594e+06 | \n",
+ " 9.170475e+06 | \n",
+ "
\n",
+ " \n",
+ " mass_center_x | \n",
+ " 4.0 | \n",
+ " 2.451890e+01 | \n",
+ " 1.009215e+01 | \n",
+ " 1.172340e+01 | \n",
+ " 1.883470e+01 | \n",
+ " 2.651938e+01 | \n",
+ " 3.220358e+01 | \n",
+ " 3.331342e+01 | \n",
+ "
\n",
+ " \n",
+ " sum_intensity_times_y | \n",
+ " 4.0 | \n",
+ " 4.005300e+06 | \n",
+ " 3.581859e+06 | \n",
+ " 9.219750e+05 | \n",
+ " 2.258081e+06 | \n",
+ " 2.964375e+06 | \n",
+ " 4.711594e+06 | \n",
+ " 9.170475e+06 | \n",
+ "
\n",
+ " \n",
+ " mass_center_y | \n",
+ " 4.0 | \n",
+ " 2.364412e+01 | \n",
+ " 8.980190e+00 | \n",
+ " 1.204016e+01 | \n",
+ " 1.891388e+01 | \n",
+ " 2.535134e+01 | \n",
+ " 3.008157e+01 | \n",
+ " 3.183364e+01 | \n",
+ "
\n",
+ " \n",
+ " sum_intensity_times_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " mass_center_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " sum_x | \n",
+ " 4.0 | \n",
+ " 7.800000e+03 | \n",
+ " 2.192031e+03 | \n",
+ " 4.700000e+03 | \n",
+ " 7.025000e+03 | \n",
+ " 8.575000e+03 | \n",
+ " 9.350000e+03 | \n",
+ " 9.350000e+03 | \n",
+ "
\n",
+ " \n",
+ " centroid_x | \n",
+ " 4.0 | \n",
+ " 2.241667e+01 | \n",
+ " 1.116998e+01 | \n",
+ " 7.833333e+00 | \n",
+ " 1.658333e+01 | \n",
+ " 2.533333e+01 | \n",
+ " 3.116667e+01 | \n",
+ " 3.116667e+01 | \n",
+ "
\n",
+ " \n",
+ " sum_y | \n",
+ " 4.0 | \n",
+ " 7.800000e+03 | \n",
+ " 3.971356e+03 | \n",
+ " 2.350000e+03 | \n",
+ " 6.437500e+03 | \n",
+ " 8.575000e+03 | \n",
+ " 9.937500e+03 | \n",
+ " 1.170000e+04 | \n",
+ "
\n",
+ " \n",
+ " centroid_y | \n",
+ " 4.0 | \n",
+ " 1.950000e+01 | \n",
+ " 9.525794e+00 | \n",
+ " 7.833333e+00 | \n",
+ " 1.658333e+01 | \n",
+ " 1.950000e+01 | \n",
+ " 2.241667e+01 | \n",
+ " 3.116667e+01 | \n",
+ "
\n",
+ " \n",
+ " sum_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " centroid_z | \n",
+ " 4.0 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ " 0.000000e+00 | \n",
+ "
\n",
+ " \n",
+ " sum_distance_to_centroid | \n",
+ " 4.0 | \n",
+ " 3.799962e+03 | \n",
+ " 2.701397e+03 | \n",
+ " 2.169439e+03 | \n",
+ " 2.169439e+03 | \n",
+ " 2.613675e+03 | \n",
+ " 4.244198e+03 | \n",
+ " 7.803060e+03 | \n",
+ "
\n",
+ " \n",
+ " mean_distance_to_centroid | \n",
+ " 4.0 | \n",
+ " 8.778201e+00 | \n",
+ " 2.824660e+00 | \n",
+ " 7.231462e+00 | \n",
+ " 7.231463e+00 | \n",
+ " 7.438121e+00 | \n",
+ " 8.984858e+00 | \n",
+ " 1.300510e+01 | \n",
+ "
\n",
+ " \n",
+ " sum_distance_to_mass_center | \n",
+ " 4.0 | \n",
+ " 4.282636e+03 | \n",
+ " 3.394964e+03 | \n",
+ " 2.172038e+03 | \n",
+ " 2.389202e+03 | \n",
+ " 2.810777e+03 | \n",
+ " 4.704212e+03 | \n",
+ " 9.336952e+03 | \n",
+ "
\n",
+ " \n",
+ " mean_distance_to_mass_center | \n",
+ " 4.0 | \n",
+ " 9.726731e+00 | \n",
+ " 3.910702e+00 | \n",
+ " 7.240126e+00 | \n",
+ " 7.734965e+00 | \n",
+ " 8.052606e+00 | \n",
+ " 1.004437e+01 | \n",
+ " 1.556159e+01 | \n",
+ "
\n",
+ " \n",
+ " standard_deviation_intensity | \n",
+ " 4.0 | \n",
+ " 1.860589e+02 | \n",
+ " 2.036794e+01 | \n",
+ " 1.624567e+02 | \n",
+ " 1.728934e+02 | \n",
+ " 1.873132e+02 | \n",
+ " 2.004787e+02 | \n",
+ " 2.071526e+02 | \n",
+ "
\n",
+ " \n",
+ " max_distance_to_centroid | \n",
+ " 4.0 | \n",
+ " 1.579661e+01 | \n",
+ " 4.450625e+00 | \n",
+ " 1.343503e+01 | \n",
+ " 1.358892e+01 | \n",
+ " 1.364022e+01 | \n",
+ " 1.584791e+01 | \n",
+ " 2.247097e+01 | \n",
+ "
\n",
+ " \n",
+ " max_distance_to_mass_center | \n",
+ " 4.0 | \n",
+ " 1.984325e+01 | \n",
+ " 8.108425e+00 | \n",
+ " 1.383444e+01 | \n",
+ " 1.534344e+01 | \n",
+ " 1.689836e+01 | \n",
+ " 2.139817e+01 | \n",
+ " 3.174183e+01 | \n",
+ "
\n",
+ " \n",
+ " mean_max_distance_to_centroid_ratio | \n",
+ " 4.0 | \n",
+ " 1.814434e+00 | \n",
+ " 8.377899e-02 | \n",
+ " 1.727858e+00 | \n",
+ " 1.750024e+00 | \n",
+ " 1.821822e+00 | \n",
+ " 1.886232e+00 | \n",
+ " 1.886232e+00 | \n",
+ "
\n",
+ " \n",
+ " mean_max_distance_to_mass_center_ratio | \n",
+ " 4.0 | \n",
+ " 2.036026e+00 | \n",
+ " 1.148780e-01 | \n",
+ " 1.910801e+00 | \n",
+ " 1.982126e+00 | \n",
+ " 2.022828e+00 | \n",
+ " 2.076727e+00 | \n",
+ " 2.187644e+00 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " count mean std \\\n",
+ "label 4.0 2.500000e+00 1.290994e+00 \n",
+ "original_label 4.0 2.500000e+00 1.290994e+00 \n",
+ "bbox_min_x 4.0 1.250000e+01 9.574271e+00 \n",
+ "bbox_min_y 4.0 7.500000e+00 9.574271e+00 \n",
+ "bbox_min_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "bbox_max_x 4.0 3.150000e+01 9.574271e+00 \n",
+ "bbox_max_y 4.0 3.150000e+01 9.574271e+00 \n",
+ "bbox_max_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "bbox_width 4.0 2.000000e+01 0.000000e+00 \n",
+ "bbox_height 4.0 2.500000e+01 1.000000e+01 \n",
+ "bbox_depth 4.0 1.000000e+00 0.000000e+00 \n",
+ "min_intensity 4.0 1.750000e+02 2.872281e+02 \n",
+ "max_intensity 4.0 9.610000e+02 3.762978e+02 \n",
+ "sum_intensity 4.0 1.521000e+05 9.634561e+04 \n",
+ "area 4.0 4.000000e+02 1.414214e+02 \n",
+ "mean_intensity 4.0 4.371250e+02 3.609442e+02 \n",
+ "sum_intensity_times_x 4.0 4.005300e+06 3.558669e+06 \n",
+ "mass_center_x 4.0 2.451890e+01 1.009215e+01 \n",
+ "sum_intensity_times_y 4.0 4.005300e+06 3.581859e+06 \n",
+ "mass_center_y 4.0 2.364412e+01 8.980190e+00 \n",
+ "sum_intensity_times_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "mass_center_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "sum_x 4.0 7.800000e+03 2.192031e+03 \n",
+ "centroid_x 4.0 2.241667e+01 1.116998e+01 \n",
+ "sum_y 4.0 7.800000e+03 3.971356e+03 \n",
+ "centroid_y 4.0 1.950000e+01 9.525794e+00 \n",
+ "sum_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "centroid_z 4.0 0.000000e+00 0.000000e+00 \n",
+ "sum_distance_to_centroid 4.0 3.799962e+03 2.701397e+03 \n",
+ "mean_distance_to_centroid 4.0 8.778201e+00 2.824660e+00 \n",
+ "sum_distance_to_mass_center 4.0 4.282636e+03 3.394964e+03 \n",
+ "mean_distance_to_mass_center 4.0 9.726731e+00 3.910702e+00 \n",
+ "standard_deviation_intensity 4.0 1.860589e+02 2.036794e+01 \n",
+ "max_distance_to_centroid 4.0 1.579661e+01 4.450625e+00 \n",
+ "max_distance_to_mass_center 4.0 1.984325e+01 8.108425e+00 \n",
+ "mean_max_distance_to_centroid_ratio 4.0 1.814434e+00 8.377899e-02 \n",
+ "mean_max_distance_to_mass_center_ratio 4.0 2.036026e+00 1.148780e-01 \n",
+ "\n",
+ " min 25% \\\n",
+ "label 1.000000e+00 1.750000e+00 \n",
+ "original_label 1.000000e+00 1.750000e+00 \n",
+ "bbox_min_x 0.000000e+00 7.500000e+00 \n",
+ "bbox_min_y 0.000000e+00 0.000000e+00 \n",
+ "bbox_min_z 0.000000e+00 0.000000e+00 \n",
+ "bbox_max_x 1.900000e+01 2.650000e+01 \n",
+ "bbox_max_y 1.900000e+01 2.650000e+01 \n",
+ "bbox_max_z 0.000000e+00 0.000000e+00 \n",
+ "bbox_width 2.000000e+01 2.000000e+01 \n",
+ "bbox_height 2.000000e+01 2.000000e+01 \n",
+ "bbox_depth 1.000000e+00 1.000000e+00 \n",
+ "min_intensity 0.000000e+00 0.000000e+00 \n",
+ "max_intensity 7.410000e+02 7.410000e+02 \n",
+ "sum_intensity 7.657500e+04 8.788125e+04 \n",
+ "area 3.000000e+02 3.000000e+02 \n",
+ "mean_intensity 1.527500e+02 2.296250e+02 \n",
+ "sum_intensity_times_x 1.074450e+06 2.181844e+06 \n",
+ "mass_center_x 1.172340e+01 1.883470e+01 \n",
+ "sum_intensity_times_y 9.219750e+05 2.258081e+06 \n",
+ "mass_center_y 1.204016e+01 1.891388e+01 \n",
+ "sum_intensity_times_z 0.000000e+00 0.000000e+00 \n",
+ "mass_center_z 0.000000e+00 0.000000e+00 \n",
+ "sum_x 4.700000e+03 7.025000e+03 \n",
+ "centroid_x 7.833333e+00 1.658333e+01 \n",
+ "sum_y 2.350000e+03 6.437500e+03 \n",
+ "centroid_y 7.833333e+00 1.658333e+01 \n",
+ "sum_z 0.000000e+00 0.000000e+00 \n",
+ "centroid_z 0.000000e+00 0.000000e+00 \n",
+ "sum_distance_to_centroid 2.169439e+03 2.169439e+03 \n",
+ "mean_distance_to_centroid 7.231462e+00 7.231463e+00 \n",
+ "sum_distance_to_mass_center 2.172038e+03 2.389202e+03 \n",
+ "mean_distance_to_mass_center 7.240126e+00 7.734965e+00 \n",
+ "standard_deviation_intensity 1.624567e+02 1.728934e+02 \n",
+ "max_distance_to_centroid 1.343503e+01 1.358892e+01 \n",
+ "max_distance_to_mass_center 1.383444e+01 1.534344e+01 \n",
+ "mean_max_distance_to_centroid_ratio 1.727858e+00 1.750024e+00 \n",
+ "mean_max_distance_to_mass_center_ratio 1.910801e+00 1.982126e+00 \n",
+ "\n",
+ " 50% 75% \\\n",
+ "label 2.500000e+00 3.250000e+00 \n",
+ "original_label 2.500000e+00 3.250000e+00 \n",
+ "bbox_min_x 1.500000e+01 2.000000e+01 \n",
+ "bbox_min_y 5.000000e+00 1.250000e+01 \n",
+ "bbox_min_z 0.000000e+00 0.000000e+00 \n",
+ "bbox_max_x 3.400000e+01 3.900000e+01 \n",
+ "bbox_max_y 3.400000e+01 3.900000e+01 \n",
+ "bbox_max_z 0.000000e+00 0.000000e+00 \n",
+ "bbox_width 2.000000e+01 2.000000e+01 \n",
+ "bbox_height 2.000000e+01 2.500000e+01 \n",
+ "bbox_depth 1.000000e+00 1.000000e+00 \n",
+ "min_intensity 5.000000e+01 2.250000e+02 \n",
+ "max_intensity 7.910000e+02 1.011000e+03 \n",
+ "sum_intensity 1.218750e+05 1.860938e+05 \n",
+ "area 3.500000e+02 4.500000e+02 \n",
+ "mean_intensity 3.177500e+02 5.252500e+02 \n",
+ "sum_intensity_times_x 2.888138e+06 4.711594e+06 \n",
+ "mass_center_x 2.651938e+01 3.220358e+01 \n",
+ "sum_intensity_times_y 2.964375e+06 4.711594e+06 \n",
+ "mass_center_y 2.535134e+01 3.008157e+01 \n",
+ "sum_intensity_times_z 0.000000e+00 0.000000e+00 \n",
+ "mass_center_z 0.000000e+00 0.000000e+00 \n",
+ "sum_x 8.575000e+03 9.350000e+03 \n",
+ "centroid_x 2.533333e+01 3.116667e+01 \n",
+ "sum_y 8.575000e+03 9.937500e+03 \n",
+ "centroid_y 1.950000e+01 2.241667e+01 \n",
+ "sum_z 0.000000e+00 0.000000e+00 \n",
+ "centroid_z 0.000000e+00 0.000000e+00 \n",
+ "sum_distance_to_centroid 2.613675e+03 4.244198e+03 \n",
+ "mean_distance_to_centroid 7.438121e+00 8.984858e+00 \n",
+ "sum_distance_to_mass_center 2.810777e+03 4.704212e+03 \n",
+ "mean_distance_to_mass_center 8.052606e+00 1.004437e+01 \n",
+ "standard_deviation_intensity 1.873132e+02 2.004787e+02 \n",
+ "max_distance_to_centroid 1.364022e+01 1.584791e+01 \n",
+ "max_distance_to_mass_center 1.689836e+01 2.139817e+01 \n",
+ "mean_max_distance_to_centroid_ratio 1.821822e+00 1.886232e+00 \n",
+ "mean_max_distance_to_mass_center_ratio 2.022828e+00 2.076727e+00 \n",
+ "\n",
+ " max \n",
+ "label 4.000000e+00 \n",
+ "original_label 4.000000e+00 \n",
+ "bbox_min_x 2.000000e+01 \n",
+ "bbox_min_y 2.000000e+01 \n",
+ "bbox_min_z 0.000000e+00 \n",
+ "bbox_max_x 3.900000e+01 \n",
+ "bbox_max_y 3.900000e+01 \n",
+ "bbox_max_z 0.000000e+00 \n",
+ "bbox_width 2.000000e+01 \n",
+ "bbox_height 4.000000e+01 \n",
+ "bbox_depth 1.000000e+00 \n",
+ "min_intensity 6.000000e+02 \n",
+ "max_intensity 1.521000e+03 \n",
+ "sum_intensity 2.880750e+05 \n",
+ "area 6.000000e+02 \n",
+ "mean_intensity 9.602500e+02 \n",
+ "sum_intensity_times_x 9.170475e+06 \n",
+ "mass_center_x 3.331342e+01 \n",
+ "sum_intensity_times_y 9.170475e+06 \n",
+ "mass_center_y 3.183364e+01 \n",
+ "sum_intensity_times_z 0.000000e+00 \n",
+ "mass_center_z 0.000000e+00 \n",
+ "sum_x 9.350000e+03 \n",
+ "centroid_x 3.116667e+01 \n",
+ "sum_y 1.170000e+04 \n",
+ "centroid_y 3.116667e+01 \n",
+ "sum_z 0.000000e+00 \n",
+ "centroid_z 0.000000e+00 \n",
+ "sum_distance_to_centroid 7.803060e+03 \n",
+ "mean_distance_to_centroid 1.300510e+01 \n",
+ "sum_distance_to_mass_center 9.336952e+03 \n",
+ "mean_distance_to_mass_center 1.556159e+01 \n",
+ "standard_deviation_intensity 2.071526e+02 \n",
+ "max_distance_to_centroid 2.247097e+01 \n",
+ "max_distance_to_mass_center 3.174183e+01 \n",
+ "mean_max_distance_to_centroid_ratio 1.886232e+00 \n",
+ "mean_max_distance_to_mass_center_ratio 2.187644e+00 "
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "table.describe().T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "3b1d0ed1-856a-4c81-a6b3-51d32842bf4f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['label', 'original_label', 'bbox_min_x', 'bbox_min_y', 'bbox_min_z',\n",
+ " 'bbox_max_x', 'bbox_max_y', 'bbox_max_z', 'bbox_width', 'bbox_height',\n",
+ " 'bbox_depth', 'min_intensity', 'max_intensity', 'sum_intensity', 'area',\n",
+ " 'mean_intensity', 'sum_intensity_times_x', 'mass_center_x',\n",
+ " 'sum_intensity_times_y', 'mass_center_y', 'sum_intensity_times_z',\n",
+ " 'mass_center_z', 'sum_x', 'centroid_x', 'sum_y', 'centroid_y', 'sum_z',\n",
+ " 'centroid_z', 'sum_distance_to_centroid', 'mean_distance_to_centroid',\n",
+ " 'sum_distance_to_mass_center', 'mean_distance_to_mass_center',\n",
+ " 'standard_deviation_intensity', 'max_distance_to_centroid',\n",
+ " 'max_distance_to_mass_center', 'mean_max_distance_to_centroid_ratio',\n",
+ " 'mean_max_distance_to_mass_center_ratio'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "table.keys()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "ebc0f675-1ff9-4b75-ba0c-ef04f4fee037",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The last object had the label 4\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"The last object had the label\", \n",
+ " statistics[\"label\"][-1]\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "f59becfa-9f07-43df-bbdf-81cb6bc55656",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The last object had the label 4\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"The last object had the label\", \n",
+ " table[\"label\"].tolist()[-1]\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "3e75337a-1e8c-4690-888e-80b561bb0095",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The objects had area measurements of [600.0, 300.0, 300.0, 400.0]\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"The objects had area measurements of\",\n",
+ " table[\"area\"].tolist()\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "7cfab847-375d-4b0a-adcc-d1d02d0741fa",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The average area of all objects was 400.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"The average area of all objects was\",\n",
+ " np.mean(table[\"area\"].tolist())\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "764d0d7f-3470-439d-bfe3-2f5c3a2e2196",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a7919109-06ec-4f89-82a6-d2019672bedd",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2192eb02-59ad-4443-8728-0d3ccbdf7aa9",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "3b64afb6-a9d3-4d8e-9f6d-0d678504623c",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b6193d45-54bd-4133-b85b-f5ec8ddcf7d9",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9a2c880f-a564-4eb9-9ade-bfce72b93f97",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\n",
+ "\n",
+ "\n",
+ "'original_label', 'bbox_min_x', 'bbox_min_y', 'bbox_min_z',\n",
+ " 'bbox_max_x', 'bbox_max_y', 'bbox_max_z', 'bbox_width', 'bbox_height',\n",
+ " 'bbox_depth', 'min_intensity', 'max_intensity', 'sum_intensity', 'area',\n",
+ " 'mean_intensity', 'sum_intensity_times_x', 'mass_center_x',\n",
+ " 'sum_intensity_times_y', 'mass_center_y', 'sum_intensity_times_z',\n",
+ " 'mass_center_z', 'sum_x', 'centroid_x', 'sum_y', 'centroid_y', 'sum_z',\n",
+ " 'centroid_z', 'sum_distance_to_centroid', 'mean_distance_to_centroid',\n",
+ " 'sum_distance_to_mass_center', 'mean_distance_to_mass_center',\n",
+ " 'standard_deviation_intensity', 'max_distance_to_centroid',\n",
+ " 'max_distance_to_mass_center', 'mean_max_distance_to_centroid_ratio',\n",
+ " 'mean_max_distance_to_mass_center_ratio'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b1b99125-bc12-49b0-94b9-704283d9f0c4",
+ "metadata": {},
+ "source": [
+ "The column `original_label` can be used for debugging. If the label image was subsequently labeled, this column will be identical with `label`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "9c6475e6-6728-48ce-8065-c21f7d64e020",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[1 2 3 4 5 6]\n",
+ "[1 2 3 4 5 6]\n"
+ ]
+ }
+ ],
+ "source": [
+ "test_label_image = cle.asarray([\n",
+ " [0, 1, 5, 6]\n",
+ "])\n",
+ "\n",
+ "test_stats = cle.statistics_of_labelled_pixels(label_image=test_label_image)\n",
+ "\n",
+ "print(test_stats[\"label\"])\n",
+ "print(test_stats[\"original_label\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9f075215-e5a1-45f4-b914-74258a611216",
+ "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.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/pyclesperanto_prototype/_tier9/_statistics_of_background_and_labelled_pixels.py b/pyclesperanto_prototype/_tier9/_statistics_of_background_and_labelled_pixels.py
index 2a8af2dc..9ff10c6b 100644
--- a/pyclesperanto_prototype/_tier9/_statistics_of_background_and_labelled_pixels.py
+++ b/pyclesperanto_prototype/_tier9/_statistics_of_background_and_labelled_pixels.py
@@ -1,5 +1,3 @@
-from skimage.measure import regionprops
-
from .._tier0 import Image
from .._tier0 import create_none
from .._tier0 import plugin_function
@@ -44,7 +42,8 @@ def statistics_of_background_and_labelled_pixels(source : Image = None, labelmap
for r in regionprops:
r.original_label = r.label - 1
- return regionprops
-
+ # see https://github.com/clEsperanto/pyclesperanto_prototype/issues/199
+ regionprops['label'] = regionprops['original_label']
+ return regionprops
diff --git a/pyclesperanto_prototype/_tier9/_statistics_of_labelled_pixels.py b/pyclesperanto_prototype/_tier9/_statistics_of_labelled_pixels.py
index 973366f5..b0b8c6e5 100644
--- a/pyclesperanto_prototype/_tier9/_statistics_of_labelled_pixels.py
+++ b/pyclesperanto_prototype/_tier9/_statistics_of_labelled_pixels.py
@@ -1,3 +1,4 @@
+import warnings
from warnings import warn
from .._tier0 import Image
@@ -290,4 +291,28 @@ def statistics_of_labelled_pixels(intensity_image : Image = None, label_image :
region_props['mean_max_distance_to_mass_center_ratio'] = region_props['max_distance_to_mass_center'] / region_props[
'mean_distance_to_mass_center']
+ # determine which labels were actually present in the label image
+ min_intensity = region_props['min_intensity']
+ max_intensity = region_props['max_intensity']
+ mask = min_intensity <= max_intensity
+
+ # remove the other labels from the measurements
+ for key in region_props.keys():
+ region_props[key] = region_props[key][mask]
+
+ region_props = MyDict(region_props)
+
return region_props
+
+# source: https://stackoverflow.com/questions/54095279/how-to-make-a-dict-key-deprecated
+class MyDict(dict):
+ old_keys_to_new_keys = {'area': 'pixel_count'}
+ old_keys_to_new_keys = {'original_label': 'label'}
+
+ def __getitem__(self, key):
+ if key in self.old_keys_to_new_keys:
+ msg = 'The key `{}` in statistics_of_labelled_pixels is deprecated. Use `{}` instead.'.format(key, self.old_keys_to_new_keys[key])
+ warnings.warn(msg, FutureWarning)
+ return super().__getitem__(key)
+
+