Example #1
0
    def test_Homogeneous(self):
        """Checks the return value for a homogeneous region."""
        # Create label image with only one region
        label_image = scipy.zeros(2 * 2 * 2, dtype=scipy.int8).reshape(2, 2, 2)

        # Create original image with only one intensity value
        original_image = scipy.zeros(2 * 2 * 2,
                                     dtype=scipy.int8).reshape(2, 2, 2)

        # Initialize object
        statistics = LabelImageStatistics(label_image, original_image)

        # Check created intensity distribution
        intensity_distributions = statistics.get_intensity_distributions()
        self.assertEqual(len(intensity_distributions), 1)
        self.assertEqual(intensity_distributions[0], 0)

        intensity_distribution_histogram = statistics.get_intensity_distribution_histogram(
        )
        self.assertEqual(
            len(intensity_distribution_histogram[0]),
            statistics.get_intensity_distribution_histogram_width())
        self.assertEqual(
            len(intensity_distribution_histogram[1]),
            statistics.get_intensity_distribution_histogram_width() + 1)
        self.assertEqual(
            intensity_distribution_histogram[0]
            [statistics.get_intensity_distribution_histogram_width() / 2], 1)
        self.assertEqual(intensity_distribution_histogram[0].max(), 1)
        self.assertEqual(intensity_distribution_histogram[0].min(), 0)
Example #2
0
    def test_Basic(self):
        """Test the case of a region with only one intensity value and some basic return values."""
        # Create label image with only one region
        label_image = scipy.zeros(2 * 2 * 2, dtype=scipy.int8).reshape(2, 2, 2)

        # Create original image with only one intensity value
        original_image = scipy.zeros(2 * 2 * 2,
                                     dtype=scipy.int8).reshape(2, 2, 2)

        # Initialize object
        statistics = LabelImageStatistics(label_image, original_image)

        # Check created intensity distribution
        intensity_distributions = statistics.get_intensity_distributions()
        self.assertEqual(len(intensity_distributions), 1)
        self.assertEqual(intensity_distributions[0], 0)

        intensity_distribution_histogram = statistics.get_intensity_distribution_histogram(
        )
        self.assertEqual(
            len(intensity_distribution_histogram[0]),
            statistics.get_intensity_distribution_histogram_width())
        self.assertEqual(
            len(intensity_distribution_histogram[1]),
            statistics.get_intensity_distribution_histogram_width() + 1)
        self.assertEqual(
            intensity_distribution_histogram[0]
            [statistics.get_intensity_distribution_histogram_width() / 2], 1)
        self.assertEqual(intensity_distribution_histogram[0].max(), 1)
        self.assertEqual(intensity_distribution_histogram[0].min(), 0)

        # Check created size distribution
        sizes = statistics.get_sizes()
        self.assertEqual(len(sizes), 1)
        self.assertEqual(sizes[0], 2 * 2 * 2)

        sizes_histogram = statistics.get_size_histogram()
        self.assertEqual(len(sizes_histogram[0]),
                         statistics.get_size_histogram_width())
        self.assertEqual(len(sizes_histogram[1]),
                         statistics.get_size_histogram_width() + 1)
        self.assertEqual(
            sizes_histogram[0][statistics.get_size_histogram_width() / 2], 1)
        self.assertEqual(sizes_histogram[0].max(), 1)
        self.assertEqual(sizes_histogram[0].min(), 0)

        # Check other statistics values
        self.assertTrue(statistics.labels_are_consecutive())
        self.assertEqual(statistics.get_min_intensity(), 0)
        self.assertEqual(statistics.get_max_intensity(), 0)
        self.assertEqual(statistics.get_min_label(), 0)
        self.assertEqual(statistics.get_max_label(), 0)
        self.assertEqual(statistics.get_label_count(), 1)
 def test_Intensity_1(self):
     """Test a case of distributed intensity values."""
     # Create label image with only one region
     label_image = scipy.zeros(2*2*2, dtype=scipy.int8).reshape(2,2,2)
     
     # Create original image with two equally distibuted intensity value
     original_image = scipy.zeros(2*2*2, dtype=scipy.int8)
     original_image[:4] = -1
     original_image[4:] = 1
     original_image = original_image.reshape(2,2,2)
     
     # Initialize object
     statistics = LabelImageStatistics(label_image, original_image)
     
     # Computed expected result
     i = scipy.array([-1,-1,-1,-1,1,1,1,1])
     h = scipy.histogram(i, statistics._intensity_distribution_local_histogram_width)
     hr = scipy.array(h[0]) / float(h[0].sum())
     g = stats.norm(*stats.norm.fit(i))
     r = abs(hr - g.pdf(h[1][:-1]))
     r *= h[1][-2] - h[1][0]
     r = r.sum()
     
     # Check created intensity distribution
     intensity_distributions = statistics.get_intensity_distributions()
     self.assertEqual(len(intensity_distributions), 1)
     self.assertEqual(intensity_distributions[0], i.std())
     
     intensity_distribution_histogram = statistics.get_intensity_distribution_histogram()
     self.assertEqual(intensity_distribution_histogram[0][statistics.get_intensity_distribution_histogram_width()/2], 1)
     self.assertEqual(intensity_distribution_histogram[0].max(), 1)
     self.assertEqual(intensity_distribution_histogram[0].min(), 0)
     self.assertEqual(intensity_distribution_histogram[1].mean(), i.std())
 def test_Basic(self):
     """Test the case of a region with only one intensity value and some basic return values."""
     # Create label image with only one region
     label_image = scipy.zeros(2*2*2, dtype=scipy.int8).reshape(2,2,2)
     
     # Create original image with only one intensity value
     original_image = scipy.zeros(2*2*2, dtype=scipy.int8).reshape(2,2,2)
     
     # Initialize object
     statistics = LabelImageStatistics(label_image, original_image)
     
     # Check created intensity distribution
     intensity_distributions = statistics.get_intensity_distributions()
     self.assertEqual(len(intensity_distributions), 1)
     self.assertEqual(intensity_distributions[0], 0)
     
     intensity_distribution_histogram = statistics.get_intensity_distribution_histogram()
     self.assertEqual(len(intensity_distribution_histogram[0]), statistics.get_intensity_distribution_histogram_width())
     self.assertEqual(len(intensity_distribution_histogram[1]), statistics.get_intensity_distribution_histogram_width() + 1)
     self.assertEqual(intensity_distribution_histogram[0][statistics.get_intensity_distribution_histogram_width()/2], 1)
     self.assertEqual(intensity_distribution_histogram[0].max(), 1)
     self.assertEqual(intensity_distribution_histogram[0].min(), 0)
     
     # Check created size distribution
     sizes = statistics.get_sizes()
     self.assertEqual(len(sizes), 1)
     self.assertEqual(sizes[0], 2*2*2)
     
     sizes_histogram = statistics.get_size_histogram()
     self.assertEqual(len(sizes_histogram[0]), statistics.get_size_histogram_width())
     self.assertEqual(len(sizes_histogram[1]), statistics.get_size_histogram_width() + 1)
     self.assertEqual(sizes_histogram[0][statistics.get_size_histogram_width()/2], 1)
     self.assertEqual(sizes_histogram[0].max(), 1)
     self.assertEqual(sizes_histogram[0].min(), 0)
     
     # Check other statistics values
     self.assertTrue(statistics.labels_are_consecutive())
     self.assertEqual(statistics.get_min_intensity(), 0)
     self.assertEqual(statistics.get_max_intensity(), 0)
     self.assertEqual(statistics.get_min_label(), 0)
     self.assertEqual(statistics.get_max_label(), 0)
     self.assertEqual(statistics.get_label_count(), 1)
 def test_Homogeneous(self):
     """Checks the return value for a homogeneous region."""
     # Create label image with only one region
     label_image = scipy.zeros(2*2*2, dtype=scipy.int8).reshape(2,2,2)
     
     # Create original image with only one intensity value
     original_image = scipy.zeros(2*2*2, dtype=scipy.int8).reshape(2,2,2)
     
     # Initialize object
     statistics = LabelImageStatistics(label_image, original_image)
     
     # Check created intensity distribution
     intensity_distributions = statistics.get_intensity_distributions()
     self.assertEqual(len(intensity_distributions), 1)
     self.assertEqual(intensity_distributions[0], 0)
     
     intensity_distribution_histogram = statistics.get_intensity_distribution_histogram()
     self.assertEqual(len(intensity_distribution_histogram[0]), statistics.get_intensity_distribution_histogram_width())
     self.assertEqual(len(intensity_distribution_histogram[1]), statistics.get_intensity_distribution_histogram_width() + 1)
     self.assertEqual(intensity_distribution_histogram[0][statistics.get_intensity_distribution_histogram_width()/2], 1)
     self.assertEqual(intensity_distribution_histogram[0].max(), 1)
     self.assertEqual(intensity_distribution_histogram[0].min(), 0)
