From 972fa85398c6dfde492d7437bbc50001db69d934 Mon Sep 17 00:00:00 2001 From: Dmitry Ganyushin Date: Wed, 3 Jul 2024 17:21:41 -0400 Subject: [PATCH] Converted test to python notebook example. --- notebooks/example_ms.ipynb | 60 +++++++++++++++++++++++++++++++++++ tests/scripts/denoise-gpu.py | 46 --------------------------- tests/scripts/denoise-orig.py | 31 ------------------ 3 files changed, 60 insertions(+), 77 deletions(-) create mode 100644 notebooks/example_ms.ipynb delete mode 100644 tests/scripts/denoise-gpu.py delete mode 100644 tests/scripts/denoise-orig.py diff --git a/notebooks/example_ms.ipynb b/notebooks/example_ms.ipynb new file mode 100644 index 0000000..28f008e --- /dev/null +++ b/notebooks/example_ms.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from bm3dornl.bm3d import bm3d_ring_artifact_removal_ms\n", + "from bm3dornl.denoiser_gpu import memory_cleanup\n", + "\n", + "with open(\"../../tests/bm3dornl-data/sino.npy\", \"rb\") as f:\n", + " sino_noisy = np.load(f)\n", + "\n", + "memory_cleanup()\n", + "\n", + "block_matching_kwargs: dict = {\n", + " \"patch_size\": (8, 8),\n", + " \"stride\": 3,\n", + " \"background_threshold\": 0.0,\n", + " \"cut_off_distance\": (64, 64),\n", + " \"num_patches_per_group\": 32,\n", + " \"padding_mode\": \"circular\",\n", + "}\n", + "filter_kwargs: dict = {\n", + " \"filter_function\": \"fft\",\n", + " \"shrinkage_factor\": 3e-2,\n", + "}\n", + "kwargs = {\n", + " \"mode\": \"simple\",\n", + " \"k\": 4,\n", + " \"block_matching_kwargs\": block_matching_kwargs,\n", + " \"filter_kwargs\": filter_kwargs,\n", + "}\n", + "\n", + "sino_bm3dornl = bm3d_ring_artifact_removal_ms(\n", + " sinogram=sino_noisy,\n", + " **kwargs,\n", + ")\n", + "\n", + "\n", + "fig, axs = plt.subplots(1, 2, figsize=(12, 4))\n", + "axs[0].imshow(sino_noisy, cmap=\"gray\")\n", + "axs[0].set_title(\"Noisy sinogram\")\n", + "axs[1].imshow(sino_bm3dornl, cmap=\"gray\")\n", + "axs[1].set_title(\"BM3D denoised sinogram\")\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tests/scripts/denoise-gpu.py b/tests/scripts/denoise-gpu.py deleted file mode 100644 index ddb0b29..0000000 --- a/tests/scripts/denoise-gpu.py +++ /dev/null @@ -1,46 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt -from bm3dornl.bm3d import bm3d_ring_artifact_removal_ms -from bm3dornl.denoiser_gpu import memory_cleanup - -print("Reading sinogram from file ...") -with open("../bm3dornl-data/sino.npy", "rb") as f: - sino_noisy = np.load(f) - -print("done") - -memory_cleanup() - -block_matching_kwargs: dict = { - "patch_size": (8, 8), - "stride": 3, - "background_threshold": 0.0, - "cut_off_distance": (64, 64), - "num_patches_per_group": 32, - "padding_mode": "circular", -} -filter_kwargs: dict = { - "filter_function": "fft", - "shrinkage_factor": 3e-2, -} -kwargs = { - "mode": "simple", - "k": 4, - "block_matching_kwargs": block_matching_kwargs, - "filter_kwargs": filter_kwargs, -} - -sino_bm3dornl = bm3d_ring_artifact_removal_ms( - sinogram=sino_noisy, - **kwargs, -) - - -fig, axs = plt.subplots(1, 2, figsize=(12, 4)) -axs[0].imshow(sino_noisy, cmap="gray") -axs[0].set_title("Noisy sinogram") -axs[1].imshow(sino_bm3dornl, cmap="gray") -axs[1].set_title("BM3D denoised sinogram") -# plt.show() -fig.savefig("denoise-gpu.png") -plt.close(fig) diff --git a/tests/scripts/denoise-orig.py b/tests/scripts/denoise-orig.py deleted file mode 100644 index 20b366a..0000000 --- a/tests/scripts/denoise-orig.py +++ /dev/null @@ -1,31 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt -import bm3d_streak_removal as bm3dsr - -print("Reading sinogram from file ...") - -with open("../bm3dornl-data/sino.npy", "rb") as f: - sino_noisy = np.load(f) - -print("done") - -sino_bm3d = bm3dsr.multiscale_streak_removal( - data=sino_noisy, - max_bin_iter_horizontal=0, - bin_vertical=0, - filter_strength=1.0, - use_slices=True, - slice_sizes=None, - slice_step_sizes=None, - denoise_indices=None, -) - - -fig, axs = plt.subplots(1, 2, figsize=(12, 4)) -axs[0].imshow(sino_noisy, cmap="gray") -axs[0].set_title("Noisy sinogram") -axs[1].imshow(sino_bm3d, cmap="gray") -axs[1].set_title("BM3D denoised sinogram") -# plt.show() -fig.savefig("denoise-orig.png") -plt.close(fig)