本文整理汇总了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)