{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div><iframe src=\"http://127.0.0.1:7866/\" width=\"100%\" height=\"768\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\s193396\\AppData\\Local\\miniconda3\\envs\\qim3d\\lib\\site-packages\\gradio\\analytics.py:106: UserWarning: IMPORTANT: You are using gradio version 4.44.0, however version 4.44.1 is available, please upgrade. \n", "--------\n", " warnings.warn(\n" ] } ], "source": [ "import qim3d\n", "import matplotlib.pyplot as plt\n", "\n", "# Load example image\n", "vol = qim3d.examples.bone_128x128x128\n", "\n", "# Start annotation tool\n", "annotation_tool = qim3d.gui.annotation_tool.Interface()\n", "\n", "# We can directly pass the image we loaded to the interface\n", "app = annotation_tool.launch(vol[0]) # , server_name=\"10.197.104.229\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loaded shape: (128, 128)\n", "INFO:qim3d:Loaded shape: (128, 128)\n", "Volume using 16.0 KB of memory\n", "\n", "INFO:qim3d:Volume using 16.0 KB of memory\n", "\n", "System memory:\n", " • Total.: 31.6 GB\n", " • Used..: 18.0 GB (56.8%)\n", " • Free..: 13.7 GB (43.2%)\n", "INFO:qim3d:System memory:\n", " • Total.: 31.6 GB\n", " • Used..: 18.0 GB (56.8%)\n", " • Free..: 13.7 GB (43.2%)\n" ] }, { "data": { "text/plain": [ "{'mask_red': array([[False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " ...,\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False]])}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation_tool.get_result()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loaded shape: (128, 128)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:qim3d:Loaded shape: (128, 128)\n", "Volume using 16.0 KB of memory\n", "\n", "INFO:qim3d:Volume using 16.0 KB of memory\n", "\n", "System memory:\n", " • Total.: 31.6 GB\n", " • Used..: 17.9 GB (56.7%)\n", " • Free..: 13.7 GB (43.3%)\n", "INFO:qim3d:System memory:\n", " • Total.: 31.6 GB\n", " • Used..: 17.9 GB (56.7%)\n", " • Free..: 13.7 GB (43.3%)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQsAAAEiCAYAAADu9vesAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAMMUlEQVR4nO3da2jVdQDG8WebjM3aORFNFxuFmyJzJMLUXpk10zlKXL1IjJWzrGARQiwoaBcxUDFfiFEujGUYSIUEUXYQmlkmdkMKWiVd7IJBc0ub1vR0/r2oHZxz7tn13L6fV3p23P4r/fr8f2etrCAIAgHAMLITfQEAUgOxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAC7GAXn75ZWVlZenTTz9N9KUMqbW1VVlZWYm+jIxGLABYiAUAC7HAhPr7778Vi8USfRkYB8Qigfrvw7/99lvV1dUpHA6rsLBQTU1NCoJAP//8s1auXKlQKKSioiJt27Yt/mvPnz+v5uZmVVZWKhwO66qrrtKiRYvU0dEx6OPs3btXlZWVKigoUCgU0k033aTt27df8dp6enq0cOFClZSU6JtvvrE+n4MHDyorK0t79+7V008/reLiYk2dOlVnzpyRJB09elTLly9XOBzW1KlTtXjxYh0+fHjQ+/nwww+1YMEC5eXlqaysTG1tbdbHx8SakugLgLRq1SqVl5dr8+bNevvtt/XMM8/o2muvVVtbm6qqqrRlyxa9+uqramxs1IIFC3TLLbfozJkz2rVrl1avXq2HHnpIf/75p1566SVVV1fr448/1rx58yRJBw4c0OrVq7VkyRJt2bJFktTZ2anDhw9r/fr1l72erq4uLV26VN3d3Xr//fdVVlY2os9n48aNys3NVWNjo/r6+pSbm6v33ntPNTU1qqysVEtLi7Kzs9Xe3q6qqip98MEHWrhwoSTpyy+/1LJly1RYWKjW1lZFo1G1tLRo+vTpo/8HjPERIGFaWloCScHDDz8cfywajQYlJSVBVlZWsHnz5vjjPT09QX5+frBmzZr48/r6+ga8v56enmD69OnBAw88EH9s/fr1QSgUCqLR6JDX0d7eHkgKPvnkk+DkyZNBRUVFUFpaGvz4448j+nw6OjoCSUFpaWlw7ty5+OOxWCyYNWtWUF1dHcRisfjj586dC2bMmBEsXbo0/lhtbW2Ql5cXnDhxIv7YV199FeTk5AT8dk0sbkOSwLp16+I/zsnJ0fz58xUEgR588MH449dcc41mz56t77//Pv683NxcSVIsFlN3d7ei0ajmz5+vzz//fMCvO3v2rA4cODDsdfzyyy9avHixLly4oEOHDunGG28c1eezZs0a5efnx39+7NgxHT9+XPfee69OnTqlrq4udXV16ezZs1qyZIkOHTqkWCymf/75R5FIRLW1tbrhhhviv768vFzV1dWjuhaMH25DksDFfzAkKRwOKy8vT9ddd92gx0+dOhX/+e7du7Vt2zZ9/fXXunDhQvzxGTNmxH/c0NCg1157TTU1NSouLtayZct0zz33aPny5YOu47777tOUKVPU2dmpoqKiUX8+F398STp+/Lik/yIylNOnT6uvr09//fWXZs2aNejts2fP1jvvvDPqa8LYEYskkJOTYz0mScH/3wVxz549qq+vV21trZ544glNmzZNOTk52rRpk7777rv486dNm6Zjx44pEolo//792r9/v9rb23X//fdr9+7dA9733XffrVdeeUXbt2/Xpk2bRv35XLwqJMVfDdm6dWv8LOVSV199tfr6+kb9MTHxiEWKeuONN1RaWqp9+/YN+MrGlpaWQc/Nzc3VihUrtGLFCsViMTU0NKitrU1NTU2aOXNm/HmPPfaYZs6cqebmZoXDYT355JPjcq39B6ShUEi33377kM8rLCxUfn5+fIlczH1FBhOHM4sU1b88gou+3/LRo0d15MiRAc+7+LZFkrKzszV37lxJuuzf5E1NTWpsbNRTTz2lF154YVyutbKyUmVlZXr22WfV29s76O2///67pP8+p+rqar355pv66aef4m/v7OxUJBIZl2vB6LEsUtSdd96pffv26a677tIdd9yhH374QTt37tScOXMG/IFct26duru7VVVVpZKSEp04cUI7duzQvHnzVF5eftn3vXXrVp0+fVqPPvqoCgoKVFdXN6Zrzc7O1q5du1RTU6OKigqtXbtWxcXF+vXXX9XR0aFQKKS33npLkrRhwwa9++67WrRokRoaGhSNRrVjxw5VVFToiy++GNN1YGyIRYqqr6/Xb7/9pra2NkUiEc2ZM0d79uzR66+/roMHD8afV1dXpxdffFHPP/+8/vjjDxUVFWnVqlVqbW1VdvbQw3Lnzp3q7e3V2rVrVVBQoJUrV47pem+99VYdOXJEGzdu1HPPPafe3l4VFRXp5ptv1iOPPBJ/3ty5cxWJRPT444+rublZJSUl2rBhg06ePEksEiwrCPj/hgAYHmcWACzchmBY58+fV3d39xWfEw6HB71kivRCLDCsjz76SLfddtsVn9Pe3q76+vrJuSAkBGcWGFZPT48+++yzKz6noqJC119//SRdERKBWACwcMAJwEIsAFjsA06+szIcibyr5ffo6Dn/3lgWACzEAuMiCIKEror+a8DEIRYALHxRFkaFv8UzD8sCgIVlgRFJ9kXRf328MjL+WBYALCwLXFGyLwlMHpYFAAvLAgOwJDAUlgUAC8siw7Ek4GJZALCwLDIMSwKjRSwyBJHAWHEbAsDCskhzLAqMF5YFAAvLIk1l6qLgPyCbOCwLABZikYYydVVgYhELABbOLNJIpi8KzismFssCgIVlkQYyfVFgcrAsAFhYFiks0xcFZxSTi2UBwMKySEEsChZFIrAsAFhYFkgZLIrEYlkAsLAsUkimnlWwKJIDywKAhWWRAjJtUbAkkhPLAoCFZZHEWBRIJiwLABaWRRLKlEXBkkgtLAsAFpYFJg1LIrWxLABYWBZJJN3OKlgS6YVlAcDCskgC6bQoWBPpi1gkEJFAKuE2BICFZYExYVFkDpYFAAvLIgHS4ayCRZF5WBYALCyLScSiQCpjWQCwEAsAFmIBwMKZxSTgrALpgGUBwMKymEAsCqQTlgUAC8sCl8WiwKVYFgAsLIsJkqrnFSwKDIVlAcBCLABYiAUAC2cW44yzCqQrlgUAC8siw7Eo4GJZALCwLMZJqp1VsCgwUiwLABZiAcBCLABYOLMYI84qkClYFgAsLIsMwaLAWBGLUUq12w9grLgNAWBhWaQ5bj8wXlgWACwsixHirAKZimUBwMKySFOcVWC8sSwAWFgWplQ6q2BVYCKwLABYiAUAC7EAYOHMYhicVQD/YVkAsBALABZiAcDCmUUa4KwCk4FlAcDCshhCKr0KAkwGlgUAC8sihXFWgcnEsgBgYVlcgrMK4PJYFgAsxAKAhVgAsHBm8b9UOqvgVRAkAssCgIVYALAQCwAWzixSCGcVSCSWBQALsQBgyfjbkFR4yZTbDyQDlgUAC7EAYCEWACzEAoCFWACwZOyrIbwKAowMywKAhVgAsBALABZiAcBCLABYMu7VEF4FAUaHZQHAQiwAWIgFAAuxAGAhFgAsGfdqSDLjVRAkM5YFAAuxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAS8Z9BWf/V0km0/e14Cs3kQpYFgAsxAKAJeNuQ/olw+0Itx9IJSwLAJaMXRb9ErEwWBRIRSwLAJaMXxb9JmNhsCiQylgWACwsi0tMxMJgUSAdsCwAWFgWQxhqDQy3OFgRSFcsCwAWlsUIsRyQqVgWACzEAoCFWACwEAsAFmIBwEIsAFiIBQALsQBgIRYALMQCgIVYALAQCwAWYgHAQiwAWIgFAAuxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAC7EAYCEWACzEAoCFWACwEAsAFmIBwEIsAFiIBQALsQBgIRYALMQCgIVYALAQCwAWYgHAQiwAWIgFAAuxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAC7EAYCEWACzEAoCFWACwEAsAFmIBwEIsAFiIBQALsQBgIRYALMQCgIVYALAQCwAWYgHAQiwAWIgFAAuxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAC7EAYCEWACzEAoCFWACwEAsAFmIBwEIsAFiIBQALsQBgIRYALMQCgIVYALAQCwAWYgHAQiwAWIgFAAuxAGAhFgAsxAKAhVgAsBALABZiAcBCLABYiAUAC7EAYJniPjEIgom8DgBJjmUBwEIsAFiIBQALsQBgIRYALMQCgIVYALAQCwAWYgHA8i/YvH5VPFDsxgAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 800x300 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from IPython.display import clear_output\n", "import numpy as np\n", "import time\n", "\n", "\n", "clear_output(wait=True) \n", "masks_dict = annotation_tool.get_result()\n", "if len(masks_dict) == 0:\n", " masks_dict[\"No mask\"] = np.zeros((32,32))\n", "\n", "fig, axs = plt.subplots(1, len(masks_dict), figsize=(8,3))\n", "\n", "if len(masks_dict) == 1:\n", " axs = [axs]\n", "for idx, (name, mask) in enumerate(masks_dict.items()):\n", "\n", " axs[idx].imshow(mask, cmap='gray', interpolation='none')\n", " axs[idx].set_title(name)\n", " axs[idx].axis('off')\n", "\n", "plt.tight_layout()\n", "\n", "\n", "plt.show()\n", "time.sleep(2)" ] } ], "metadata": { "kernelspec": { "display_name": "qim3d", "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.14" } }, "nbformat": 4, "nbformat_minor": 4 }