{ "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": [ "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": 2, "metadata": {}, "outputs": [], "source": [ "def image_generator(x1, x2, y1, y2):\n", " image = np.zeros([100, 100], np.float32)\n", " image[y1:y2, x1:x2] = 1\n", " image = itk.image_view_from_array(image)\n", " return image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Point set transformation test\n", "See example 10 for more explanation" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def point_set_from_txt(file_path):\n", " image = np.zeros([100, 100], np.float32)\n", " with open(file_path, \"rt\") as myfile: \n", " for myline in myfile: \n", " string = myline.partition('OutputIndexMoving =')[2]\n", " string=string.strip()\n", " string = string.strip('[]')\n", " string=string.strip()\n", " y,x = string.split()\n", " image[int(x),int(y)] = 1\n", " return image\n", "\n", "def point_set_from_input(x,y):\n", " image = np.zeros([100, 100], np.float32)\n", " for i in range(len(x)):\n", " image[x[i],y[i]]=1\n", " return image" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Create rigid transformed test images with artefact\n", "fixed_image = image_generator(25, 76, 25, 76)\n", "moving_image = image_generator(1, 52, 10, 61)\n", "\n", "# Create fixed point set\n", "fixed_point_set = open(\"data/fixed_point_set_test.txt\", \"w+\")\n", "fixed_point_set.write(\"point\\n5\\n\")\n", "fixed_point_set.write(\"25 25\\n\")\n", "fixed_point_set.write(\"25 75\\n\")\n", "fixed_point_set.write(\"75 75\\n\")\n", "fixed_point_set.write(\"75 25\\n\")\n", "fixed_point_set.write(\"50 50\")\n", "fixed_point_set.close()\n", "\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", " parameter_object=parameter_object)\n", "\n", "# Call transformix\n", "empty_image = itk.transformix_filter(\n", " moving_image=moving_image,\n", " fixed_point_set_file_name='data/fixed_point_set_test.txt',\n", " transform_parameter_object=result_transform_parameters,\n", " output_directory='exampleoutput_unittests')\n", "\n", "result_point_set = point_set_from_txt('exampleoutput_unittests/outputpoints.txt')\n", "fixed_point_set = point_set_from_input([25,25,75,75,50],[25,75,75,25,50])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Point set transformation test Visualization" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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AAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBFYAIAAAAAAKBl3cBUVTeqqtdW1bur6l1V9Yjp/mtW1auq6n3T92vs/eECAAAAAACw3TZyBNOVSR4zxrhVkjsk+Z9Vdaskj0ty3hjj2CTnTbcBAAAAAADYz60bmMYYHx9jvG1a/mKSi5LcMMl9kpw1bXZWkhP30hgBAAAAAADYh7SuwVRVxyS5XZILkhw1xvj4tOoTSY5a7NAAAAAAAADYF204MFXVVZP8TZJHjjG+ML9ujDGSjFUe97CqurCqLrwil21qsAAAAOzfzCEBAGBn2FBgqqqDM4tLzx9jvGi6+5NVdf1p/fWTfGqlx44xTh9jHDfGOO7gHLqIMQMAALCfMocEAICdYd3AVFWV5IwkF40xnjK36iVJTpmWT0ny4sUPDwAAAAAAgH3Nrg1sc6ckP5nkHVX1z9N9v5rkiUleWFUPTfKhJPffKyMEAAAAAABgn7JuYBpjvD5JrbL6hMUOBwAAAAAAgH3dhq7BBAAAAAAAAEsEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFoEJgAAAAAAAFp2bfcAYH/y9x/75+0eAgB72d1vcNvtHgIAsJ9Ybw55s7N/dmsGAsAee/9Jz15zvTkk+zNHMAEAAAAAANAiMAEAAAAAANAiMAEAAAAAANAiMAEAAAAAANAiMAEAAAAAANAiMAEAAAAAANAiMAEAAAAAANCya7sHAAAAAHAgutnZP7vdQwBgk9b7XX7zvGmLRgJbzxFMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAAtAhMAAAAAAAA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8tok95u2OSXJi/fOEAEAAAAAANiXbOQaTBckOSfJ25K8Y3rM6Ul+Jcmjq+riJNdKcsZeHCcAAAAAAAD7iF3rb5KMMU5Lctqyuz+Q5PYLHxEAAAAAAAD7tI2cIg8AAAAAAAC+TmACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgRWACAAAAAACgpcYYW/dkVZ9O8qG5u66d5DNbNgD2d95PLJL3E4vk/cSieU+xGd82xrjOdg8CNsIckr3M+4lF8n5ikbyfWDTvKTZj1Tnklgamb3ryqgvHGMdt2wDYr3g/sUjeTyyS9xOL5j0FHKj8/mORvJ9YJO8nFsn7iUXznmJvcYo8AAAAAAAAWgQmAAAAAAAAWrY7MJ2+zc/P/sX7iUXyfmKRvJ9YNO8p4EDl9x+L5P3EInk/sUjeTyya9xR7xbZegwkAAAAAAICdZ7uPYAIAAAAAAGCH2ZbAVFU/WlX/WlUXV9XjtmMM7FxVdaOqem1Vvbuq3lVVj5juv2ZVvaqq3jd9v8Z2j5Wdo6oOqqq3V9XLpts3qaoLpt9TZ1fVIds9RnaOqjqyqs6pqvdU1UVVdUe/o9hTVfWo6f9376yqF1TVYX5HAQcac0g2wxySvcEckkUyh2SRzCHZSlsemKrqoCTPTHKPJLdK8oCqutVWj4Md7cokjxlj3CrJHZL8z+k99Lgk540xjk1y3nQbNuoRSS6au/37SZ46xrh5ks8leei2jIqd6ulJ/m6Mccskt8nsveV3FG1VdcMkv5jkuDHGdyU5KMnJ8TsKOICYQ7IA5pDs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dZ/Ix/Kp/mStexywGeaQAACwXvc0h9y3hdd9TJKbuvvmJKmqVyR5cpIjBqZTc3q+oi7cwlsCAABbcV1fs+4hwKaZQwIAwHrd0xzyc7bwumcled+G7VuW9wEAAAAAAHAc28oZTJtSVRcnuThJTs1p2/12AAAA7GHmkAAAsDds5QymW5M8eMP22cv7Pkt3X9rd+7t7/8m51xbeDgAAgOOdOSQAAOwNWwlMb05yXlWdU1WnJHlGkteuZlgAAAAAAADsVse8RF5331VVP5jk95OclOTXuvsdKxsZAAAAAAAAu9KWrsHU3b+X5PdWNBYAAAAAAAD2gK0skQcAAAAAAMAJSGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgRGACAAAAAABgZN+6B3DA7/+/t697CABssyd84aPXPQQA4DhxtDnkuVc9Z2cGAsAxe+fTX36Pj5tDAuxuzmACAAAAAABgRGACAAAAAABg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BAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwIjABAAAAAAAwMi+zexUVfdNclmSRybpJP88yV8muSrJQ5K8O8nTuvuO7RgkAAAAbPTOp7/8Hh8/96rn7NBIADhWR/ssf8KPPnpnBgLAMdnsGUwvS/L67n54kkcluTHJC5Jc093nJblmuQ0AAAAAAMBx7qiBqao+L8nXJrk8Sbr7U9394SRPTnLFcrcrkjxle4YIAAAAAADAbrKZM5jOSXJ7kl+vqrdV1WVVdXqSM7r7tuU+709yxnYNEgAAAAAAgN1jM4FpX5IvTfKr3X1+ko/lkOXwuruzuDbT3VTVxVV1fVVdf2c+udXxAgAAcBwzhwQAgL1hM4HpliS3dPd1y+2rswhOH6iqM5Nk+fsHD/fk7r60u/d39/6Tc69VjBkAAIDjlDkkAADsDUcNTN39/iTvq6qHLe+6MMkNSV6b5KLlfRclec22jBAAAAAAAIBdZd8m9/uhJFdW1SlJbk7yvVnEqVdW1bOSvCfJ07ZniAAAAAAAAOwmtbh80s64T92/v6Iu3LH3AwAAPtt1fU3+rj9U6x4HbIY5JAAArNc9zSE3cw0mAAAAAAAA+AyBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgBGBCQAAAAAAgJFNBaaq+tGqekdV/UVV/VZVnVpV51TVdVV1U1VdVVWnbPdgAQAAAAAAWL+jBqaqOivJDyfZ392PTHJSkmckeUmSX+ruhya5I8mztnOgAAAAAAAA7A6bXSJvX5J7V9W+JKcluS3J45JcvXz8iiRPWfnoAAAAAAAA2HWOGpi6+9YkP5/kvVmEpb9N8pYkH+7uu5a73ZLkrO0aJAAAAAAAALvHZpbIu1+SJyc5J8kXJjk9yRM3+wZVdXFVXV9V19+ZTx7zQAEAADj+mUMCAMDesJkl8h6f5F3dfXt335nk1Ukem+S+yyXzkuTsJLce7sndfWl37+/u/SfnXisZNAAAAMcnc0gAANgbNhOY3pvkgqo6raoqyYVJbkhybZKnLve5KMlrtmeIAAAAAAAA7CabuQbTdUmuTvLWJH++fM6lSZ6f5HlVdVOSByS5fBvHCQAAAAAAwC6x7+i7JN394iQvPuTum5M8ZuUjAgAAAAAAYFfbzBJ5AAAAAAAA8BkCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACMCEwAAAAAAACPV3Tv3ZlW3J3nPhrsemOSvd2wAHO8cT6yS44lVcjyxao4ptuKLu/vz1z0I2AxzSLaZ44lVcjyxSo4nVs0xxVYccQ65o4Hpbm9edX1371/bADiuOJ5YJccTq+R4YtUcU8CJyucfq+R4YpUcT6yS44lVc0yxXSyRBwAAAAAAwIjABAAAAAAAwMi6A9Ola35/ji+OJ1bJ8cQqOZ5YNccUcKLy+ccqOZ5YJccTq+R4YtUcU2yLtV6DCQAAAAAAgL1n3WcwAQAAAAAAsMesJTBV1ROr6i+r6qaqesE6xsDeVVUPrqprq+qGqnpHVV2yvP/+VfWGqvqr5e/3W/dY2Tuq6qSqeltV/c5y+5yqum75OXVVVZ2y7jGyd1TVfavq6qr6P1V1Y1V9pc8ojlVV/ejy77u/qKrfqqpTfUYBJxpzSLbCHJLtYA7JKplDskrmkOykHQ9MVXVSkv+Q5J8meUSS76yqR+z0ONjT7kryY939iCQXJHnu8hh6QZJruvu8JNcst2GzLkly44btlyT5pe5+aJI7kjxrLaNir3pZktd398OTPCqLY8tnFGNVdVaSH06yv7sfmeSkJM+IzyjgBGIOyQqYQ7IdzCFZJXNIVsIckp22jjOYHpPkpu6+ubs/leQVSZ68hnGwR3X3bd391uXtj2Txl+5ZWRxHVyx3uyLJU9YyQPacqjo7yTcnuWy5XUkel+Tq5S6OJzatqj4vydcmuTxJuvtT3f3h+Izi2O1Lcu+q2pfktCS3xWcUcGIxh2RLzCFZNXNIVskckm1gDsmOWUdgOivJ+zZs37K8D8aq6iFJzk9yXZIzuvu25UPvT3LGusbFnvPSJD+R5NPL7Qck+XB337Xc9jnFxDlJbk/y68slMy6rqtPjM4pj0N23Jvn5JO/NYlLwt0neEp9RwInFHJKVMYdkRV4ac0hWxxySlTGHZKet5RpMsApV9blJXpXkR7r77zY+1t2dpNcyMPaUqnpSkg9291vWPRaOG/uSfGmSX+3u85N8LIcsZeAzis1arrP+5CwmnV+Y5PQkT1zroABgjzKHZBXMIdkG5pCsjDkkO20dgenWJA/esH328j7YtKo6OYuJwZXd/erl3R+oqjOXj5+Z5IPrGh97ymOTfGtVvTuL5VYel8Xax/ddnkqc+Jxi5pYkt3T3dcvtq7OYLPiM4lg8Psm7uvv27r4zyauz+NzyGQWcSMwh2TJzSFbIHJJVM4dklcwh2VHrCExvTnJeVZ1TVadkcZGx165hHOxRy7WNL09yY3f/4oaHXpvkouXti5K8ZqfHxt7T3S/s7rO7+yFZfB79YXd/d5Jrkzx1uZvjiU3r7vcneV9VPWx514VJbojPKI7Ne5NcUFWnLf/+O3A8+YwCTiTmkGyJOSSrZA7JqplDsmLmkOyoWpxhucNvWvVNWaxXe1KSX+vuf7vjg2DPqqqvTvInSf48B9c7flEWa2i/MskXJXlPkqd194fWMkj2pKr6uiQ/3t1Pqqp/lMW30e6f5G1Jntndn1zj8NhDqurRWVzw95QkNyf53iy+1OEzirGq+ldJnp7kriw+j56dxXrZPqOAE4Y5JFthDsl2MYdkVcwhWSVzSHbSWgITAAAAAAAAe9c6lsgDAAAAAABgDxOYAAAAAAAAGBGYAAAAAAAAGBGYAAAAAAAAGBGYAAAAAAAAGBGYAAAAAAAAGBGYAAAAAAAAGBGYAAAAAAAAGPn/4M62OYoDSM0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Plot images\n", "fig, axs = plt.subplots(2,2, sharey=True, figsize=[30,30])\n", "plt.figsize=[100,100]\n", "axs[0,0].imshow(fixed_image)\n", "axs[0,0].set_title('Fixed', fontsize=30)\n", "axs[0,1].imshow(fixed_point_set+fixed_image)\n", "axs[0,1].set_title('Fixed Point Set', fontsize=30)\n", "axs[1,0].imshow(moving_image)\n", "axs[1,0].set_title('Moving', fontsize=30)\n", "axs[1,1].imshow(result_point_set+moving_image)\n", "axs[1,1].set_title('Result Point Set', fontsize=30)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.8.0" } }, "nbformat": 4, "nbformat_minor": 4 }