diff --git a/droplet_growth/register.py b/droplet_growth/register.py new file mode 100644 index 0000000000000000000000000000000000000000..b336e56f48b691758fc4875e95ae29648b4e6cc5 --- /dev/null +++ b/droplet_growth/register.py @@ -0,0 +1,43 @@ +from tifffile import imread, imwrite +import matplotlib.pyplot as plt +import imreg_dft as reg +import numpy as np +import scipy.ndimage as ndi + + +def calculate_padding(image, template): + shi = np.array(image.shape) + sht = np.array(template.shape) + dif = shi - sht + mid = dif // 2 + rest = dif - mid + return (tuple((mid[0], rest[0])), tuple((mid[1],rest[1]))) + + +def pad_template(image, template, padding=None): + if padding is None: + padding = calculate_padding(image, template) + padded_template = np.pad(template, padding, 'median') + return padded_template + + +def unpad_image(image, template=None, padding=None): + if padding is None: + padding = calculate_padding(image, template) + return image[padding[0][0]:-padding[0][1], padding[1][0]:-padding[1][1]] + + +def scale_tvec(tvec, scale=8): + tvec_8x = tvec.copy() + tvec_8x['tvec'] = tvec['tvec'] * scale + try: + tvec_8x['timg'] = None + except KeyError: + pass + finally: + return tvec_8x + + +def transform(image, tvec): + fluo = reg.transform_img_dict(image, tvec) + return fluo.astype('uint') \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 787d9f83503c11d05b14ecdf5802389f12d497cc..c5eac496b21cdeec1ab36dc88ffd0420671bb674 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,4 @@ seaborn statannot jupyterlab czifile +imreg-dft diff --git a/setup.py b/setup.py index 65067736a5ea5e1d1165064d30aa5159de3f4ffa..58ce40cd5be6cfbbb5cd908a5bbb33e4360374db 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,8 @@ setup( "pandas", "seaborn", "statannot", - "click" + "click", + "imreg-dft" ], python_requires=">=3.8", packages=find_packages(),