Commit 2119be83b31be62fb4ff0d32cbd5c2d019bec689

Authored by David Mayerich
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