{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 2: Kernel2D" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import torch\n", "from spectpsftoolbox.kernel2d import NGonKernel2D, FunctionalKernel2D\n", "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2D kernels work similar to 1D kernels in `spectpsftoolbox`. They can be expressed as\n", "\n", "$$f(x,y,a) = A(a,\\vec{b}) \\cdot k\\left(\\frac{x}{\\sigma(a,\\vec{b})}, \\frac{y}{\\sigma(a,\\vec{b})}\\right)$$\n", "\n", "One can define an explicit functional form for $k$, but there are also many kernels available in the library as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Functional" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "Nx0 = 255\n", "dx0 = 0.05\n", "x = y = torch.arange(-(Nx0-1)/2, (Nx0+1)/2, 1).to(device) * dx0\n", "xv, yv = torch.meshgrid(x, y, indexing='xy')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can create a functional form for the kernel $k(x,y)$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "kernel_fn = lambda xv, yv: torch.exp(-torch.abs(xv))*torch.exp(-torch.abs(yv)) * torch.sin(xv*3)**2 * torch.cos(yv*3)**2" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot a test\n", "kernel = kernel_fn(xv, yv)\n", "plt.imshow(kernel.cpu().numpy(), cmap='magma')\n", "plt.axis('off')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can define the amplitude and scaling like we did in the 1D tutorial" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/data/anaconda/envs/pytomo_install_test/lib/python3.11/site-packages/torch/functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3526.)\n", " return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\n", "/data/anaconda/envs/pytomo_install_test/lib/python3.11/site-packages/torchquad/integration/utils.py:255: UserWarning: DEPRECATION WARNING: In future versions of torchquad, an array-like object will be returned.\n", " warnings.warn(\n" ] } ], "source": [ "amplitude_fn = lambda a, bs: bs[0]*torch.exp(-bs[1]*a)\n", "sigma_fn = lambda a, bs: bs[0]*(a+0.1)\n", "amplitude_params = torch.tensor([2,0.1], device=device, dtype=torch.float32)\n", "sigma_params = torch.tensor([0.3], device=device, dtype=torch.float32)\n", "# Define the kernel\n", "kernel2D = FunctionalKernel2D(kernel_fn, amplitude_fn, sigma_fn, amplitude_params, sigma_params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's evaluate the kernel at some distances:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "a = torch.linspace(1,10,5).to(device)\n", "kernel = kernel2D(xv, yv, a, normalize=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can plot and ensure they are normalized since we used `normalize=True`:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([1.0073, 1.0005, 0.9592, 0.8743, 0.7737], device='cuda:0')\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 5, figsize=(8,2))\n", "print(kernel.sum(dim=(1,2)))\n", "for i in range(5):\n", " ax[i].imshow(kernel[i].cpu().numpy(), cmap='magma')\n", " ax[i].axis('off')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Other Kernels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are other 2D kernels availalble.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## N-gon Kernel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", " The kernel below represents the point spread function expected when SPECT data is acquired using a hexagonal collimator. It can be shown that the PSF is given by\n", "\n", "$$\\text{PSF} = \\left[\\beta \\otimes \\beta \\right] \\left[\\frac{L_b}{L_b+a}\\cdot (x,y) \\right] $$\n", "\n", "where $\\beta$ is a 2D mask that represents the shape of the bore (i.e. a hexagon for a hexagonal collimator), $\\otimes$ is the convolution operator, and $L_b$ is the length of the collimator holes. The `NGonKernel2D` class can be used to model $\\beta \\otimes \\beta$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "collimator_length = 2.405 \n", "collimator_width = 0.254 #flat side to flat side\n", "sigma_fn = lambda a, bs: (bs[0]+a) / bs[0] \n", "sigma_params = torch.tensor([collimator_length], requires_grad=True, dtype=torch.float32, device=device)\n", "# Set amplitude to 1\n", "amplitude_fn = lambda a, bs: torch.ones_like(a)\n", "amplitude_params = torch.tensor([1.], requires_grad=True, dtype=torch.float32, device=device)\n", "\n", "ngon_kernel = NGonKernel2D(\n", " N_sides = 6, # sides of polygon\n", " Nx = 255, # resolution of polygon\n", " collimator_width=collimator_width, # width of polygon\n", " amplitude_fn=amplitude_fn,\n", " sigma_fn=sigma_fn,\n", " amplitude_params=amplitude_params,\n", " sigma_params=sigma_params,\n", " rot=90\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at this kernel" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "Nx0 = 255\n", "dx0 = 0.048\n", "x = y = torch.arange(-(Nx0-1)/2, (Nx0+1)/2, 1).to(device) * dx0\n", "xv, yv = torch.meshgrid(x, y, indexing='xy')\n", "distances = torch.tensor([1,5,10,15,20,25], dtype=torch.float32, device=device)\n", "kernel = ngon_kernel(xv, yv, distances, normalize=True).cpu().detach()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000])\n" ] }, { "data": { "image/png": "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X/olAMCdd96JCy64AG984xtxyy234M1vfjOcc3jCE56w65P61a9+Nb74xS/irW99K37zN38Tn//85/GsZz0LIYT+a972trfhuuuuQ4wRN910Ez7wgQ/g537u5/DlL3+5/5qPfvSj+P7v/37cd999uOmmm/D+978fV111FX7kR34E73jHO5Zu8/LLL8fll1/+IH6Sx+ev/uqvcOWVV8I5t/T5xzzmMf2/d375l38ZL3jBC3DppZfiHe94B973vvfhhS98Ib74xS8ufe/XvvY1vOhFL8INN9yA97///Xj0ox+Nn/qpn8LrXvc6/MIv/AJe+cpX4vd+7/ewsbGB5zznObjzzjtX/jj3Aq6N5IGujTe+8Y0oyxJra2t44hOfiD/4gz84ru/j2jgzcR0kJ/s1Yj6f42/+5m/65/fYYx7zGMzn82POFPibv/kbzOfzo37/7bffjsViAQA4cuQInvjEJ+Itb3kLXvSiF+EDH/gAbrrpJjzqUY/CV7/61aXvffOb34w//dM/xZvf/Ga89a1vxWc/+1k861nPwotf/GLcddddePvb345f+7Vfw0c+8hHccMMND/KncPbj+khW+TvUox/9aFhrcfHFF+MnfuIn8KUvfel+v4fr4/Tj2kgezNrw3uNjH/sYvuu7vqv/HF87zn5cG8nJXhtjfN3Y5lSVVh2r3K9z8cUX65VXXtn/vStT6/zu7/6uAtBPf/rTR72OB1Lu573Xpmn0kY98pP6Lf/Ev+s9/9KMfVQB63XXXLX39e97zHgWgt912m6qqHjlyRPfv369PfOITNcZ41Nv5ju/4Dr366qu1bdulzz/zmc/Uhz70oUvl3ldcccWOcr3j8UBb7R75yEfq05/+9B2fv/POOxWAvv71r1dV1S984QtqrdUXvOAFx7y+a665RgHoJz7xif5z99xzj1prdTqd6le+8pX+85/+9KcVgP6H//Afjvv+7mVcGyd3bdx555360z/90/qe97xHP/axj+l//a//Vb/3e79XAeh//s//+X6/n2vj9OA6OD2vEV/5ylcUgL7hDW/Y8W/vete7FID+2Z/92VGv90//9E8VgL773e/e8W+vf/3rFYDeeeedqqr6ute9TgHohz/84aNeX9cq+9jHPnbpcf+7f/fvFIA++9nPXvr6l73sZQpgqRx9L+L6OH2/Q/3Wb/2W/uqv/qr+4R/+od566636xje+Uc8//3y9+OKL9ctf/vIxr5frY/W4Nla7NlRVf/EXf1EB6H//7/+9/xxfO858XBunZ22o8nXjaM6YiicAUNVj/vtVV12FsizxMz/zM3jnO9/5gCe7e+/x+te/Ht/5nd+JsizhnENZlvj85z+Pv/7rv97x9c9+9rOX/t4lj101w5/92Z/h8OHD+Nmf/dmjngBw++2347Of/Sxe8IIX9Peh+7juuuvw1a9+dSnxvf3223H77bc/oMd1oo51akH3bx/+8IcRQsBLX/rS+72+hz70ofie7/me/u/nn38+LrroIlx11VW49NJL+89feeWVALCjKoSOjmvj+NfGQx/6UPzmb/4mnv/85+OJT3wi/tE/+kf4kz/5E1x99dV41atedczS7w7XxpmJ62B1rxHH85x/sN//oQ99CI961KPw1Kc+9X6v77rrrltqherWxvXXX7/0dd3nj+ddxL2O62M16+Mf/+N/jFe/+tV4xjOegSc/+cn4V//qX+FDH/oQ7rrrLvzar/3acV0H18fpxbVx4mvjrW99K371V38VL3/5y/GDP/iDO/6drx1nN66N1awNvm7s7owJnra2tnDPPfcsbcK2u+KKK/CRj3wEF110EV760pfiiiuuwBVXXIF//+///XHdxs///M/jl37pl/Cc5zwHH/jAB/AXf/EX+Mu//Es89rGPxXw+3/H1F1xwwdLfq6oCgP5ru6ny3/It33LU2/z6178OAHjFK16BoiiWPn72Z38WAHD33Xcf1/0/mS644ALcc889Oz7/zW9+E0DaGAPH9xg73feMlWW54/Pd6TFdmSAdG9fGg1cUBX7kR34E99xzDz7/+c8f82u5Ns5MXAercd5550FEjus5v5vuZ3C07xcRHDx4EED6eRzPetntNru1wTWzO66PU+vxj388HvWoR+HP//zPj/l1XB+nH9fGibv55pvxkpe8BD/zMz+DG2+8cenf+Npx9uPaOHHHWhtHw9cNwN3/l5waH/zgBxFCwLXXXnvMr3vSk56EJz3pSQgh4BOf+AR+4zd+Ay972ctw8cUX40d/9EeP+b2//du/jZ/4iZ/A61//+qXP33333f3/Ax+IbpjauKd0uwsvvBAA8Au/8At43vOet+vXfPu3f/sDvu0H69GPfjTe/e53w3u/NMumG/b23d/93QCWH+O3fuu3nvL7SVwbJ0v3rs79DZTl2jgzcR2sxnQ6xSMe8Ygdgz6B9JyfTqf4tm/7tqN+/xVXXIHpdHrU73/EIx6ByWQCIP08jvWzoBPH9XHqqer9vp5wfZx+XBsn5uabb8YNN9yAF77whbjpppt2VF/wtePsx7VxYu5vbRzLuf66cUZUPH3pS1/CK17xChw4cAAveclLjut7rLV4whOegDe/+c0AgE996lMAdiajYyLS/3vngx/8IL7yla+c0P3+vu/7Phw4cAA33XTTUUsVv/3bvx2PfOQj8ZnPfAZ//+///V0/9u3bd0K3/2A897nPxebmJn7v935v6fPvfOc7cemll+IJT3gCAOAf/sN/CGst/tN/+k+n/D4S18bJWhtt2+J3fud3cOGFF+IRj3jEMb+Wa+PMw3Ww2teI5z73ubj11luXTmU5cuQIfv/3fx/PfvazdwzaH3PO4VnPehZ+//d/H0eOHOk//6UvfQkf/ehHl37pe8YznoHPfe5zuPXWW1fzQM5RXB+n/neoP//zP8fnP/95fO/3fu8xv47r4/Ti2jixtfGOd7wDN9xwA378x38cb33rW4+6seZrx9mLa2O1a2M3fN04DRVPf/VXf9X3WX7jG9/Axz72Mdx8882w1uJ973tfn2Tu5qabbsKtt96K66+/Hg9/+MOxWCzw9re/HQD63sZ9+/bhsssuw/vf/3485SlPwfnnn48LL7wQl19+OZ75zGfiHe94B77jO74Dj3nMY/DJT34SN95443GXqG23sbGBX//1X8cNN9yApz71qfjpn/5pXHzxxbj99tvxmc98Bv/xP/5HAMBb3vIWPOMZz8DTn/50/ORP/iQe9rCH4Zvf/Cb++q//Gp/61Kfw3ve+t7/OblN8PL2mf/zHf9yXHIYQ8MUvfhG/+7u/CwC45ppr+p/l6173Orzuda/D//pf/wvXXHMNgPREfdrTnoZ/+k//KQ4fPoxHPOIRePe7341bbrkFv/3bvw1rLYA06f/Vr341/s2/+TeYz+f4sR/7MRw4cAD/5//8H9x999147Wtfe0I/O9qJa+PkrI2f//mfR9u2+P7v/35ccskl+Lu/+zv8xm/8Bj796U/3P88O18aZh+vg1L9GvOIVr8B/+S//Bddffz1e97rXoaoqvPGNb8RiscCv/MqvLF3nbrf/2te+Fo973OPwzGc+E6961auwWCzwy7/8y7jwwgvx8pe/vP+6l73sZfid3/kd/OAP/iBe9apX4fGPfzzm8zn++I//GM985jPx5Cc/+YH+iM85XB+nfn089rGPxY//+I/jyiuvxGQywcc//nHceOONuOSSS/DKV75y6Tq5Pk4fro2Tszbe+9734sUvfjGuuuoqvOQlL8HHP/7xpX+/+uqr+yCBrx1nB66NU782+LpxFCd9XPlRdJP1u4+yLPWiiy7Sa665Rl//+tfrN77xjR3fs32y/m233abPfe5z9bLLLtOqqvSCCy7Qa665Rv/gD/5g6fs+8pGP6NVXX61VVSmA/qSSe++9V1/84hfrRRddpGtra/rEJz5RP/axj+k111yj11xzTf/93WT99773vUvX202Fv/nmm5c+/4d/+Id6zTXX6Pr6uq6trel3fud36pve9Kalr/nMZz6jP/zDP6wXXXSRFkWhl1xyif7AD/yA3nTTTUtfd9lll+lll112XD/T7rSs3T4++tGP7vg5jj+nmk4G+Lmf+zm95JJLtCxLfcxjHrPrBH3VNJ3/cY97nE4mE93Y2NCrr7566edwzTXX6Hd913ft+L7LLrtMr7/++h2fB6AvfelLj+tx7nVcGyd3bbztbW/Txz/+8Xr++eerc07PO+88ffrTn67/83/+z6P+HLk2Tj+ug9P3GqGqevvtt+tznvMc3b9/v66trelTnvIU/eQnP7njOo92+5/4xCf0KU95iq6tren+/fv1Oc95jt5+++07vu7ee+/Vf/7P/7k+/OEP16Io9KKLLtLrr79eP/vZz6rq8DO88cYbl77vaD/z4zm1Zy/g+jh96+NHf/RH9RGPeISur69rURR62WWX6T/5J/+kP1XoeG6f62N1uDZO7tp44QtfeNR1AUD/9m//dunr+dpx5uLaOH1rg68buxPV+xlnT0REREREREREdALOiBlPRERERERERES09zB4IiIiIiIiIiKilWDwREREREREREREK8HgiYiIiIiIiIiIVoLBExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBLueL9Q5Li/lOiUUvWn9fa5NuhMdbrXBsD1QWeu070+uDboTMW1QbQ7rg2i3R3P2mDFExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBIMnoiIiIiIiIiIaCUYPBERERERERER0UoweCIiIiIiIiIiopVg8ERERERERERERCvB4ImIiIiIiIiIiFaCwRMREREREREREa0EgyciIiIiIiIiIloJBk9ERERERERERLQSDJ6IiIiIiIiIiGglGDwREREREREREdFKMHgiIiIiIiIiIqKVYPBEREREREREREQrweCJiIiIiIiIiIhWgsETERERERERERGtBIMnIiIiIiIiIiJaCQZPRERERERERES0EgyeiIiIiIiIiIhoJRg8ERERERERERHRSjB4IiIiIiIiIiKilWDwREREREREREREK8HgiYiIiIiIiIiIVoLBExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBIMnoiIiIiIiIiIaCUYPBERERERERER0UoweCIiIiIiIiIiopVg8ERERERERERERCvB4ImIiIiIiIiIiFaCwRMREREREREREa0EgyciIiIiIiIiIloJBk9ERERERERERLQSDJ6IiIiIiIiIiGglGDwREREREREREdFKMHgiIiIiIiIiIqKVYPBEREREREREREQr4U73HSAiIiIiIiIiWi3Z5XN6yu/FuYjBExERERERERHtQV3YdKxmr5gvGUKtCoMnIiIiIiIiItpDBF3YJONKJxkFUNoFThbah04RDKBOPgZPRERERERERLQHpMCpD5vE4KjVTqMQShBzENWFUAygTiYGT0RERERERER0FhsFTjlskj5YGgVMo7BJ+4onAIiApM+lEEoYQJ1EDJ6IiIiIiIiI6Cw0DpxcDpZyi50YSBc6yc6qJ+k68HIApYjo5z1JroBSzwDqJGDwRERERERERERnkRw4icVQ3WRgJEccOXTqKpzkGMPFVXLwpDH9OQdRET4FVpoCKdUABlAnhsETEREREREREZ0l7Chwcn1l0/jPQK546oMne9RrU4R0qTG130mqfhJ1UPVQyZ+HxxBAhdU+xD2GwRMREREREdGeIMf4N1Zp0NluOXAy4gBJVU5ddVMKnuxy6HSMqifFUO3UXapGKEL+s4MiIqoH1KVLeACWAdQDwOCJiIiIiIjorHaUo+MzHhVPZzdJFUvi+sBpuEwBk5FiFDx1IZTN333/w8WHACoHToh9CBW1hVGXBo+rh6ofAiiVXDHFdXUsDJ6IiIiIiIjOSjtP8jraV4EnddFZZ2fgZEwJgYExrg+bhgDK9qGTwfD3/tp2GTC+PXxSDYhd6JT/rloiqu9D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dx3E3wdPscmnP45b67imxhg8ERERERERnRW6yhCBasgnPA6DxbFL5dNQ9RRHf4+scKIz1Lj6Kc1Z0piDoOhhTQWjKXgKUsNIrnjKwZOIgWg68REYhu3f3/yzdJkrnkbtqH3wlOeh9S2q0Y+GiDescrofDJ6IiIiIiIjOKttOeFRJFU95c627Zkm5kuQcH3JMZ4thxplIPuVRHBQREk0asi9FP+8sSL10wqPBzoH7x5p/BgwD+GPXjjoayJ+qmYZh/OkkyIaz0Y4TgyciIiIiIqKz0jCcOaVNAbLLyV3ab4a5MaazybjF1COIQ8zVTlEdjPh+sH5X+STbTnoEcNTwaXvolD63+8mPw5/Hpz+yre54MXgiIiIiIiI6q6UNOiDH2P5yY0xnq+X2u6C+P+URYlIQBT8KnnY/6fFY88+OdvJjF0JtP/1xaFdlW93xYPBERERERES0JzBcor0s5LDHYjmA8rnKaecpj7Jt1tNuutlOXdCUPrf99MfIwOlBYPBERERERERERGeJ0XwzxNGA/dSGBwAQA1FzzGqnzrjqSfMsNACpymnpFEgO5D9RDJ6IiIiIiIiI6Cyy24B9h4ju77niSXPgtMtg8eGqlqucktjPluJA/gePwRMRERERERERnYW2DdhfOuHR5KjI9JnR0YaLY2nWE0+APNkYPBERERERERHRWWw5gBLENIu8D6HyVx01Q4qjyicGTicbgyciIiIiIiIi2gNGARQMoAGCUWXTuOVuVPGkfcjEwGkVGDwRERERERER0R6SAihAhnY7ANDdTqOLo++hVWDwRERERERERER7UBcmpRDq6P9Oq8TgiYiIiIiIiIj2OIZMp8sxzhQkIiIiIiIiIiI6cQyeiIiIiIiIiIhoJRg8ERERERERERHRSjB4IiIiIiIiIiKilWDwREREREREREREK8HgiYiIiIiIiIiIVoLBExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBIMnoiIiIiIiIiIaCUYPBERERERERER0UoweCIiIiIiIiIiopVg8ERERERERERERCvB4ImIiIiIiIiIiFaCwRMREREREREREa0EgyciIiIiIiIiIloJBk9ERERERERERLQSDJ6IiIiIiIiIiGglGDwREREREREREdFKMHgiIiIiIiIiIqKVYPBEREREREREREQrweCJiIiIiIiIiIhWgsETERERERERERGtBIMnIiIiIiIiIiJaCQZPRERERERERES0EgyeiIiIiIiIiIhoJRg8ERERERERERHRSjB4IiIiIiIiIiKilWDwREREREREREREK8HgiYiIiIiIiIiIVoLBExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBIMnoiIiIiIiIiIaCUYPBERERERERER0UoweCIiIiIiIiIiopVg8ERERERERERERCvB4ImIiIiIiIiIiFaCwRMREREREREREa0EgyciIiIiIiIiIloJUVU93XeCiIiIiIiIiIj2HlY8ERERERERERHRSjB4IiIiIiIiIiKilWDwREREREREREREK8HgiYiIiIiIiIiIVoLBExERERERERERrQSDJyIiIiIiIiIiWgkGT0REREREREREtBIMnoiIiIiIiIiIaCUYPBERERERERER0Ur8/wGvl7iQKhzu2gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 6, figsize=(15,3))\n", "print(kernel.sum(dim=(1,2)))\n", "for i in range(6):\n", " ax[i].set_title(f'Distance: {distances[i]}cm')\n", " ax[i].imshow(kernel[i], cmap='magma')\n", " ax[i].axis('off')" ] } ], "metadata": { "kernelspec": { "display_name": "pytomo_install_test", "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.11.6" } }, "nbformat": 4, "nbformat_minor": 2 }