Beispiel #1
0
    def readFramesFromBuffer(self, img_bg=None):
        sys.path.append(mm_directory)
        import MMCorePy
        md = MMCorePy.Metadata()
        elapsed_frame_time = []

        frame_list = np.zeros(
            (self.getBufferSizeFrames(), self.getImageHeight(),
             self.getImageWidth()),
            dtype=np.uint16)
        for img_idx in range(frame_list.shape[0]):
            if img_bg is not None:
                frame_list[img_idx, :, :] = np.max(
                    self.mmc.popNextImageMD(md).copy().astype(np.int) -
                    img_bg).astype(np.uint16)
            else:
                frame_list[img_idx, :, :] = self.mmc.popNextImageMD(md).copy()
            elapsed_frame_time.append(
                float(md.GetSingleTag("ElapsedTime-ms").GetValue()))

        elapsed_frame_time = np.asarray(elapsed_frame_time)
        elapsed_frame_time = elapsed_frame_time - np.min(elapsed_frame_time)

        return (frame_list, elapsed_frame_time.tolist())
# GetImageBufferSize() = img_.Width() * img_.Height() * GetImageBytesPerPixel()
print('getBytesPerPixel: %s') % mmc.getBytesPerPixel()
print('getImageBitDepth: %s') % mmc.getImageBitDepth()

print("""
                        * Acquisition test *
    """)

mmc.startContinuousSequenceAcquisition(1)
# Видимо буфер инициализируется только при захвате.
print('getBufferTotalCapacity: %s') % mmc.getBufferTotalCapacity()
print('getBufferFreeCapacity: %s') % mmc.getBufferFreeCapacity()

print('getExposure %s') % mmc.getExposure()
mmc.setProperty(devlabel, 'Exposure', 15)
print('getExposure %s') % mmc.getExposure()

print("""
                        * Frame metadata *
    """)
md = MMCorePy.Metadata()
img = mmc.getLastImageMD(0, 0, md)
# print(img.shape)
print(md.Dump())

print("""
                        * Reset all *
    """)
mmc.stopSequenceAcquisition()
mmc.reset()