Beispiel #1
0
    def step_06_third_clustering_by_hamming_distance(self):
        from uuid import UUID

        def distance_hamming_group(g1, g2):
            distances = [
                img1.pd_hamming_distance(img2) for img1 in g1.members
                for img2 in g2.members
            ]
            return min(distances)

        group_cnt = 0
        for group1 in self.result:
            img = Image()
            img.phash = UUID(b'0' * 32)
            img.dhash = 0
            m_value = Group()
            m_value.members = [img]
            cluster = Clustering(group1, IMG_PD_HDIST_THREASHOLD,
                                 distance_hamming_group, m_value, False)
            cluster.run()
            group1.members = cluster.result
            group_cnt += len(cluster.result)
        print('step_06:group_cnt == %d' % group_cnt)
        return True