def Execute2D(self, w): ## ## Input files /Output folder ## self.filestack = self.ObtainTarget() params = self.ObtainParamsBottomTable(self.obj_args, self.args) output_path = params['Output Folder'] if len(output_path) == 0: print('Output folder unspecified.') return False # Unlock Folder m.UnlockFolder(self.parent.u_info, output_path) for filename in self.filestack: print(filename) output_name = os.path.basename(filename) # input_image = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) input_image = m.imread(filename, flags=cv2.IMREAD_GRAYSCALE) output_image = self.FilterApplication2D(w, input_image) savename = os.path.join(output_path, output_name) flag = m.SaveImage(output_image, savename) print('2D filters were applied!') # Change folder type self.parent.parent.ExecuteCloseFileFolder(output_path) self.parent.parent.OpenFolder(output_path)
def Execute3D(self, w): ## ## Load image ## filestack = self.ObtainTarget() params = self.ObtainParamsBottomTable(self.obj_args, self.args) output_path = params['Output Folder'] if len(output_path) == 0: print('Output folder unspecified.') return False # numz = len(filestack) # size = cv2.imread(filestack[0], cv2.IMREAD_GRAYSCALE).shape check_attribute = m.imread(filestack[0], flags=cv2.IMREAD_GRAYSCALE) tsize = check_attribute.shape tdtype = check_attribute.dtype input_volume = np.zeros([tsize[0], tsize[1], numz], tdtype) print('Loading images ...') for zi, filename in enumerate(filestack): # input_volume[:, :, zi] = cv2.imread(filename, cv2.IMREAD_GRAYSCALE).astype(tdtype) input_volume[:, :, zi] = m.imread(filename, flags=cv2.IMREAD_GRAYSCALE) ## ## 2D/3D filter application ## for i in range(w.count()): item = w.item(i) text = item.text() instance = item.data(Qt.UserRole) params = self.ObtainParamsFilter(instance.args) type = self.fi.get_type(text) cls = self.fi.get_class(text) if type == '2d': for zi in range(numz): input_image = input_volume[:, :, zi] output_image = cls.Filter(self, input_image, params) input_volume[:, :, zi] = output_image elif type == '3d': tmp = cls.Filter(self, input_volume, params) input_volume = tmp.astype(np.uint16) # Unlock Folder m.UnlockFolder(self.parent.u_info, output_path) # Save segmentation print('Saving images ...') for zi, filename in enumerate(filestack): output_name = os.path.basename(filename) savename = os.path.join(output_path, output_name) print("Save: ", savename) flag = m.SaveImage(input_volume[:, :, zi], savename) print('2D/3D filters were applied!') # Change folder type self.parent.parent.ExecuteCloseFileFolder(output_path) self.parent.parent.OpenFolder(output_path)