|
31 | 31 | }, |
32 | 32 | { |
33 | 33 | "cell_type": "code", |
34 | | - "execution_count": 2, |
| 34 | + "execution_count": 3, |
35 | 35 | "metadata": {}, |
36 | 36 | "outputs": [], |
37 | 37 | "source": [ |
|
45 | 45 | }, |
46 | 46 | { |
47 | 47 | "cell_type": "code", |
48 | | - "execution_count": 3, |
| 48 | + "execution_count": 4, |
49 | 49 | "metadata": { |
50 | | - "scrolled": true |
| 50 | + "scrolled": false |
51 | 51 | }, |
52 | 52 | "outputs": [ |
53 | 53 | { |
54 | 54 | "data": { |
55 | 55 | "application/vnd.jupyter.widget-view+json": { |
56 | | - "model_id": "65c6b074eac64e7e9a26d65104a9d6ba", |
| 56 | + "model_id": "c46a472354864866871a66c73d09b99f", |
57 | 57 | "version_major": 2, |
58 | 58 | "version_minor": 0 |
59 | 59 | }, |
|
73 | 73 | }, |
74 | 74 | { |
75 | 75 | "cell_type": "code", |
76 | | - "execution_count": 10, |
77 | | - "metadata": {}, |
78 | | - "outputs": [], |
79 | | - "source": [ |
80 | | - "LabelImageType = itk.Image[itk.UL, 3]\n", |
81 | | - "connected_components = itk.connected_component_image_filter(thresholded, ttype=(type(thresholded), LabelImageType))" |
82 | | - ] |
83 | | - }, |
84 | | - { |
85 | | - "cell_type": "code", |
86 | | - "execution_count": 8, |
| 76 | + "execution_count": 7, |
87 | 77 | "metadata": {}, |
88 | 78 | "outputs": [], |
89 | 79 | "source": [ |
|
99 | 89 | }, |
100 | 90 | { |
101 | 91 | "cell_type": "code", |
102 | | - "execution_count": 11, |
| 92 | + "execution_count": 8, |
103 | 93 | "metadata": {}, |
104 | 94 | "outputs": [ |
105 | 95 | { |
106 | | - "ename": "TemplateTypeError", |
107 | | - "evalue": "itk.ExtractImageFilter is not wrapped for input type `None`.\n\nTo limit the size of the package, only a limited number of\ntypes are available in ITK Python. To print the supported\ntypes, run the following command in your python environment:\n\n itk.ExtractImageFilter.GetTypes()\n\nPossible solutions:\n* If you are an application user:\n** Convert your input image into a supported format (see below).\n** Contact developer to report the issue.\n* If you are an application developer, force input images to be\nloaded in a supported pixel type.\n\n e.g.: instance = itk.ExtractImageFilter[itk.Image[itk.RGBPixel[itk.UC],2], itk.Image[itk.RGBPixel[itk.UC],2]].New(my_input)\n\n* (Advanced) If you are an application developer, build ITK Python yourself and\nturned to `ON` the corresponding CMake option to wrap the pixel type or image\ndimension you need. When configuring ITK with CMake, you can set\n`ITK_WRAP_${type}` (replace ${type} with appropriate pixel type such as\n`double`). If you need to support images with 4 or 5 dimensions, you can add\nthese dimensions to the list of dimensions in the CMake variable\n`ITK_WRAP_IMAGE_DIMS`.\n\nSupported input types:\n\nitk.Image[itk.RGBPixel[itk.UC],2]\nitk.Image[itk.RGBPixel[itk.UC],3]\nitk.Image[itk.RGBAPixel[itk.UC],2]\nitk.Image[itk.RGBAPixel[itk.UC],3]\nitk.Image[itk.Vector[itk.F,2],2]\nitk.Image[itk.Vector[itk.F,2],3]\nitk.Image[itk.Vector[itk.F,3],2]\nitk.Image[itk.Vector[itk.F,3],3]\nitk.Image[itk.Vector[itk.F,4],2]\nitk.Image[itk.Vector[itk.F,4],3]\nitk.Image[itk.CovariantVector[itk.F,2],2]\nitk.Image[itk.CovariantVector[itk.F,2],3]\nitk.Image[itk.CovariantVector[itk.F,3],2]\nitk.Image[itk.CovariantVector[itk.F,3],3]\nitk.Image[itk.CovariantVector[itk.F,4],2]\nitk.Image[itk.CovariantVector[itk.F,4],3]\nitk.Image[itk.SS,2]\nitk.Image[itk.SS,3]\nitk.Image[itk.UC,2]\nitk.Image[itk.UC,3]\nitk.Image[itk.US,2]\nitk.Image[itk.US,3]\nitk.Image[itk.F,2]\nitk.Image[itk.F,3]\nitk.Image[itk.D,2]\nitk.Image[itk.D,3]\nitk.Image[itk.complex[itk.F],2]\nitk.Image[itk.complex[itk.F],3]\nitk.Image[itk.SS,3]\nitk.Image[itk.UC,3]\nitk.Image[itk.US,3]\nitk.Image[itk.F,3]\nitk.Image[itk.D,3]\nitk.Image[itk.RGBPixel[itk.UC],3]\nitk.Image[itk.complex[itk.F],3]\n", |
108 | | - "output_type": "error", |
109 | | - "traceback": [ |
110 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
111 | | - "\u001b[0;31mTemplateTypeError\u001b[0m Traceback (most recent call last)", |
112 | | - "\u001b[0;32m<ipython-input-11-6e811847302e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mview\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel_image\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconnected_components\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
113 | | - "\u001b[0;32m~/src/itkwidgets/itkwidgets/widget_viewer.py\u001b[0m in \u001b[0;36mview\u001b[0;34m(image, label_image, label_image_names, label_image_weights, label_image_blend, cmap, lut, select_roi, interpolation, gradient_opacity, opacity_gaussians, channels, slicing_planes, shadow, blend_mode, point_sets, point_set_colors, point_set_opacities, point_set_representations, point_set_sizes, geometries, geometry_colors, geometry_opacities, ui_collapsed, rotate, annotations, mode, **kwargs)\u001b[0m\n\u001b[1;32m 1076\u001b[0m \u001b[0mgeometries\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mgeometries\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgeometry_colors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mgeometry_colors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgeometry_opacities\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mgeometry_opacities\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1077\u001b[0m \u001b[0mrotate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrotate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mui_collapsed\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mui_collapsed\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mannotations\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mannotations\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1078\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 1079\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mviewer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
114 | | - "\u001b[0;32m~/src/itkwidgets/itkwidgets/widget_viewer.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 404\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msize\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize_limit_3d\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 405\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_downsampling\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 406\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_rendered_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 407\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_downsampling\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobserve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_on_roi_changed\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'roi'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
115 | | - "\u001b[0;32m~/src/itkwidgets/itkwidgets/widget_viewer.py\u001b[0m in \u001b[0;36m_update_rendered_image\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 487\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshrinker\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSetShrinkFactors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscale_factors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mdimension\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 489\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image_extractor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mitk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mExtractImageFilter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNew\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 490\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image_shrinker\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mitk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mShrinkImageFilter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNew\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image_extractor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 491\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_image_shrinker\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSetShrinkFactors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscale_factors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mdimension\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
116 | | - "\u001b[0;32m~/bin/miniconda3/envs/itkwidgets/lib/python3.7/site-packages/itkTemplate.py\u001b[0m in \u001b[0;36mNew\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 522\u001b[0m or via one of the following keyword arguments: %s\"\"\" % \", \".join(primary_input_methods))\n\u001b[1;32m 523\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 524\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mTemplateTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 525\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNew\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
117 | | - "\u001b[0;31mTemplateTypeError\u001b[0m: itk.ExtractImageFilter is not wrapped for input type `None`.\n\nTo limit the size of the package, only a limited number of\ntypes are available in ITK Python. To print the supported\ntypes, run the following command in your python environment:\n\n itk.ExtractImageFilter.GetTypes()\n\nPossible solutions:\n* If you are an application user:\n** Convert your input image into a supported format (see below).\n** Contact developer to report the issue.\n* If you are an application developer, force input images to be\nloaded in a supported pixel type.\n\n e.g.: instance = itk.ExtractImageFilter[itk.Image[itk.RGBPixel[itk.UC],2], itk.Image[itk.RGBPixel[itk.UC],2]].New(my_input)\n\n* (Advanced) If you are an application developer, build ITK Python yourself and\nturned to `ON` the corresponding CMake option to wrap the pixel type or image\ndimension you need. When configuring ITK with CMake, you can set\n`ITK_WRAP_${type}` (replace ${type} with appropriate pixel type such as\n`double`). If you need to support images with 4 or 5 dimensions, you can add\nthese dimensions to the list of dimensions in the CMake variable\n`ITK_WRAP_IMAGE_DIMS`.\n\nSupported input types:\n\nitk.Image[itk.RGBPixel[itk.UC],2]\nitk.Image[itk.RGBPixel[itk.UC],3]\nitk.Image[itk.RGBAPixel[itk.UC],2]\nitk.Image[itk.RGBAPixel[itk.UC],3]\nitk.Image[itk.Vector[itk.F,2],2]\nitk.Image[itk.Vector[itk.F,2],3]\nitk.Image[itk.Vector[itk.F,3],2]\nitk.Image[itk.Vector[itk.F,3],3]\nitk.Image[itk.Vector[itk.F,4],2]\nitk.Image[itk.Vector[itk.F,4],3]\nitk.Image[itk.CovariantVector[itk.F,2],2]\nitk.Image[itk.CovariantVector[itk.F,2],3]\nitk.Image[itk.CovariantVector[itk.F,3],2]\nitk.Image[itk.CovariantVector[itk.F,3],3]\nitk.Image[itk.CovariantVector[itk.F,4],2]\nitk.Image[itk.CovariantVector[itk.F,4],3]\nitk.Image[itk.SS,2]\nitk.Image[itk.SS,3]\nitk.Image[itk.UC,2]\nitk.Image[itk.UC,3]\nitk.Image[itk.US,2]\nitk.Image[itk.US,3]\nitk.Image[itk.F,2]\nitk.Image[itk.F,3]\nitk.Image[itk.D,2]\nitk.Image[itk.D,3]\nitk.Image[itk.complex[itk.F],2]\nitk.Image[itk.complex[itk.F],3]\nitk.Image[itk.SS,3]\nitk.Image[itk.UC,3]\nitk.Image[itk.US,3]\nitk.Image[itk.F,3]\nitk.Image[itk.D,3]\nitk.Image[itk.RGBPixel[itk.UC],3]\nitk.Image[itk.complex[itk.F],3]\n" |
118 | | - ] |
| 96 | + "data": { |
| 97 | + "application/vnd.jupyter.widget-view+json": { |
| 98 | + "model_id": "4960333a0feb4b25825d9b62ad0ea607", |
| 99 | + "version_major": 2, |
| 100 | + "version_minor": 0 |
| 101 | + }, |
| 102 | + "text/plain": [ |
| 103 | + "Viewer(geometries=[], gradient_opacity=0.22, interpolation=False, point_sets=[], rendered_label_image=<itk.itk…" |
| 104 | + ] |
| 105 | + }, |
| 106 | + "metadata": {}, |
| 107 | + "output_type": "display_data" |
119 | 108 | } |
120 | 109 | ], |
121 | 110 | "source": [ |
|
124 | 113 | }, |
125 | 114 | { |
126 | 115 | "cell_type": "code", |
127 | | - "execution_count": null, |
| 116 | + "execution_count": 9, |
128 | 117 | "metadata": { |
129 | | - "scrolled": true |
| 118 | + "scrolled": false |
130 | 119 | }, |
131 | | - "outputs": [], |
| 120 | + "outputs": [ |
| 121 | + { |
| 122 | + "data": { |
| 123 | + "application/vnd.jupyter.widget-view+json": { |
| 124 | + "model_id": "e8ab46d59acd41438530b6ce34b42cdd", |
| 125 | + "version_major": 2, |
| 126 | + "version_minor": 0 |
| 127 | + }, |
| 128 | + "text/plain": [ |
| 129 | + "Viewer(geometries=[], gradient_opacity=0.5, interpolation=False, label_image_blend=0.8, label_image_names=[(0,…" |
| 130 | + ] |
| 131 | + }, |
| 132 | + "metadata": {}, |
| 133 | + "output_type": "display_data" |
| 134 | + } |
| 135 | + ], |
132 | 136 | "source": [ |
133 | 137 | "# We can combine the label map with the intensity image, add names for the labels, etc.\n", |
134 | 138 | "names = [(0, 'Background'), (1, 'First cell'), (2, 'Second cell')]\n", |
|
152 | 156 | }, |
153 | 157 | { |
154 | 158 | "cell_type": "code", |
155 | | - "execution_count": null, |
| 159 | + "execution_count": 10, |
156 | 160 | "metadata": {}, |
157 | 161 | "outputs": [], |
158 | 162 | "source": [ |
|
172 | 176 | }, |
173 | 177 | { |
174 | 178 | "cell_type": "code", |
175 | | - "execution_count": null, |
| 179 | + "execution_count": 11, |
176 | 180 | "metadata": {}, |
177 | | - "outputs": [], |
| 181 | + "outputs": [ |
| 182 | + { |
| 183 | + "data": { |
| 184 | + "application/vnd.jupyter.widget-view+json": { |
| 185 | + "model_id": "505009ada82e40249b35243fbe7d2bb5", |
| 186 | + "version_major": 2, |
| 187 | + "version_minor": 0 |
| 188 | + }, |
| 189 | + "text/plain": [ |
| 190 | + "Viewer(annotations=False, cmap=['BrBG'], geometries=[], gradient_opacity=0.22, point_sets=[], rendered_image=<…" |
| 191 | + ] |
| 192 | + }, |
| 193 | + "metadata": {}, |
| 194 | + "output_type": "display_data" |
| 195 | + } |
| 196 | + ], |
178 | 197 | "source": [ |
179 | 198 | "image = skimage.io.imread(file_name)\n", |
180 | 199 | "\n", |
|
183 | 202 | }, |
184 | 203 | { |
185 | 204 | "cell_type": "code", |
186 | | - "execution_count": null, |
| 205 | + "execution_count": 12, |
187 | 206 | "metadata": {}, |
188 | 207 | "outputs": [], |
189 | 208 | "source": [ |
|
198 | 217 | }, |
199 | 218 | { |
200 | 219 | "cell_type": "code", |
201 | | - "execution_count": null, |
| 220 | + "execution_count": 13, |
202 | 221 | "metadata": {}, |
203 | | - "outputs": [], |
| 222 | + "outputs": [ |
| 223 | + { |
| 224 | + "data": { |
| 225 | + "application/vnd.jupyter.widget-view+json": { |
| 226 | + "model_id": "58576171783c44ceae961c0a6682201b", |
| 227 | + "version_major": 2, |
| 228 | + "version_minor": 0 |
| 229 | + }, |
| 230 | + "text/plain": [ |
| 231 | + "Viewer(geometries=[], gradient_opacity=0.22, interpolation=False, point_sets=[], rendered_label_image=<itk.itk…" |
| 232 | + ] |
| 233 | + }, |
| 234 | + "metadata": {}, |
| 235 | + "output_type": "display_data" |
| 236 | + } |
| 237 | + ], |
204 | 238 | "source": [ |
205 | 239 | "view(label_image=connected_components)" |
206 | 240 | ] |
|
0 commit comments