Beispiel #1
0
 def test_03_02_00_one(self):
     """Check measurements on a 3x3 square of 1's"""
     img = np.array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0],
                     [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0],
                     [0, 0, 0, 0, 0, 0, 0]])
     ii = II.InjectImage('MyImage', img.astype(float))
     ii.module_num = 1
     io = II.InjectObjects('MyObjects', img.astype(int))
     io.module_num = 2
     moi = MOI.MeasureObjectIntensity()
     moi.images[0].name.value = 'MyImage'
     moi.objects[0].name.value = 'MyObjects'
     moi.module_num = 3
     pipeline = P.Pipeline()
     pipeline.add_listener(self.error_callback)
     pipeline.add_module(ii)
     pipeline.add_module(io)
     pipeline.add_module(moi)
     m = pipeline.run()
     for category, meas_name, value in (
         (MOI.INTENSITY, MOI.INTEGRATED_INTENSITY,
          9), (MOI.INTENSITY, MOI.MEAN_INTENSITY,
               1), (MOI.INTENSITY, MOI.STD_INTENSITY,
                    0), (MOI.INTENSITY, MOI.MIN_INTENSITY,
                         1), (MOI.INTENSITY, MOI.MAX_INTENSITY, 1),
         (MOI.INTENSITY, MOI.INTEGRATED_INTENSITY_EDGE,
          8), (MOI.INTENSITY, MOI.MEAN_INTENSITY_EDGE,
               1), (MOI.INTENSITY, MOI.STD_INTENSITY_EDGE,
                    0), (MOI.INTENSITY, MOI.MIN_INTENSITY_EDGE,
                         1), (MOI.INTENSITY, MOI.MAX_INTENSITY_EDGE,
                              1), (MOI.INTENSITY, MOI.MASS_DISPLACEMENT, 0),
         (MOI.INTENSITY, MOI.LOWER_QUARTILE_INTENSITY,
          1), (MOI.INTENSITY, MOI.MEDIAN_INTENSITY,
               1), (MOI.INTENSITY, MOI.UPPER_QUARTILE_INTENSITY,
                    1), (MOI.C_LOCATION, MOI.LOC_CMI_X,
                         3), (MOI.C_LOCATION, MOI.LOC_CMI_Y, 2)):
         feature_name = "%s_%s_%s" % (category, meas_name, 'MyImage')
         data = m.get_current_measurement('MyObjects', feature_name)
         self.assertEqual(np.product(data.shape), 1)
         self.assertEqual(
             data[0], value,
             "%s expected %f != actual %f" % (meas_name, value, data[0]))
 def test_03_05_quartiles(self):
     """Regression test a bug that occurs in an image with one pixel"""
     labels = np.zeros((10, 20))
     labels[2:7, 3:8] = 1
     labels[5, 15] = 2
     np.random.seed(0)
     image = np.random.uniform(size=(10, 20))
     ii = II.InjectImage('MyImage', image)
     ii.module_num = 1
     io = II.InjectObjects('MyObjects', labels)
     io.module_num = 2
     moi = MOI.MeasureObjectIntensity()
     moi.images[0].name.value = 'MyImage'
     moi.objects[0].name.value = 'MyObjects'
     moi.module_num = 3
     pipeline = P.Pipeline()
     pipeline.add_listener(self.error_callback)
     pipeline.add_module(ii)
     pipeline.add_module(io)
     pipeline.add_module(moi)
     # Crashes when pipeline runs in measureobjectintensity.py revision 7146
     m = pipeline.run()
Beispiel #3
0
 def test_03_01_00_zero(self):
     """Make sure we can process a blank image"""
     ii = II.InjectImage('MyImage', np.zeros((10, 10)))
     ii.module_num = 1
     io = II.InjectObjects('MyObjects', np.zeros((10, 10), int))
     io.module_num = 2
     moi = MOI.MeasureObjectIntensity()
     moi.images[0].name.value = 'MyImage'
     moi.objects[0].name.value = 'MyObjects'
     moi.module_num = 3
     pipeline = P.Pipeline()
     pipeline.add_listener(self.error_callback)
     pipeline.add_module(ii)
     pipeline.add_module(io)
     pipeline.add_module(moi)
     m = pipeline.run()
     for category, features in ((MOI.INTENSITY, MOI.ALL_MEASUREMENTS),
                                (MOI.C_LOCATION, MOI.ALL_LOCATION_MEASUREMENTS)):
         for meas_name in features:
             feature_name = "%s_%s_%s" % (category, meas_name, 'MyImage')
             data = m.get_current_measurement('MyObjects', feature_name)
             self.assertEqual(np.product(data.shape), 0, "Got data for feature %s" % feature_name)
         self.features_and_columns_match(m, moi)