Exemple #1
0
 def kmeans(self, pixelcluster=True):
     '''
     calculates kmeans centers for the cob from the centers of the kernels it contains
     '''
     if pixelcluster == True:
         pixellist = []
         for kernel in self.kernellist:
             pixellist.extend(kernel.pixellist)
         kmeans = Kernel.KMeans(n_clusters=2).fit(pixellist)
     else:
         kmeans = Kernel.KMeans(n_clusters=2).fit(self.kernelcenters)
     meanc1 = kmeans.cluster_centers_[0].tolist()
     meanc2 = kmeans.cluster_centers_[1].tolist()
     sizec1 = 0
     sizec2 = 0
     kernelclusters = []
     for kernel in self.kernellist:
         for cluster in kernel.clusters:
             kernelclusters.append(cluster)
     for label, cluster in zip(kmeans.labels_, kernelclusters):
         if label == 0:
             sizec1 += cluster[0]
         elif label == 1:
             sizec2 += cluster[0]
     self.clusters.append([sizec1, meanc1])
     self.clusters.append([sizec2, meanc2])
 def kmeans(self):
     '''
     calculates kmeans centers for the repline from the centers of the cobs it contains
     '''
     if len(self.coblist) > 1:
         allkernelsizes = []
         self.allkernelclusters = []
         for cob in self.coblist:
             for kernel in cob.kernellist:
                 for cluster in kernel.clusters:
                     allkernelsizes.append(cluster[0])
                     self.allkernelclusters.append(cluster[1])
         kmeans = Kernel.KMeans(n_clusters=2).fit(self.allkernelclusters)
         meanc1 = kmeans.cluster_centers_[0].tolist()
         meanc2 = kmeans.cluster_centers_[1].tolist()
         sizec1 = 0
         sizec2 = 0
         for label, size in zip(kmeans.labels_, allkernelsizes):
             if label == 0:
                 sizec1 += size
             elif label == 1:
                 sizec2 += size
         self.clusters.append([sizec1, meanc1])
         self.clusters.append([sizec2, meanc2])
         self.checkdistance()
     else:
         self.segregating = self.coblist[0].segregating
         self.clusters = self.coblist[0].clusters