ImagePlus: a class to make operation more flexible
| 11 | if imgs[0].dtype == np.complex128:return 'complex' |
| 12 | |
| 13 | class ImagePlus: |
| 14 | """ImagePlus: a class to make operation more flexible """ |
| 15 | def __init__(self, imgs, title=None, is3d=False): |
| 16 | self.set_title(title) |
| 17 | self.snap = None |
| 18 | self.cur = 0 |
| 19 | self.dirty = False |
| 20 | self.scrchanged = False |
| 21 | self.roi = None |
| 22 | self.mark = None |
| 23 | self.msk = None |
| 24 | self.mskmode = None |
| 25 | self.lut = ColorManager.get_lut('grays') |
| 26 | self.backimg = None |
| 27 | self.backmode = (0.5, 'Mean') |
| 28 | self.tool = None |
| 29 | self.data = None |
| 30 | self.info = {} |
| 31 | self.unit = (1, 'pix') |
| 32 | self.range = (0, 255) |
| 33 | self.set_imgs(imgs) |
| 34 | |
| 35 | def update(self): self.dirty = True |
| 36 | |
| 37 | def set_title(self, title): |
| 38 | self.title = ImageManager.name(title) |
| 39 | |
| 40 | def set_imgs(self, imgs): |
| 41 | self.is3d = not isinstance(imgs, list) |
| 42 | self.scrchanged = True |
| 43 | self.snap = None |
| 44 | self.imgs = imgs |
| 45 | self.height, self.width = self.size = self.imgs[0].shape[:2] |
| 46 | self.imgtype = get_img_type(self.imgs) |
| 47 | self.channels = 1 if self.imgs[0].ndim==2 else self.imgs[0].shape[2] |
| 48 | self.dtype = self.imgs[0].dtype |
| 49 | |
| 50 | if self.dtype == np.uint8: |
| 51 | self.range = (0, 255) |
| 52 | else: self.range = self.get_updown() |
| 53 | |
| 54 | def get_updown(self): |
| 55 | arr = np.array(([(i.min(),i.max()) for i in self.imgs])) |
| 56 | print('range', arr[:,0].min(), arr[:,1].max()) |
| 57 | return arr[:,0].min(), arr[:,1].max() |
| 58 | |
| 59 | def get_imgtype(self):return self.imgtype |
| 60 | |
| 61 | def get_nslices(self):return len(self.imgs) |
| 62 | |
| 63 | def get_nchannels(self):return self.channels |
| 64 | |
| 65 | def set_cur(self, n): |
| 66 | if n>=0 and n<len(self.imgs):self.cur=n |
| 67 | |
| 68 | def get_nbytes(self): |
| 69 | return self.imgs[0].nbytes * len(self.imgs) |
| 70 |
no outgoing calls
no test coverage detected