예제 #1
0
 def test_image_j_produces_proper_data_types(self):
     io_delegate = TIFF_IO.TIFFIODelegate_ImageJ(API())
     for t in (numpy.int16, numpy.uint16, numpy.int32, numpy.uint32, numpy.int64, numpy.uint64, numpy.float32, numpy.float64):
         b = io.BytesIO()
         xdata_w = DataAndMetadata.new_data_and_metadata(numpy.zeros((16, 16), dtype=t))
         io_delegate.write_data_and_metadata_stream(xdata_w, b)
         b.seek(0)
         xdata_r = io_delegate.read_data_and_metadata_from_stream(b)
         self.assertEqual(xdata_w.data_shape, xdata_r.data_shape)
         self.assertIn(xdata_r.data.dtype, (numpy.uint16, numpy.float32))
예제 #2
0
 def test_baseline_writes_reads_rgb_roundtrip(self):
     io_delegate = TIFF_IO.TIFFIODelegate_Baseline(API())
     d = numpy.zeros((16, 16, 3), dtype=numpy.uint8)
     d[..., 1] = 1
     d[..., 2] = 2
     b = io.BytesIO()
     xdata_w = DataAndMetadata.new_data_and_metadata(d)
     io_delegate.write_data_and_metadata_stream(xdata_w, b)
     b.seek(0)
     xdata_r = io_delegate.read_data_and_metadata_from_stream(b)
     self.assertEqual(xdata_w.data_shape, xdata_r.data_shape)
     self.assertEqual(xdata_w.data.dtype, xdata_r.data.dtype)
     self.assertTrue(numpy.array_equal(xdata_w.data, xdata_r.data))
예제 #3
0
 def test_baseline_scales_to_uint16(self):
     io_delegate = TIFF_IO.TIFFIODelegate_Baseline(API())
     d = numpy.zeros((16, 16), dtype=numpy.float32)
     d[0, 0] = 0.5
     d[1, 1] = 1.0
     b = io.BytesIO()
     xdata_w = DataAndMetadata.new_data_and_metadata(d)
     io_delegate.write_data_and_metadata_stream(xdata_w, b)
     b.seek(0)
     xdata_r = io_delegate.read_data_and_metadata_from_stream(b)
     self.assertEqual(xdata_w.data_shape, xdata_r.data_shape)
     self.assertEqual(numpy.uint16, xdata_r.data.dtype)
     self.assertEqual(numpy.amin(xdata_r.data), 0)
     self.assertEqual(numpy.amax(xdata_r.data), 65535)
예제 #4
0
 def test_imagej_writes_reads_2d_collection_1d_data_roundtrip(self):
     api = API()
     io_delegate = TIFF_IO.TIFFIODelegate_ImageJ(api)
     for include_swift_metadata in (False, True):
         io_delegate._include_nion_metadata = include_swift_metadata
         data = numpy.zeros((15, 16, 5))
         data_descriptor = api.create_data_descriptor(False, 2, 1)
         xdata_w = api.create_data_and_metadata(data, data_descriptor=data_descriptor)
         b = io.BytesIO()
         io_delegate.write_data_and_metadata_stream(xdata_w, b)
         b.seek(0)
         xdata_r = io_delegate.read_data_and_metadata_from_stream(b)
         self.assertEqual(xdata_w.data_shape, xdata_r.data_shape)
         self.assertEqual(xdata_w.is_sequence, xdata_r.is_sequence)
         self.assertEqual(xdata_w.collection_dimension_count, xdata_r.collection_dimension_count)