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
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
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
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
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
def get_img(self): daq.CCDTrig_run(self.handleA,self.handleB) self.ccd.WaitForNewData() self.data[:,:] = self.ccd.images