Example #1
0
class IntegralImageTest(unittest.TestCase):


    def setUp(self):
        self.intImage = IntegralImage('../../../../../../trainingdata/faces/faces0001.png', 0)

    def tearDown(self):
        pass


    def test_integral_calculation(self):
        assert self.intImage.integral[1, 1] == self.intImage.original[0, 0]
        assert self.intImage.integral[-1, 1] == np.sum(self.intImage.original[:, 0])
        assert self.intImage.integral[1, -1] == np.sum(self.intImage.original[0, :])
        assert self.intImage.integral[-1, -1] == np.sum(self.intImage.original)
        
    def test_area_sum(self):
        assert self.intImage.get_area_sum((0,0), (1,1)) == self.intImage.original[0, 0]
        assert self.intImage.get_area_sum((0,0), (-1,-1)) == np.sum(self.intImage.original)
Example #2
0
def load_images(path, label):
    images = []
    for _file in os.listdir(path):
        if _file.endswith('.png'):
            images.append(IntegralImage(os.path.join(path, _file), label))
    return images
Example #3
0
 def setUp(self):
     self.intImage = IntegralImage('../../../../../../trainingdata/faces/faces0001.png', 0)
Example #4
0
class Test(unittest.TestCase):
    def setUp(self):
        self.intImage = IntegralImage(
            '../../../../../../trainingdata/faces/faces0001.png', 0)

    def tearDown(self):
        pass

    def test_two_vertical(self):
        feature = HaarLikeFeature(FeatureType.TWO_VERTICAL, (0, 0), 24, 24,
                                  100000, 1)
        left_area = self.intImage.get_area_sum((0, 0), (24, 12))
        right_area = self.intImage.get_area_sum((0, 12), (24, 24))
        expected = 1 if feature.threshold * feature.polarity > left_area - right_area else 0
        assert feature.get_vote(self.intImage) == expected

    def test_two_vertical_fail(self):
        feature = HaarLikeFeature(FeatureType.TWO_VERTICAL, (0, 0), 24, 24,
                                  100000, 1)
        left_area = self.intImage.get_area_sum((0, 0), (24, 12))
        right_area = self.intImage.get_area_sum((0, 12), (24, 24))
        expected = 1 if feature.threshold * -1 > left_area - right_area else 0
        assert feature.get_vote(self.intImage) != expected

    def test_two_horizontal(self):
        feature = HaarLikeFeature(FeatureType.TWO_HORIZONTAL, (0, 0), 24, 24,
                                  100000, 1)
        left_area = self.intImage.get_area_sum((0, 0), (12, 24))
        right_area = self.intImage.get_area_sum((12, 0), (24, 24))
        expected = 1 if feature.threshold * feature.polarity > left_area - right_area else 0
        assert feature.get_vote(self.intImage) == expected

    def test_three_horizontal(self):
        feature = HaarLikeFeature(FeatureType.THREE_HORIZONTAL, (0, 0), 24, 24,
                                  100000, 1)
        left_area = self.intImage.get_area_sum((0, 0), (8, 24))
        middle_area = self.intImage.get_area_sum((8, 0), (16, 24))
        right_area = self.intImage.get_area_sum((16, 0), (24, 24))
        expected = 1 if feature.threshold * feature.polarity > left_area - middle_area + right_area else 0
        assert feature.get_vote(self.intImage) == expected

    def test_three_vertical(self):
        feature = HaarLikeFeature(FeatureType.THREE_VERTICAL, (0, 0), 24, 24,
                                  100000, 1)
        left_area = self.intImage.get_area_sum((0, 0), (24, 8))
        middle_area = self.intImage.get_area_sum((0, 8), (24, 16))
        right_area = self.intImage.get_area_sum((0, 16), (24, 24))
        expected = 1 if feature.threshold * feature.polarity > left_area - middle_area + right_area else 0
        assert feature.get_vote(self.intImage) == expected

    def test_four(self):
        feature = HaarLikeFeature(FeatureType.THREE_HORIZONTAL, (0, 0), 24, 24,
                                  100000, 1)
        top_left_area = self.intImage.get_area_sum((0, 0), (12, 12))
        top_right_area = self.intImage.get_area_sum((12, 0), (24, 12))
        bottom_left_area = self.intImage.get_area_sum((0, 12), (12, 24))
        bottom_right_area = self.intImage.get_area_sum((12, 12), (24, 24))
        expected = 1 if feature.threshold * feature.polarity > top_left_area - top_right_area - bottom_left_area + bottom_right_area else 0
        assert feature.get_vote(self.intImage) == expected
