当前位置: 首页>>代码示例>>Python>>正文


Python Window.setIndex方法代码示例

本文整理汇总了Python中window.Window.setIndex方法的典型用法代码示例。如果您正苦于以下问题:Python Window.setIndex方法的具体用法?Python Window.setIndex怎么用?Python Window.setIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在window.Window的用法示例。


在下文中一共展示了Window.setIndex方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Clusters

# 需要导入模块: from window import Window [as 别名]
# 或者: from window.Window import setIndex [as 别名]

#.........这里部分代码省略.........
        outsideROI = []
        #  Only plot the points that are at least 1 pixel away from the next higher point, because pixels this close
        #  are guaranteed to be clustered together.
        for i in np.arange(len(self.higher_pts))[self.higher_pts[:, 0] > 1]:
            y = np.log(self.higher_pts[i][0])  # smallest distance to higher point
            x = self.higher_pts[i][2]  # density
            if self.vb.currentROI.contains(x, y):
                centers.append(i)
            else:
                outsideROI.append(i)
        higher_pts2 = self.higher_pts[:, 1].astype(np.int)
        points=[Point(i, self.idxs) for i in np.arange(len(higher_pts2))]
        loop=np.arange(len(higher_pts2))
        loop=np.delete(loop,centers)
        for i in loop:
            if higher_pts2[i] != i:
                points[higher_pts2[i]].children.append(points[i])
        self.scatterPlot.clear()
        pts_outsideROI=np.array([self.higher_pts[outsideROI,2], np.log(self.higher_pts[outsideROI,0])]).T
        self.scatterPlot.addPoints(pos=pts_outsideROI, brush=pg.mkBrush([0,0,255,255]))
        pts_centers_with_large_cluster=np.array([self.higher_pts[centers, 2], np.log(self.higher_pts[centers,0])]).T
        self.scatterPlot.addPoints(pos=pts_centers_with_large_cluster, brush=pg.mkBrush([0, 255, 0, 255]))
        qApp.processEvents()
        if len(centers) == 0:
            self.puffAnalyzer.generatingClusterMovie = False
            return None

        self.puffAnalyzer.algorithm_gui.tabWidget.setCurrentIndex(2)
        self.clusters=[]
        for i, center in enumerate(centers):
            descendants=points[center].getDescendants()
            cluster=[d.idx for d in descendants]
            cluster=np.array(cluster+[center])
            self.clusters.append(cluster)
        '''
        for i, cluster in enumerate(self.clusters):
            pos = self.idxs[cluster]
            mean_pos = np.mean(pos, 0)
            values = np.exp(self.puffAnalyzer.blurred_window.image[pos[:, 0], pos[:, 1], pos[:, 2]])
            mean_pos = np.dot(values, pos) / np.sum(values)
            distances_from_center = np.sqrt(np.sum((pos[:, 1:] - mean_pos[1:]) ** 2, 1))
            times_from_center = np.abs(pos[:, 0] - mean_pos[0])
            pos_to_keep = np.logical_and(times_from_center <= self.puffAnalyzer.udc['maxPuffDiameter'],
                                         distances_from_center <= self.puffAnalyzer.udc['maxPuffLen'])
            self.clusters[i] = cluster[pos_to_keep]
        '''
        for i in np.arange(len(self.clusters), 0, -1)-1:
            if len(self.clusters[i])==0:
                del self.clusters[i]
        
        self.cluster_im = self.make_cluster_im()
        self.cluster_movie=Window(self.cluster_im, 'Cluster Movie')
        self.cluster_movie.link(self.puffAnalyzer.blurred_window)
        
        sizes=np.array([len(cluster) for cluster in self.clusters])
        sizes_bin=np.histogram(sizes,bins=np.arange(np.max(sizes)+1))
        self.p1=pg.PlotWidget()
        self.p1_curve = pg.PlotCurveItem(sizes_bin[1], sizes_bin[0], stepMode=True, fillLevel=0, brush=(0, 0, 255, 80))
        self.p1.addItem(self.p1_curve)
        self.thresh_line = pg.InfiniteLine(pos=0,movable=True)         # Add the LinearRegionItem to the ViewBox, but tell the ViewBox to exclude this item when doing auto-range calculations.
        self.p1.addItem(self.thresh_line)
        
        layout=self.puffAnalyzer.algorithm_gui.filter_clusters_layout
        for i in reversed(range(layout.count())):
            layout.itemAt(i).widget().setParent(None)
        layout.addWidget(self.p1)
        
        self.set_thresh_button = self.puffAnalyzer.algorithm_gui.threshold_button_2
        self.set_thresh_button.clicked.connect(self.set_threshold)
        self.puffAnalyzer.algorithm_gui.nClusters.setText('Number of Clusters: {}'.format(len(self.clusters)))
        self.puffAnalyzer.generatingClusterMovie=False
        
    def make_cluster_im(self):
        print('Generating Cluster Movie')
        mt,mx,my=self.movieShape
        try:
            cluster_im=np.zeros((mt,mx,my,4),dtype=np.float16)
        except MemoryError:
            print('There is not enough memory to create the image of clusters (error in function clusters.make_cluster_im).')
            return None
        for i, cluster in enumerate(self.clusters):
            color = cmap(int(((i%5)*255./6)+np.random.randint(255./12)))
            pos = self.idxs[cluster]
            cluster_im[pos[:, 0], pos[:, 1], pos[:, 2], :] = color
        return cluster_im
        
    def set_threshold(self):
        threshold = self.thresh_line.value()
        n = 0
        for i, cluster in enumerate(self.clusters):
            if len(cluster) > threshold:
                n += 1
                color=cmap(int(((n % 5)*255./6)+np.random.randint(255./12)))
            else:
                color = np.zeros(4)
            pos = self.idxs[cluster]
            self.cluster_im[pos[:, 0], pos[:, 1], pos[:,2], :] = color
        self.puffAnalyzer.algorithm_gui.nClusters.setText('Number of Clusters: {}'.format(n))
        self.cluster_movie.setIndex(self.cluster_movie.currentIndex)  # This forces the movie to refresh
        self.puffAnalyzer.algorithm_gui.tabWidget.setCurrentIndex(3)
开发者ID:kyleellefsen,项目名称:detect_puffs,代码行数:104,代码来源:clusters.py


注:本文中的window.Window.setIndex方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。