Пример #1
0
 def test_11_02_invert_binary_invert(self):
     #
     # Regression for issue #1329
     #
     r = np.random.RandomState()
     r.seed(1102)
     m = cpmeas.Measurements()
     pixel_data = r.uniform(size=(20, 20)) > .5
     m.add("inputimage", cpi.Image(pixel_data))
     module = I.ImageMath()
     module.images[0].image_name.value = "inputimage"
     module.output_image_name.value = "intermediateimage"
     module.operation.value = I.O_INVERT
     module.module_num = 1
     pipeline = cpp.Pipeline()
     pipeline.add_module(module)
     module = I.ImageMath()
     module.images[0].image_name.value = "intermediateimage"
     module.output_image_name.value = "outputimage"
     module.operation.value = I.O_INVERT
     module.module_num = 2
     pipeline = cpp.Pipeline()
     workspace = cpw.Workspace(pipeline, module, m, None, m, None)
     for module in pipeline.modules():
         module.run(workspace)
     np.testing.assert_array_equal(
         pixel_data, m.get_image("inputimage").pixel_data > .5)
Пример #2
0
 def test_11_01_add_and_do_nothing(self):
     #
     # Regression for issue #1333 - add one, do nothing, input image
     # is changed
     #
     r = np.random.RandomState()
     r.seed(1101)
     m = cpmeas.Measurements()
     pixel_data = r.uniform(size=(20, 20))
     m.add("inputimage", cpi.Image(pixel_data))
     module = I.ImageMath()
     module.images[0].image_name.value = "inputimage"
     module.output_image_name.value = "outputimage"
     module.operation.value = I.O_NONE
     module.addend.value = 0.5
     module.module_num = 1
     pipeline = cpp.Pipeline()
     pipeline.add_module(module)
     workspace = cpw.Workspace(pipeline, module, m, None, m, None)
     module.run(workspace)
     np.testing.assert_array_almost_equal(
         pixel_data, m.get_image("inputimage").pixel_data)
    def run_imagemath(self, images, modify_module_fn=None, measurement=None):
        '''Run the ImageMath module, returning the image created

        images - a list of dictionaries. The dictionary has keys:
                 pixel_data - image pixel data
                 mask - mask for image
                 cropping - cropping mask for image
        modify_module_fn - a function of the signature, fn(module)
                 that allows the test to modify the module.
        measurement - an image measurement value
        '''
        image_set_list = cpi.ImageSetList()
        image_set = image_set_list.get_image_set(0)
        module = I.ImageMath()
        module.module_num = 1
        for i, image in enumerate(images):
            pixel_data = image['pixel_data']
            mask = image.get('mask', None)
            cropping = image.get('cropping', None)
            if i >= 2:
                module.add_image()
            name = 'inputimage%s' % i
            module.images[i].image_name.value = name
            img = cpi.Image(pixel_data, mask=mask, crop_mask=cropping)
            image_set.add(name, img)
        module.output_image_name.value = 'outputimage'
        if modify_module_fn is not None:
            modify_module_fn(module)
        pipeline = cpp.Pipeline()
        pipeline.add_module(module)
        measurements = cpmeas.Measurements()
        if measurement is not None:
            measurements.add_image_measurement(MEASUREMENT_NAME,
                                               str(measurement))
        workspace = cpw.Workspace(pipeline, module, image_set, cpo.ObjectSet(),
                                  measurements, image_set_list)
        module.run(workspace)
        return image_set.get_image('outputimage')