forked from NeuralEnsemble/python-neo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_tiffio.py
More file actions
59 lines (50 loc) · 2.02 KB
/
test_tiffio.py
File metadata and controls
59 lines (50 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import unittest
import os
from PIL import Image
import numpy as np
import shutil
from neo.io.tiffio import TiffIO
import quantities as pq
class TestTiffIO(unittest.TestCase):
def test_read_group_of_tiff_grayscale(self):
directory = "test_tiff"
if not os.path.exists(directory):
os.makedirs(directory)
# directory is live
img = []
for picture in range(10):
img.append([])
for y in range(50):
img[picture].append([])
for x in range(50):
img[picture][y].append(x)
img = np.array(img, dtype=float)
for image in range(10):
# rotate image by 90 deg so that shifting the origin is meaningful in later test
Image.fromarray(np.rot90(img[image])).save(directory + "/tiff_exemple" + str(image) + ".tif")
ioclass = TiffIO(
directory_path=directory, units="V", sampling_rate=1.0 * pq.Hz, spatial_scale=1.0 * pq.micrometer
)
blck = ioclass.read_block()
self.assertEqual(len(blck.segments), 1)
self.assertEqual(len(blck.segments[0].imagesequences), 1)
self.assertEqual(blck.segments[0].imagesequences[0].any(), img.any())
self.assertEqual(blck.segments[0].imagesequences[0].sampling_rate, 1.0 * pq.Hz)
self.assertEqual(blck.segments[0].imagesequences[0].spatial_scale, 1.0 * pq.micrometer)
ioclass_bl_origin = TiffIO(
directory_path=directory,
units="V",
sampling_rate=1.0 * pq.Hz,
spatial_scale=1.0 * pq.micrometer,
origin='bottom-left',
)
blck_bl_origin = ioclass_bl_origin.read_block()
self.assertAlmostEqual(
blck.segments[0].imagesequences[0][0][0,0].magnitude,
blck_bl_origin.segments[0].imagesequences[0][0][0,49].magnitude, # since flipped over y, [0,0] == [0,49]
places=3,
)
# end of directory
shutil.rmtree(directory)
if __name__ == "__main__":
unittest.main()