class Test(unittest.TestCase):

    def setUp(self):
        self.intImage = IntegralImage('../../../../../../trainingdata/faces/faces0001.png', 0)
    
    def tearDown(self):
        pass


    def test_two_vertical(self):
        feature = HaarLikeFeature(FeatureType.TWO_VERTICAL, (0,0), 24, 24, 100000, 1);
        left_area = self.intImage.get_area_sum((0,0), (24, 12))
        right_area = self.intImage.get_area_sum((0,12), (24,24))
        expected = 1 if feature.threshold * feature.polarity > left_area - right_area else 0
        assert feature.get_vote(self.intImage) == expected
        
    def test_two_vertical_fail(self):
        feature = HaarLikeFeature(FeatureType.TWO_VERTICAL, (0,0), 24, 24, 100000, 1);
        left_area = self.intImage.get_area_sum((0,0), (24, 12))
        right_area = self.intImage.get_area_sum((0,12), (24,24))
        expected = 1 if feature.threshold * -1 > left_area - right_area else 0
        assert feature.get_vote(self.intImage) != expected 

    def test_two_horizontal(self):
        feature = HaarLikeFeature(FeatureType.TWO_HORIZONTAL, (0,0), 24, 24, 100000, 1);
        left_area = self.intImage.get_area_sum((0,0), (12, 24))
        right_area = self.intImage.get_area_sum((12,0), (24,24))
        expected = 1 if feature.threshold * feature.polarity > left_area - right_area else 0
        assert feature.get_vote(self.intImage) == expected
        
    def test_three_horizontal(self):
        feature = HaarLikeFeature(FeatureType.THREE_HORIZONTAL, (0,0), 24, 24, 100000, 1);
        left_area = self.intImage.get_area_sum((0,0), (8, 24))
        middle_area = self.intImage.get_area_sum((8,0), (16,24))
        right_area = self.intImage.get_area_sum((16,0), (24,24))
        expected = 1 if feature.threshold * feature.polarity > left_area - middle_area + right_area else 0
        assert feature.get_vote(self.intImage) == expected
        
    def test_three_vertical(self):
        feature = HaarLikeFeature(FeatureType.THREE_VERTICAL, (0,0), 24, 24, 100000, 1);
        left_area = self.intImage.get_area_sum((0,0), (24, 8))
        middle_area = self.intImage.get_area_sum((0,8), (24,16))
        right_area = self.intImage.get_area_sum((0,16), (24,24))
        expected = 1 if feature.threshold * feature.polarity > left_area - middle_area + right_area else 0
        assert feature.get_vote(self.intImage) == expected
        
    def test_four(self):
        feature = HaarLikeFeature(FeatureType.THREE_HORIZONTAL, (0,0), 24, 24, 100000, 1);
        top_left_area = self.intImage.get_area_sum((0,0), (12, 12))
        top_right_area = self.intImage.get_area_sum((12,0), (24,12))
        bottom_left_area = self.intImage.get_area_sum((0,12), (12,24))
        bottom_right_area = self.intImage.get_area_sum((12,12), (24,24))
        expected = 1 if feature.threshold * feature.polarity > top_left_area - top_right_area - bottom_left_area + bottom_right_area else 0
        assert feature.get_vote(self.intImage) == expected