Commit c8b1298401f3a2388c16aa30a0820d4f39f5522d
1 parent
eccf10ff
renamed spectral.py to stim_spectral.py; modified envi_batch_predict to return R…
…GB array in case user wants to save the fig
Showing
2 changed files
with
5 additions
and
56 deletions
Show diff stats
python/classify.py
... | ... | @@ -12,7 +12,7 @@ import sklearn.metrics |
12 | 12 | import scipy |
13 | 13 | import scipy.misc |
14 | 14 | import envi |
15 | -import spectral | |
15 | +import stim_spectral | |
16 | 16 | import random |
17 | 17 | import progressbar |
18 | 18 | import matplotlib.pyplot as plt |
... | ... | @@ -176,11 +176,13 @@ def envi_batch_predict(E, C, batch=10000): |
176 | 176 | else: |
177 | 177 | Tv = numpy.concatenate((Tv, C.predict(Fv.transpose()).transpose()), 0) |
178 | 178 | tempmask = E.batchmask() |
179 | - Lv = spectral.unsift2(Tv, tempmask) | |
179 | + Lv = stim_spectral.unsift2(Tv, tempmask) | |
180 | 180 | Cv = label2class(Lv.squeeze(), background=0) |
181 | 181 | RGB = class2color(Cv) |
182 | 182 | plt.imshow(RGB) |
183 | 183 | plt.pause(0.05) |
184 | 184 | Fv = E.loadbatch(batch) |
185 | 185 | i = i + 1 |
186 | - bar.update(len(Tv)) | |
187 | 186 | \ No newline at end of file |
187 | + bar.update(len(Tv)) | |
188 | + | |
189 | + return RGB | |
188 | 190 | \ No newline at end of file | ... | ... |
python/spectral.py deleted
1 | -# -*- coding: utf-8 -*- | |
2 | -""" | |
3 | -Created on Sun Jul 23 13:52:22 2017 | |
4 | - | |
5 | -@author: david | |
6 | -""" | |
7 | -import numpy | |
8 | - | |
9 | -#sift a 2D hyperspectral image into a PxB matrix where P is the number of pixels and B is the number of bands | |
10 | -def sift2(I, mask = []): | |
11 | - | |
12 | - #get the shape of the input array | |
13 | - S = I.shape | |
14 | - | |
15 | - #convert that array into a 1D matrix | |
16 | - M = numpy.reshape(I, (S[0], S[1] * S[2])) | |
17 | - | |
18 | - #gif no mask is provided, just return all pixels | |
19 | - if mask == []: | |
20 | - return M | |
21 | - | |
22 | - #if a mask is provided, only return pixels corresponding to that mask | |
23 | - flatmask = numpy.reshape(mask, (S[1] * S[2])) | |
24 | - i = numpy.flatnonzero(flatmask) #get the nonzero indices | |
25 | - return M[:, i] #return pixels corresponding to the masked values | |
26 | - | |
27 | -def unsift2(M, mask): | |
28 | - | |
29 | - #get the size of the input matrix | |
30 | - S = M.shape | |
31 | - | |
32 | - #count the number of nonzero values in the mask | |
33 | - nnz = numpy.count_nonzero(mask) | |
34 | - | |
35 | - #the number of masked values should be the same as the number of pixels in the input matrix | |
36 | - if len(S) == 1: | |
37 | - if not S[0] == nnz: | |
38 | - print("ERROR: expected " + str(nnz) + " pixels based on the mask but there are " + str(S[0]) + " in the matrix.") | |
39 | - elif not S[1] == nnz: | |
40 | - print("ERROR: expected " + str(nnz) + " pixels based on the mask but there are " + str(S[1]) + " in the matrix.") | |
41 | - | |
42 | - | |
43 | - i = numpy.nonzero(mask) | |
44 | - | |
45 | - if len(S) == 1: | |
46 | - I = numpy.zeros((1, mask.shape[0], mask.shape[1]), dtype=M.dtype) | |
47 | - else: | |
48 | - I = numpy.zeros((M.shape[0], mask.shape[0], mask.shape[1]), dtype=M.dtype) | |
49 | - I[:, i[0], i[1]] = M | |
50 | - return I | |
51 | - | |
52 | -#create a function that sifts a color image | |
53 | -#input: image name, mask | |
54 | 0 | \ No newline at end of file |