Commit 2119be83b31be62fb4ff0d32cbd5c2d019bec689
1 parent
a296b833
updated libraries for imagestack and the muve alignment script
Showing
2 changed files
with
13 additions
and
16 deletions
Show diff stats
python/imagestack.py
1 | import glob | 1 | import glob |
2 | -import imageio | ||
3 | import numpy | 2 | import numpy |
4 | import progressbar | 3 | import progressbar |
4 | +import skimage.io | ||
5 | import skimage.transform | 5 | import skimage.transform |
6 | import os | 6 | import os |
7 | 7 | ||
@@ -13,7 +13,7 @@ def load(fmask, dtype=numpy.float32): | @@ -13,7 +13,7 @@ def load(fmask, dtype=numpy.float32): | ||
13 | return | 13 | return |
14 | 14 | ||
15 | #load the first file | 15 | #load the first file |
16 | - I = imageio.imread(F[0]) | 16 | + I = skimage.io.imread(F[0]) |
17 | 17 | ||
18 | #generate the image stack | 18 | #generate the image stack |
19 | if I.ndim == 3: | 19 | if I.ndim == 3: |
@@ -24,7 +24,7 @@ def load(fmask, dtype=numpy.float32): | @@ -24,7 +24,7 @@ def load(fmask, dtype=numpy.float32): | ||
24 | bar = progressbar.ProgressBar(max_value=len(F)) | 24 | bar = progressbar.ProgressBar(max_value=len(F)) |
25 | 25 | ||
26 | for i in range(0, len(F)): | 26 | for i in range(0, len(F)): |
27 | - I = imageio.imread(F[i]) | 27 | + I = skimage.io.imread(F[i]) |
28 | S[i, ...] = I | 28 | S[i, ...] = I |
29 | bar.update(i+1) | 29 | bar.update(i+1) |
30 | 30 | ||
@@ -41,7 +41,7 @@ def save(I, fname, extension = "bmp"): | @@ -41,7 +41,7 @@ def save(I, fname, extension = "bmp"): | ||
41 | bar = progressbar.ProgressBar(max_value=I.shape[0]) | 41 | bar = progressbar.ProgressBar(max_value=I.shape[0]) |
42 | #save the output files | 42 | #save the output files |
43 | for i in range(0, I.shape[0]): | 43 | for i in range(0, I.shape[0]): |
44 | - imageio.imwrite(fname + "%03d" % i + "." + extension, I[i, ...]) | 44 | + skimage.io.imsave(fname + "%03d" % i + "." + extension, I[i, ...]) |
45 | bar.update(i+1) | 45 | bar.update(i+1) |
46 | 46 | ||
47 | #rescale a stack of images along X and Y by an integer value n and save to directory dest | 47 | #rescale a stack of images along X and Y by an integer value n and save to directory dest |
@@ -59,12 +59,12 @@ def resize(fmask, dest, n, outformat=None): | @@ -59,12 +59,12 @@ def resize(fmask, dest, n, outformat=None): | ||
59 | for i in range(0, len(F)): | 59 | for i in range(0, len(F)): |
60 | 60 | ||
61 | #load the file to memory | 61 | #load the file to memory |
62 | - I = imageio.imread(F[i]) | 62 | + I = skimage.io.imread(F[i]) |
63 | R = skimage.transform.downscale_local_mean(I, (n, n)) | 63 | R = skimage.transform.downscale_local_mean(I, (n, n)) |
64 | if outformat is None: | 64 | if outformat is None: |
65 | - imageio.imwrite(dest+"/"+os.path.basename(F[i]), R) | 65 | + skimage.io.imwrite(dest+"/"+os.path.basename(F[i]), R) |
66 | else: | 66 | else: |
67 | - imageio.imwrite(dest+"/"+os.path.basename(F[i]).split('.')[0] + "." + outformat, R) | 67 | + skimage.io.imwrite(dest+"/"+os.path.basename(F[i]).split('.')[0] + "." + outformat, R) |
68 | bar.update(i+1) | 68 | bar.update(i+1) |
69 | 69 | ||
70 | 70 | ||
71 | \ No newline at end of file | 71 | \ No newline at end of file |
python/muve-align.py
@@ -12,6 +12,7 @@ import cv2 | @@ -12,6 +12,7 @@ import cv2 | ||
12 | import progressbar | 12 | import progressbar |
13 | import scipy.ndimage | 13 | import scipy.ndimage |
14 | import sys | 14 | import sys |
15 | +import os | ||
15 | 16 | ||
16 | 17 | ||
17 | def press(event): | 18 | def press(event): |
@@ -95,22 +96,18 @@ def align(A, B, max_power=5): | @@ -95,22 +96,18 @@ def align(A, B, max_power=5): | ||
95 | #warp_matrix[0, 2] = 0 | 96 | #warp_matrix[0, 2] = 0 |
96 | # return warp_matrix | 97 | # return warp_matrix |
97 | 98 | ||
98 | -if len(sys.argv) < 3: | ||
99 | - print("usage: muve-align input_mask output_directory") | ||
100 | - print("ex: muve-align *.bmp ./aligned") | ||
101 | - return | ||
102 | - | ||
103 | -fmask = sys.argv[1] | ||
104 | -out_dir = sys.argv[2] | 99 | +fmask = "Z:/jack/TinkParaffinLung0.005S/*.png" |
100 | +out_dir = "Z:/jack/TinkParaffinLung0.005S/aligned" | ||
105 | 101 | ||
106 | if not os.path.isdir(out_dir): | 102 | if not os.path.isdir(out_dir): |
107 | os.mkdir(out_dir) | 103 | os.mkdir(out_dir) |
108 | 104 | ||
109 | #read the image stack for alignment | 105 | #read the image stack for alignment |
110 | print("Loading image stack...") | 106 | print("Loading image stack...") |
111 | -S = imagestack.load(fmask, dtype=numpy.float32) | 107 | +S = imagestack.load(fmask, dtype=numpy.uint8) |
108 | + | ||
112 | #convert to grayscale | 109 | #convert to grayscale |
113 | -G = imagestack.rgb2gray(S) | 110 | +G = imagestack.rgb2gray(S.astype(numpy.float32)) |
114 | 111 | ||
115 | # Define the motion model | 112 | # Define the motion model |
116 | warp_mode = cv2.MOTION_TRANSLATION | 113 | warp_mode = cv2.MOTION_TRANSLATION |