This notebook demonstrates training data generation for a 3D denoising task, where corresponding pairs of low and high quality stacks can be acquired.
Each pair should be registered, which is best achieved by acquiring both stacks interleaved, i.e. as different channels that correspond to the different exposure/laser settings.
We will use a single Tribolium stack pair for training data generation, whereas in your application you should aim to acquire at least 10-50 stacks from different developmental timepoints to ensure a well trained model.
More documentation is available at http://csbdeep.bioimagecomputing.com/doc/.
from __future__ import print_function, unicode_literals, absolute_import, division import numpy as np import matplotlib.pyplot as plt %matplotlib inline %config InlineBackend.figure_format = 'retina' from tifffile import imread from csbdeep.utils import download_and_extract_zip_file, plot_some from csbdeep.data import RawData, create_patches
download_and_extract_zip_file ( url = 'http://csbdeep.bioimagecomputing.com/example_data/tribolium.zip', targetdir = 'data', )
Files missing, downloading... extracting... done. data: - tribolium - tribolium/test - tribolium/test/GT - tribolium/test/GT/nGFP_0.1_0.2_0.5_20_14_late.tif - tribolium/test/low - tribolium/test/low/nGFP_0.1_0.2_0.5_20_14_late.tif - tribolium/train - tribolium/train/GT - tribolium/train/GT/nGFP_0.1_0.2_0.5_20_13_late.tif - tribolium/train/low - tribolium/train/low/nGFP_0.1_0.2_0.5_20_13_late.tif
We can plot the training stack pair via maximum-projection:
y = imread('data/tribolium/train/GT/nGFP_0.1_0.2_0.5_20_13_late.tif') x = imread('data/tribolium/train/low/nGFP_0.1_0.2_0.5_20_13_late.tif') print('image size =', x.shape) plt.figure(figsize=(16,10)) plot_some(np.stack([x,y]), title_list=[['low (maximum projection)','GT (maximum projection)']], pmin=2,pmax=99.8);
image size = (48, 773, 665)