{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Elastix\n", "\n", "This notebooks show very basic image registration examples with on-the-fly generated binary images." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from itk import itkElastixRegistrationMethodPython\n", "from itk import itkTransformixFilterPython\n", "import itk\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Image generators" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def image_generator(x1, x2, y1, y2, mask=False, artefact=False):\n", " if mask:\n", " image = np.zeros([100, 100], np.uint8)\n", " else:\n", " image = np.zeros([100, 100], np.float32)\n", " image[y1:y2, x1:x2] = 1\n", " if artefact:\n", " image[-10:, :] = 1\n", " image = itk.image_view_from_array(image)\n", " return image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Masked Registration Test" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Create rigid transformed test images with artefact\n", "fixed_image = image_generator(25, 75, 25, 75, artefact=True)\n", "moving_image = image_generator(1, 51, 10, 60, artefact=True)\n", "\n", "# Create mask for artefact\n", "fixed_mask = image_generator(0, 100, 0, 90, mask=True)\n", "moving_mask = image_generator(0, 100, 0, 90, mask=True)\n", "\n", "# Import Default Parameter Map\n", "parameter_object = itk.ParameterObject.New()\n", "default_rigid_parameter_map = parameter_object.GetDefaultParameterMap('rigid')\n", "parameter_object.AddParameterMap(default_rigid_parameter_map)\n", "\n", "# Call registration function\n", "result_image, result_transform_parameters = itk.elastix_registration_method(\n", " fixed_image, moving_image,\n", " fixed_mask=fixed_mask,\n", " moving_mask=moving_mask,\n", " parameter_object=parameter_object)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Masked Registration Test Visualization" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Plot images\n", "fig, axs = plt.subplots(1,5, sharey=True, figsize=[30,30])\n", "plt.figsize=[100,100]\n", "axs[0].imshow(fixed_mask)\n", "axs[0].set_title('Fixed Mask', fontsize=30)\n", "axs[1].imshow(moving_mask)\n", "axs[1].set_title('Moving Mask', fontsize=30)\n", "axs[2].imshow(fixed_image)\n", "axs[2].set_title('Fixed', fontsize=30)\n", "axs[3].imshow(moving_image)\n", "axs[3].set_title('Moving', fontsize=30)\n", "axs[4].imshow(result_image)\n", "axs[4].set_title('Result', fontsize=30)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "ITKTestEnvDebug", "language": "python", "name": "itktestenvdebug" }, "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.7.9" } }, "nbformat": 4, "nbformat_minor": 4 }