示例#1
0
 def test_05_01_get_measurements(self):
     '''Test the get_measurements and allied methods'''
     module = F.FlipAndRotate()
     module.output_name.value = OUTPUT_IMAGE
     columns = module.get_measurement_columns(None)
     self.assertEqual(len(columns), 1)
     self.assertEqual(columns[0][0], cpmeas.IMAGE)
     self.assertEqual(columns[0][1], F.M_ROTATION_F % OUTPUT_IMAGE)
     self.assertEqual(columns[0][2], cpmeas.COLTYPE_FLOAT)
     
     categories = module.get_categories(None,cpmeas.IMAGE)
     self.assertEqual(len(categories),1)
     self.assertEqual(categories[0], F.M_ROTATION_CATEGORY)
     self.assertEqual(len(module.get_categories(None,'Foo')), 0)
     
     measurements = module.get_measurements(None, cpmeas.IMAGE, 
                                            F.M_ROTATION_CATEGORY)
     self.assertEqual(len(measurements), 1)
     self.assertEqual(measurements[0], OUTPUT_IMAGE)
     self.assertEqual(len(module.get_measurements(None, cpmeas.IMAGE, 'Foo')), 0)
     self.assertEqual(len(module.get_measurements(None, 'Foo', F.M_ROTATION_CATEGORY)), 0)
示例#2
0
    def run_module(self, image, mask=None, fn=None):
        '''Run the FlipAndRotate module
        
        image - pixel data to be transformed
        mask  - optional mask on the pixel data
        fn    - function with signature, "fn(module)" that will be
                called with the FlipAndRotate module
        returns an Image object containing the flipped/rotated/masked/cropped
        image and the angle measurement.
        '''
        img = cpi.Image(image, mask)
        image_set_list = cpi.ImageSetList()
        image_set = image_set_list.get_image_set(0)
        image_set.add(IMAGE_NAME, img)
        module = F.FlipAndRotate()
        module.image_name.value = IMAGE_NAME
        module.output_name.value = OUTPUT_IMAGE
        module.module_num = 1
        if fn is not None:
            fn(module)
        pipeline = cpp.Pipeline()
        pipeline.add_module(module)

        def error_callback(caller, event):
            self.assertFalse(isinstance(event, cpp.RunExceptionEvent))

        pipeline.add_listener(error_callback)
        measurements = cpmeas.Measurements()
        workspace = cpw.Workspace(pipeline, module, image_set, cpo.ObjectSet(),
                                  measurements, image_set_list)
        module.run(workspace)
        feature = F.M_ROTATION_F % OUTPUT_IMAGE
        self.assertTrue(
            feature in measurements.get_feature_names(cpmeas.IMAGE))
        angle = measurements.get_current_image_measurement(feature)
        output_image = image_set.get_image(OUTPUT_IMAGE)
        return (output_image, angle)