Example #6
0
    def test_Intensity_1(self):
        """Test a case of distributed intensity values."""
        # Create label image with only one region
        label_image = scipy.zeros(2 * 2 * 2, dtype=scipy.int8).reshape(2, 2, 2)

        # Create original image with two equally distibuted intensity value
        original_image = scipy.zeros(2 * 2 * 2, dtype=scipy.int8)
        original_image[:4] = -1
        original_image[4:] = 1
        original_image = original_image.reshape(2, 2, 2)

        # Initialize object
        statistics = LabelImageStatistics(label_image, original_image)

        # Computed expected result
        i = scipy.array([-1, -1, -1, -1, 1, 1, 1, 1])
        h = scipy.histogram(
            i, statistics._intensity_distribution_local_histogram_width)
        hr = scipy.array(h[0]) / float(h[0].sum())
        g = stats.norm(*stats.norm.fit(i))
        r = abs(hr - g.pdf(h[1][:-1]))
        r *= h[1][-2] - h[1][0]
        r = r.sum()

        # Check created intensity distribution
        intensity_distributions = statistics.get_intensity_distributions()
        self.assertEqual(len(intensity_distributions), 1)
        self.assertEqual(intensity_distributions[0], i.std())

        intensity_distribution_histogram = statistics.get_intensity_distribution_histogram(
        )
        self.assertEqual(
            intensity_distribution_histogram[0]
            [statistics.get_intensity_distribution_histogram_width() / 2], 1)
        self.assertEqual(intensity_distribution_histogram[0].max(), 1)
        self.assertEqual(intensity_distribution_histogram[0].min(), 0)
        self.assertEqual(intensity_distribution_histogram[1].mean(), i.std())