Ejemplo n.º 1
0
	def run(self, ips, imgs, para = None):
		balls, ids, rs, graph = [], [], [], ips.data
		for idx in graph.nodes():
			ids.append(idx)
			balls.append(graph.node[idx]['o'])
		xs, ys, zs = [], [], []
		lxs, lys, lzs = [], [], []
		for (s, e) in graph.edges():
			eds = graph[s][e]
			st, ed = graph.node[s]['o'], graph.node[e]['o']
			lxs.append([st[0],ed[0]])
			lys.append([st[1],ed[1]])
			lzs.append([st[2],ed[2]])
			for i in eds:
				pts = eds[i]['pts']
				xs.append(pts[:,0])
				ys.append(pts[:,1])
				zs.append(pts[:,2])

		rs = [para['r']] * len(balls)
		cs = tuple(np.array(para['ncolor'])/255.0)
		vts, fs, ns, cs = myvi.build_balls(balls, rs, cs)
		self.frame.viewer.add_surf_asyn('balls', vts, fs, ns, cs)

		vts, fs, pos, h, color = myvi.build_marks(['ID:%s'%i for i in ids], balls, para['r'], para['r'], (1,1,1))
		self.frame.viewer.add_mark_asyn('txt', vts, fs, pos, h, color)

		cs = tuple(np.array(para['lcolor'])/255.0)
		vts, fs, ns, cs = myvi.build_lines(xs, ys, zs, cs)
		self.frame.viewer.add_surf_asyn('paths', vts, fs, ns, cs, mode='grid')
		vts, fs, ns, cs = myvi.build_lines(lxs, lys, lzs, (0,1,0))
		self.frame.viewer.add_surf_asyn('lines', vts, fs, ns, cs, mode='grid')

		self.frame = None
Ejemplo n.º 2
0
    def run(self, para=None):
        os = np.random.rand(30).reshape((-1, 3))
        rs = np.random.rand(10) / 5
        cs = (np.random.rand(10) * 255).astype(np.uint8)
        cs = myvi.linear_color('jet')[cs] / 255

        vts, fs, ns, cs = myvi.build_balls(os, rs, cs)
        manager = myvi.Manager()
        manager.add_surf('balls', vts, fs, ns, cs)
        myvi.Frame3D(IPy.curapp, 'Random Balls Demo', manager).Show()
Ejemplo n.º 3
0
 def run(self, ips, imgs, para=None):
     num, r = para['num'], para['r']
     if ips.roi != None: pts = ips.img[ips.get_msk()]
     else: pts = ips.img.reshape((-1, 3))
     pts = pts[::len(pts) // num]
     vts, fs, ns, cs = myvi.build_balls(pts,
                                        np.ones(len(pts)) * r, pts / 255)
     self.frame.viewer.add_surf_asyn(para['name'], vts, fs, ns, cs)
     (r1, g1, b1), (r2, g2, b2) = (0, 0, 0), (1, 1, 1)
     rs = (r1, r2, r2, r1, r1, r1, r1, r1, r1, r2, r2, r1, r2, r2, r2, r2)
     gs = (g1, g1, g1, g1, g1, g2, g2, g1, g2, g2, g2, g2, g2, g1, g1, g2)
     bs = (b1, b1, b2, b2, b1, b1, b2, b2, b2, b2, b1, b1, b1, b1, b2, b2)
     vts, fs, ns, cs = myvi.build_cube((0, 0, 0), (255, 255, 255))
     cs = list(zip(rs, gs, bs))
     self.frame.viewer.add_surf_asyn('cube', vts, fs, ns, cs, mode='grid')
     self.frame.Raise()
     self.frame = None
Ejemplo n.º 4
0
    def run(self, ips, imgs, para=None):
        dis = ImageManager.get(para['dis']).imgs
        balls, ids, rs, graph = [], [], [], ips.data
        for idx in graph.nodes():
            ids.append(idx)
            balls.append(graph.node[idx]['o'])

        xs, ys, zs = [], [], []
        v1s, v2s = [], []
        for (s, e) in graph.edges():
            eds = graph[s][e]
            st, ed = graph.node[s]['o'], graph.node[e]['o']
            v1s.append(st)
            v2s.append(ed)
            for i in eds:
                pts = eds[i]['pts']
                xs.append(pts[:, 0])
                ys.append(pts[:, 1])
                zs.append(pts[:, 2])
        rs1 = dis[list(np.array(v1s).astype(np.int16).T)]
        rs2 = dis[list(np.array(v2s).astype(np.int16).T)]
        rs1 = list(np.clip(rs1, 2, 1e4) * 0.5)
        rs2 = list(np.clip(rs2, 2, 1e4) * 0.5)
        rs = dis[list(np.array(balls).astype(np.int16).T)]
        rs = list(np.clip(rs, 2, 1e4))
        cs = tuple(np.array(para['ncolor']) / 255.0)
        vts, fs, ns, cs = myvi.build_balls(balls, rs, cs)
        self.frame.viewer.add_surf_asyn('balls', vts, fs, ns, cs)
        meansize = sum(rs) / len(rs)
        vts, fs, pos, h, color = myvi.build_marks(['ID:%s' % i for i in ids],
                                                  balls, rs, meansize,
                                                  (1, 1, 1))
        self.frame.viewer.add_mark_asyn('txt', vts, fs, pos, h, color)

        css = tuple(np.array(para['lcolor']) / 255.0)
        vts, fs, ns, cs = myvi.build_lines(xs, ys, zs, css)
        self.frame.viewer.add_surf_asyn('paths', vts, fs, ns, cs, mode='grid')
        #vts, fs, ns, cs = myvi.build_lines(lxs, lys, lzs, (0,1,0))
        vts, fs, ns, cs = myvi.build_arrows(v1s, v2s, rs1, rs2, 0, 0, css)
        self.frame.viewer.add_surf_asyn('lines', vts, fs, ns, cs)
        self.frame.Raise()
        self.frame = None