Skip to content

Instantly share code, notes, and snippets.

@alisterburt
Created August 28, 2023 12:15
Show Gist options
  • Select an option

  • Save alisterburt/cf7c069c89f9028ce10d1f5ffeca3cf9 to your computer and use it in GitHub Desktop.

Select an option

Save alisterburt/cf7c069c89f9028ce10d1f5ffeca3cf9 to your computer and use it in GitHub Desktop.
katherine inpainting
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"attachments": {
"77cb2ef9-4e44-427d-bf72-e71878bbb719.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"id": "d114499d-3d38-4ecc-864d-cf0e70be3220",
"metadata": {},
"source": [
"![image.png](attachment:77cb2ef9-4e44-427d-bf72-e71878bbb719.png)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f2a664c7-fa6d-4fa7-87a3-3506cbcce9d0",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "95f9b31d-f458-463b-ac59-5cec595aa0a4",
"metadata": {},
"source": [
"Create a 3D volume with a 'segmented region' (a square) in the middle"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "481bfe85-af8f-4aea-96af-6b03d9e5670f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(32, 32, 32)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"volume = np.zeros((32, 32, 32)).astype(bool)\n",
"volume.shape"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "da316d4e-c07e-4b7c-ade7-ab9499a4fa8d",
"metadata": {},
"outputs": [],
"source": [
"volume[16, 12:20, 12:20] = 1"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3cbcc8ab-9d7f-482e-9ffb-e5700f69bb48",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x108217b20>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAEPCAYAAADiY6bXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAZM0lEQVR4nO3df0xV9/3H8ddF4dZWuBR/cCVCR+um7Yw0YUrv7IytTGSJwV/J1m0ZbqZNHZooWzpJWjuzJddqsv6atX8s0zUZZXMpGs1XncVyTTN0kUmsdhJ1btII2JpwL9JyRfh8/+jXO+5XaLlw+dxfz0dyEu+555779hN95cW9514cxhgjAAAAS9JiPQAAAEgtlA8AAGAV5QMAAFhF+QAAAFZRPgAAgFWUDwAAYBXlAwAAWEX5AAAAVlE+AACAVZQPAABg1cTxOvGuXbu0c+dOdXR0qKioSK+//roWLFjwpY8bGBjQtWvXlJmZKYfDMV7jAfgCxhh1d3crLy9PaWn2fkYZbW5IZAcQaxHlhhkHdXV1JiMjw/z+978358+fN08//bTJzs42nZ2dX/rYtrY2I4mNjS0Otra2tvGIiCGNJTeMITvY2OJlG0luOIyJ/i+WKykp0fz58/Xb3/5W0uc/keTn52vjxo3asmXLFz7W7/crOztbj+s7mqj0aI8GYARuq0/v63/U1dUll8tl5TnHkhsS2QHEWiS5EfW3XW7duqXm5mbV1NSE9qWlpam0tFRNTU13HR8MBhUMBkO3u7u7/2+wdE10ECBATPzfjyS23r6INDcksgOIOxHkRtTfzP3kk0/U39+v3NzcsP25ubnq6Oi463iv1yuXyxXa8vPzoz0SgDgXaW5IZAeQyGL+aZeamhr5/f7Q1tbWFuuRACQAsgNIXFF/22Xq1KmaMGGCOjs7w/Z3dnbK7XbfdbzT6ZTT6Yz2GAASSKS5IZEdQCKL+isfGRkZKi4uVkNDQ2jfwMCAGhoa5PF4ov10AJIAuQGklnH5no/q6mpVVlbqG9/4hhYsWKBXXnlFPT09+vGPfzweTwcgCZAbQOoYl/Lx3e9+Vx9//LG2bt2qjo4OPfroozpy5MhdF5MBwB3kBpA6xuV7PsYiEAjI5XJpsSr4uBwQI7dNnxp1QH6/X1lZWbEeZ0TIDiC2IsmNmH/aBQAApBbKBwAAsIryAQAArKJ8AAAAqygfAADAKsoHAACwivIBAACsonwAAACrKB8AAMAqygcAALCK8gEAAKyifAAAAKsoHwAAwCrKBwAAsIryAQAArKJ8AAAAqygfAADAKsoHAACwivIBAACsonwAAACrKB8AAMAqygcAALCK8gEAAKyifAAAAKuiXj5++ctfyuFwhG1z5syJ9tMASCLkBpBaJo7HSb/+9a/r3Xff/e+TTByXpwGQRMgNIHWMy//uiRMnyu12j8epASQpcgNIHeNyzcfFixeVl5enBx98UD/4wQ909erV8XgaAEmE3ABSR9Rf+SgpKdHevXs1e/Zstbe3a9u2bfrWt76lc+fOKTMz867jg8GggsFg6HYgEIj2SADiXKS5IZEdQCKLevkoLy8P/XnevHkqKSnRAw88oD//+c9at27dXcd7vV5t27Yt2mMASCCR5oZEdgCJbNw/apudna2vfe1runTp0pD319TUyO/3h7a2trbxHglAnPuy3JDIDiCRjXv5uHnzpi5fvqwZM2YMeb/T6VRWVlbYBiC1fVluSGQHkMiiXj5+/vOfy+fz6d///rf+9re/aeXKlZowYYKeeuqpaD8VgCRBbgCpJerXfHz00Ud66qmndOPGDU2bNk2PP/64Tp48qWnTpkX7qQAkCXIDSC1RLx91dXXRPiWAJEduAKmF3+0CAACsonwAAACrKB8AAMAqygcAALCK8gEAAKyifAAAAKsoHwAAwCrKBwAAsIryAQAArKJ8AAAAqygfAADAKsoHAACwivIBAACsonwAAACrKB8AAMAqygcAALCK8gEAAKyifAAAAKsoHwAAwCrKBwAAsIryAQAArKJ8AAAAqygfAADAKsoHAACwKuLyceLECS1fvlx5eXlyOBzav39/2P3GGG3dulUzZszQpEmTVFpaqosXL0ZrXgAJiNwAMFjE5aOnp0dFRUXatWvXkPfv2LFDr732mt58802dOnVK9913n8rKytTb2zvmYQEkJnIDwGATI31AeXm5ysvLh7zPGKNXXnlFzz//vCoqKiRJb731lnJzc7V//35973vfG9u0ABISuQFgsKhe83HlyhV1dHSotLQ0tM/lcqmkpERNTU3RfCoASYLcAFJPxK98fJGOjg5JUm5ubtj+3Nzc0H3/XzAYVDAYDN0OBALRHAlAnBtNbkhkB5DIYv5pF6/XK5fLFdry8/NjPRKABEB2AIkrquXD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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1, 2)\n",
"ax[0].imshow(volume[:, :, 16]) # YZ view\n",
"ax[1].imshow(volume[16, :, :]) # XY view"
]
},
{
"cell_type": "markdown",
"id": "d1954c0c-2927-4967-9569-851e884324ea",
"metadata": {},
"source": [
"define a point and visualise the point above our segmentation"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5b6ff210-961a-4a39-862b-3a96a848a8cb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x11fd20dc0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"point = np.array([5, 16, 16])\n",
"fig, ax = plt.subplots()\n",
"ax.imshow(volume[:, :, 16])\n",
"ax.scatter(point[1], point[0])"
]
},
{
"cell_type": "markdown",
"id": "73bfcac9-7646-43bc-b25a-2b1ad49c09ed",
"metadata": {},
"source": [
"we need to find the angle between every voxel in the segmentation and our point"
]
},
{
"cell_type": "markdown",
"id": "6fe703bd-25ef-4998-8e54-80b2101d54f0",
"metadata": {},
"source": [
"first: generate arrays of the coordinates (z, y, x) for every voxel in our volume"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c74fd55b-1065-4e14-b054-a0ddd3bdc77d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n",
" 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"z = y = x = np.arange(32)\n",
"z"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "6d6a967c-a98a-4d1f-b267-aaffa2432dbb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((32, 32, 32), (32, 32, 32), (32, 32, 32))"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zz, yy, xx = np.meshgrid(z, y, x, indexing='ij')\n",
"zz.shape, yy.shape, xx.shape"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "37931eab-30ea-493c-a7b2-07a71336120d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(32, 32, 32, 3)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zyx = np.stack([zz, yy, xx], axis=-1)\n",
"zyx.shape"
]
},
{
"cell_type": "markdown",
"id": "889a1bf2-41ac-4b8b-9844-9f828982b31d",
"metadata": {},
"source": [
"at the moment the origin of our coordinate system is [0, 0, 0] at the corner of the 3D volume. \n",
"We need to find where each voxel is relative to our point"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "2ad59907-5f48-437d-945a-cc5b4e17b60f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ -5, -16, -16]), array([0, 0, 0]), array([26, 15, 15]))"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zyx_relative = zyx - point\n",
"zyx_relative[0, 0, 0], zyx_relative[5, 16, 16], zyx_relative[31, 31, 31]"
]
},
{
"attachments": {
"9b77ba6e-88cb-435e-8ebf-f733ae9f4c75.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"id": "14c30df0-b088-4196-8999-d17d159ee86d",
"metadata": {},
"source": [
"![image.png](attachment:9b77ba6e-88cb-435e-8ebf-f733ae9f4c75.png)\n",
"\n",
"we want to find for each point whether it is less than or equal to theta\n",
"\n",
"theta is defined by the maximum angle between points in our existing segmentation in the plane closest to the point and the point itself"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a7c4e8de-a43a-4d54-a2f8-ff4a893785e0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(64, 3)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zyx_in_seg = zyx[volume] # select coordinates where volume == True\n",
"zyx_in_seg.shape"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "8e8a7b29-8fa5-4394-a8e6-63f61b332169",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[11, -4, -4],\n",
" [11, -4, -3],\n",
" [11, -4, -2],\n",
" [11, -4, -1],\n",
" [11, -4, 0],\n",
" [11, -4, 1],\n",
" [11, -4, 2],\n",
" [11, -4, 3],\n",
" [11, -3, -4],\n",
" [11, -3, -3],\n",
" [11, -3, -2],\n",
" [11, -3, -1],\n",
" [11, -3, 0],\n",
" [11, -3, 1],\n",
" [11, -3, 2],\n",
" [11, -3, 3],\n",
" [11, -2, -4],\n",
" [11, -2, -3],\n",
" [11, -2, -2],\n",
" [11, -2, -1],\n",
" [11, -2, 0],\n",
" [11, -2, 1],\n",
" [11, -2, 2],\n",
" [11, -2, 3],\n",
" [11, -1, -4],\n",
" [11, -1, -3],\n",
" [11, -1, -2],\n",
" [11, -1, -1],\n",
" [11, -1, 0],\n",
" [11, -1, 1],\n",
" [11, -1, 2],\n",
" [11, -1, 3],\n",
" [11, 0, -4],\n",
" [11, 0, -3],\n",
" [11, 0, -2],\n",
" [11, 0, -1],\n",
" [11, 0, 0],\n",
" [11, 0, 1],\n",
" [11, 0, 2],\n",
" [11, 0, 3],\n",
" [11, 1, -4],\n",
" [11, 1, -3],\n",
" [11, 1, -2],\n",
" [11, 1, -1],\n",
" [11, 1, 0],\n",
" [11, 1, 1],\n",
" [11, 1, 2],\n",
" [11, 1, 3],\n",
" [11, 2, -4],\n",
" [11, 2, -3],\n",
" [11, 2, -2],\n",
" [11, 2, -1],\n",
" [11, 2, 0],\n",
" [11, 2, 1],\n",
" [11, 2, 2],\n",
" [11, 2, 3],\n",
" [11, 3, -4],\n",
" [11, 3, -3],\n",
" [11, 3, -2],\n",
" [11, 3, -1],\n",
" [11, 3, 0],\n",
" [11, 3, 1],\n",
" [11, 3, 2],\n",
" [11, 3, 3]])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zyx_in_seg_relative = zyx_in_seg - point\n",
"zyx_in_seg_relative"
]
},
{
"cell_type": "markdown",
"id": "fe90166b-2c55-4234-8894-34a6f31b0d1e",
"metadata": {},
"source": [
"find angle between points in segmentation (relative to annotated point) and +z"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "e329fa59-9bfc-4327-b883-be481ed0d2ab",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([27.21492271, 24.44395478, 22.12458479, 20.547394 , 19.98310652,\n",
" 20.547394 , 22.12458479, 24.44395478, 24.44395478, 21.09135806,\n",
" 18.14797393, 16.03887361, 15.2551187 , 16.03887361, 18.14797393,\n",
" 21.09135806, 22.12458479, 18.14797393, 14.42006811, 11.4904599 ,\n",
" 10.30484647, 11.4904599 , 14.42006811, 18.14797393, 20.547394 ,\n",
" 16.03887361, 11.4904599 , 7.32603695, 5.19442891, 7.32603695,\n",
" 11.4904599 , 16.03887361, 19.98310652, 15.2551187 , 10.30484647,\n",
" 5.19442891, 0. , 5.19442891, 10.30484647, 15.2551187 ,\n",
" 20.547394 , 16.03887361, 11.4904599 , 7.32603695, 5.19442891,\n",
" 7.32603695, 11.4904599 , 16.03887361, 22.12458479, 18.14797393,\n",
" 14.42006811, 11.4904599 , 10.30484647, 11.4904599 , 14.42006811,\n",
" 18.14797393, 24.44395478, 21.09135806, 18.14797393, 16.03887361,\n",
" 15.2551187 , 16.03887361, 18.14797393, 21.09135806])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cos_theta = np.dot(zyx_in_seg_relative, (1, 0, 0)) / (np.linalg.norm(zyx_in_seg_relative, axis=-1) * np.linalg.norm((1, 0, 0)))\n",
"theta = np.rad2deg(np.arccos(cos_theta))\n",
"theta"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "9828bdab-e6cd-45a6-b5be-3544ebe28598",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"27.214922707226254"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theta_max = np.max(np.abs(theta))\n",
"theta_max"
]
},
{
"cell_type": "markdown",
"id": "9366997b-af2e-4ab7-807a-a11c4cc1df24",
"metadata": {},
"source": [
"find angle between all points (relative to annotated point) and +z"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "3b6ee705-3911-4c97-b94f-2415d0f4b947",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/bl/3n0pm4ks5f11m86gkvqj1f7h0000gp/T/ipykernel_57673/1536488756.py:1: RuntimeWarning: invalid value encountered in divide\n",
" cos_theta = np.dot(zyx_relative, (1, 0, 0)) / (np.linalg.norm(zyx_relative, axis=-1) * np.linalg.norm((1, 0, 0)))\n"
]
},
{
"data": {
"text/plain": [
"(32, 32, 32)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cos_theta = np.dot(zyx_relative, (1, 0, 0)) / (np.linalg.norm(zyx_relative, axis=-1) * np.linalg.norm((1, 0, 0)))\n",
"theta = np.rad2deg(np.arccos(cos_theta))\n",
"theta.shape"
]
},
{
"cell_type": "markdown",
"id": "de3e22e1-80ca-49c7-affb-2b05788ad877",
"metadata": {},
"source": [
"where is theta < our precalculated theta max?"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "7b2c7bed-f24a-401f-90bc-6b2a991f216d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(32, 32, 32)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"infill = theta < theta_max\n",
"infill.shape"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "8ac2b3eb-673e-41f2-bb8f-5caef8728964",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x11fd7b670>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdTElEQVR4nO3df2xV9f3H8deFtleQ9mKB9vaOlhVQUBHImNRGZSgdpUsMCCb4Ixk4goEVM2BO7eIvtiV1mChqEP7YBjMRcSwC0XyFabElboWNzgZ/zIaSbpRvf6Ak3FuKXAr9fP/w651XqHjbe/vuvX0+kpNwzz2993084tNz7+m9HuecEwAA/WyI9QAAgMGJAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABNp1gN8XXd3t1paWpSZmSmPx2M9DgAgRs45dXR0KBAIaMiQns9zBlyAWlpalJ+fbz0GAKCPmpubNXbs2B7vT1iANm7cqGeeeUZtbW2aNm2aXnzxRc2cOfOyP5eZmSlJukU/UprSEzUeACBBzqtL7+l/Iv8970lCAvTaa69p7dq12rx5s4qKirRhwwaVlpaqoaFBOTk53/izX77slqZ0pXkIEAAknf//hNHLvY2SkIsQnn32WS1fvlz333+/rrvuOm3evFnDhw/XH/7wh0Q8HQAgCcU9QOfOnVNdXZ1KSkr++yRDhqikpES1tbUXbR8OhxUKhaIWAEDqi3uAPvvsM124cEG5ublR63Nzc9XW1nbR9pWVlfL5fJGFCxAAYHAw/z2giooKBYPByNLc3Gw9EgCgH8T9IoTRo0dr6NCham9vj1rf3t4uv99/0fZer1derzfeYwAABri4nwFlZGRoxowZqqqqiqzr7u5WVVWViouL4/10AIAklZDLsNeuXaslS5bo+9//vmbOnKkNGzaos7NT999/fyKeDgCQhBISoMWLF+vTTz/VE088oba2Nk2fPl179uy56MIEAMDg5XHOOeshvioUCsnn82m25vOLqACQhM67LlVrt4LBoLKysnrczvwqOADA4ESAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGAizXoAAJLzePT52FxdGDFMQ09/rmHH2+VxznosIKHiHqCnnnpK69ati1o3adIkffLJJ/F+KiAlnL66QJ/OKdL5rCsj69JCnRpTdVAjjhwznAxIrIScAV1//fV65513/vskaZxoAZdy+uoCtS647aL15zOHq3XBbcrb9S4RQspKSBnS0tLk9/sT8dBAynAejz6dU/TFDY8n+k6PR3JOn86ZqSsbm3k5DikpIRchHDlyRIFAQOPHj9d9992nY8d6/j+4cDisUCgUtQCDwedjc7942e3r8fmSx6PzWSP0+djc/h0M6CdxD1BRUZG2bt2qPXv2aNOmTWpqatKtt96qjo6OS25fWVkpn88XWfLz8+M9EjAgXRgxLK7bAcnG41xiz+1PnTqlcePG6dlnn9WyZcsuuj8cDiscDkduh0Ih5efna7bmK82TnsjRAFNn8v3633vmXXa777y6R8Ob2/phIiA+zrsuVWu3gsGgsrKyetwu4VcHjBw5Utdcc40aGxsveb/X65XX6030GMCAM+x4u9JCnTqfOfzSL8M5p7SOTg073t7/wwH9IOG/iHr69GkdPXpUeXl5iX4qIKl4nNOYqoNf3Pj6CxH/f3tM1d+5AAEpK+4Beuihh1RTU6N///vf+tvf/qY777xTQ4cO1T333BPvpwKS3ogjx5S3612ldZyJWp/W0ckl2Eh5cX8J7vjx47rnnnt08uRJjRkzRrfccosOHDigMWPGxPupgKS1t6X+K7fqdaH7Df3jfyfoRGeWcq4M6cbvHNXQJ/575lMamN7fIwIJF/cAbd++Pd4PCaS8oUOcbsq/9PukQKriw0gBACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwETCv44BGAyiP9vN9vH53DgkC86AAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATKRZDwAMVHtb6q1H6JVY5y4NTE/I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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.imshow(infill[:, :, 16])\n",
"ax.scatter(point[1], point[0])"
]
},
{
"cell_type": "markdown",
"id": "29fde369-6fad-49ba-a9d3-da9bdf93361c",
"metadata": {},
"source": [
"we need to make sure we only take the points above our existing segmentation"
]
},
{
"cell_type": "markdown",
"id": "ffdc7f4c-e1ca-4e69-83e4-c3e4305c4d9b",
"metadata": {},
"source": [
"find highest z coord in segmentation..."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "2131d1b1-49fb-4ec9-a547-3897ff780d1e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"16"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"z_in_seg_max = np.max(zyx_in_seg[:, 0])\n",
"z_in_seg_max"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "aebced9d-9703-48f7-8693-36e7cf6a4c76",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x11fd55ff0>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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LnMAF8MVEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAExEHaB9+/bpzjvvVG5urjwej3bu3Bmx3TmnJ598Ujk5ORo1apRKSkp09OjRWM0LABgmog5QZ2enZsyYoQ0bNvS5ff369XrppZe0adMmHThwQFdeeaVKS0vV1dU16GEBAMNH1P8eUFlZmcrKyvrc5pzTCy+8oMcff1zz58+XJL322mvKzs7Wzp07dc899wxuWgDAsBHT94CamprU1tamkpKS8Dqfz6fCwkLV1tb2+TOhUEjBYDBiAQAMfzENUFtbmyQpOzs7Yn12dnZ429dVVlbK5/OFl7y8vFiOBAC4RJnfBVdRUaFAIBBempubrUcCAAyBmAbI7/dLktrb2yPWt7e3h7d9ndfrVVpaWsQCABj+YhqggoIC+f1+VVVVhdcFg0EdOHBARUVFsXwpAECCi/ouuDNnzqixsTH8uKmpSfX19crIyFB+fr5Wr16t3/72t7r66qtVUFCgJ554Qrm5uVqwYEEs5wYAJLioA3Tw4EHdfvvt4cdr166VJC1ZskSbN2/WI488os7OTj344IM6ffq0br31Vu3evVtXXHFF7KYGBmBPS731CJekaP67lObeGLc5cPnxOOec9RBfFQwG5fP5NEfzleRJth4HwwgBGjwChG/jvOtWtXYpEAh84/v65nfBAQAuTwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwkWQ9ADAYe1rqrUe4rET737s098a4zIHhgSsgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAE0nWAwBftael3noExFA057M098a4zYFLE1dAAAATBAgAYCLqAO3bt0933nmncnNz5fF4tHPnzojtS5culcfjiVjmzZsXq3kBAMNE1AHq7OzUjBkztGHDhn73mTdvnlpbW8PL1q1bBzUkAGD4ifomhLKyMpWVlX3jPl6vV36/f8BDAQCG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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"infill = np.logical_and(infill, zyx[..., 0] < z_in_seg_max)\n",
"fig, ax = plt.subplots()\n",
"ax.imshow(infill[:, :, 16])\n",
"ax.scatter(point[1], point[0])"
]
},
{
"cell_type": "markdown",
"id": "c3a7a827-02ea-45ee-94bf-c12d540265a4",
"metadata": {},
"source": [
"tada! we have the region which we wanted to inpaint"
]
}
],
"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.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment