コード例 #1
0
    def Stack_Sectioning(self,start,stop,step=0.2, verbose=True):
        no = int((stop-start)/step)+1
        pos = start
        xs = self.ccd.image_size[0]
        ys = self.ccd.image_size[1]
#        psz = qx.getordernum()
        psz = 3
        self.data = N.zeros((psz*no,xs,ys), dtype=N.uint16)
        self.ccd.SetShutterMode(1)
        q = self.ccd.Acquire()
        self.pol.MoveAbs(0)
        time.sleep(0.4)
        for p in range(no):
            self.zst.setPositionf(pos)
            for m in range(psz):
                qx.selecteorder(15+m)
                qx.activate()
                time.sleep(0.02)
                daq.CCDTrig_run(self.handleA,self.handleB)
                q = self.ccd.WaitForNewData()
                print (p,q)
                self.data[psz*p + m] = self.ccd.images
                qx.deactivate()
                time.sleep(0.02)
            pos += step
        self.ccd.AbortAcquisition()
        self.ccd.SetShutterMode(2)
        if verbose:
            T.imshow(self.data, vmin=self.data.min(), vmax=self.data.max())
        cur_pos = self.zst.getPosition()
        self.stackTags(cur_pos,start,stop,step,function='Z-Stack patterns')
        return True
コード例 #2
0
 def StackExt(self,start,stop,step=0.2,verbose=True):
     init_loc=self.zst.getPosition()
     no = int((stop-start)/step)+1
     pos = start
     xs = self.ccd.image_size[0]
     ys = self.ccd.image_size[1]
     self.data = N.zeros((no,xs,ys), N.uint16)
     self.ccd.SetShutterMode(1)
     q = self.ccd.Acquire()
     time.sleep(0.2) # was 0.05
     for p in range(no):
         self.zst.setPositionf(pos)
         daq.CCDTrig_run(self.handleA,self.handleB)
         q = self.ccd.WaitForNewData()
         print(p,q)
         self.data[p] = self.ccd.images
         pos += step
         time.sleep(self.delay)
     self.ccd.AbortAcquisition()
     self.ccd.SetShutterMode(2)
     if verbose:
         T.imshow(self.data, vmin=self.data.min(), vmax=self.data.max())
     cur_pos = self.prior.getPosition()
     self.stackTags(cur_pos[0],cur_pos[1],start,stop,step,function='Z-Stack')
     self.zst.setPositionf(init_loc)
     return True
コード例 #3
0
 def singleSnapExt(self,verbose=True):
     xs = self.ccd.image_size[0]
     ys = self.ccd.image_size[1]
     self.data = N.zeros((xs,ys), dtype=N.uint16)
     self.ccd.SetShutterMode(1)
     self.ccd.Acquire()
     time.sleep(0.2) # was 0.05
     daq.CCDTrig_run(self.handleA,self.handleB)
     self.ccd.WaitForNewData()
     self.data[:,:] = self.ccd.images
     self.ccd.AbortAcquisition()
     self.ccd.SetShutterMode(2)
     if verbose:
         T.imshow(self.data, vmin=self.data.min(), vmax=self.data.max())
     cur_pos = self.prior.getPosition()
     self.stackTags(cur_pos[0],cur_pos[1],self.zst.getPosition(),0,0,function='Single snap')
     return True
コード例 #4
0
    def si_2d_pattern(self,start,stop,step=0.2, verbose=True):
        rots = self.pol_array
        no = int((stop-start)/step)+1
        pos = start
        xs = self.ccd.image_size[0]
        ys = self.ccd.image_size[1]
#        psz = qx.getordernum()
        psz = 9
        phs = int(psz/3)
        self.data = N.zeros((psz*no,xs,ys), dtype=N.uint16)
#        self.slm.SLM_on()
        self.ccd.SetShutterMode(1)
        q = self.ccd.Acquire()
        time.sleep(0.1) # was 0.2,  changed 20141114
        for p in range(no):
            self.zst.setPositionf(pos)
            for w in range(3):
                self.pol.MoveAbs(rots[w])
                time.sleep(0.8)
                for m in range(phs):
                    #self.pr.setVoltage(rots[m])
                    qx.selecteorder(19+phs*w+m)
                    qx.activate()
                    time.sleep(0.02)
                    #print self.pr.getVoltage()
                    #self.dmd.set_image(patt)
                    #self.slm.show_next_patt()
                    #self.slm.show_patt(m)
                    daq.CCDTrig_run(self.handleA,self.handleB)
                    q = self.ccd.WaitForNewData()
                    print (p,q)
                    self.data[psz*p + 5*w + m] = self.ccd.images
                    qx.deactivate()
#                    time.sleep(0.02)
            pos += step
        self.ccd.AbortAcquisition()
        self.ccd.SetShutterMode(2)
#        self.slm.SLM_off()
        #self.pr.setVoltage(0.0)
        if verbose:
            T.imshow(self.data, vmin=self.data.min(), vmax=self.data.max())
        cur_pos = self.zst.getPosition()
        self.stackTags(cur_pos,start,stop,step,function='Z-Stack patterns')
        return True        
コード例 #5
0
    def Image_Patterns(self, angle=0, no=200, pol=0, verbose=True):
        pos = self.zst.getPosition()
        xs = self.ccd.image_size[0]
        ys = self.ccd.image_size[1]
#        psz = self.slm.ni
        psz = 5
        self.data = N.zeros((psz*no,xs,ys), dtype=N.uint16)
#        self.slm.SLM_on()
        self.ccd.SetShutterMode(1)
        q = self.ccd.Acquire()
        time.sleep(0.01) # was 0.2,  changed 20141114
        self.zst.setPositionf(pos)
        for p in range(no):  
            for m in range(angle*5,psz+angle*5):
                #self.pr.setVoltage(rots[m])
                self.pol.MoveAbs(pol)
                qx.selecteorder(m)
                qx.activate()
                #time.sleep(.50)
                #print self.pr.getVoltage()
                #self.dmd.set_image(patt)
                #self.slm.show_next_patt()
#                self.slm.show_patt(m)
                daq.CCDTrig_run(self.handleA,self.handleB)
                q = self.ccd.WaitForNewData()
                print (p,q)
                self.data[psz*p+m%5] = self.ccd.images
                qx.deactivate()
                time.sleep(self.delay)
        self.ccd.AbortAcquisition()
        self.ccd.SetShutterMode(2)
#        self.slm.SLM_off()
        #self.pr.setVoltage(0.0)
        if verbose:
            T.imshow(self.data, vmin=self.data.min(), vmax=self.data.max())
        cur_pos = self.prior.getPosition()
        self.stackTags(cur_pos[0],cur_pos[1],function='Z-Stack patterns')
        return True
コード例 #6
0
 def get_img(self):
     daq.CCDTrig_run(self.handleA,self.handleB)
     self.ccd.WaitForNewData()
     self.data[:,:] = self.ccd.images