From a58f3f33f945e6e962b8fb9066bee733de47e396 Mon Sep 17 00:00:00 2001
From: Andrey Aristov <aaristov@pasteur.fr>
Date: Mon, 9 Nov 2020 16:04:17 +0100
Subject: [PATCH] registration routines

---
 droplet_growth/register.py | 43 ++++++++++++++++++++++++++++++++++++++
 requirements.txt           |  1 +
 setup.py                   |  3 ++-
 3 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 droplet_growth/register.py

diff --git a/droplet_growth/register.py b/droplet_growth/register.py
new file mode 100644
index 0000000..b336e56
--- /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 787d9f8..c5eac49 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 6506773..58ce40c 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(),
-- 
GitLab