def __getitem__(self, idx): # read image image, label = self.data[(idx) % len(self.data)] #A,A_inv = F.compute_norm_mat( image.shape[1], image.shape[0] ) #image = F.equalization(image,A,A_inv) image = utility.to_channels(image, self.num_channels) # read background if self.bbackimage: idxk = random.randint(1, len(self.databack) - 1) back = self.databack[idxk] back = F.resize_image(back, 640, 1024, resize_mode='crop', interpolate_mode=cv2.INTER_LINEAR) back = utility.to_channels(back, self.num_channels) else: back = np.ones((640, 1024, 3), dtype=np.uint8) * 255 if self.generate == 'image': obj = ObjectImageTransform(image) elif self.generate == 'image_and_mask': image_org, image_ilu, mask, h = self.ren.generate(image, back) image_org = utility.to_gray(image_org.astype(np.uint8)) image_org = utility.to_channels(image_org, self.num_channels) image_org = image_org.astype(np.uint8) image_ilu = utility.to_gray(image_ilu.astype(np.uint8)) image_ilu = utility.to_channels(image_ilu, self.num_channels) image_ilu = image_ilu.astype(np.uint8) mask = mask[:, :, 0] mask_t = np.zeros((mask.shape[0], mask.shape[1], 2)) mask_t[:, :, 0] = (mask == 0).astype(np.uint8) # 0-backgraund mask_t[:, :, 1] = (mask == 1).astype(np.uint8) obj_image = ObjectImageTransform(image_org.copy()) obj_data = ObjectImageAndMaskMetadataTransform( image_ilu.copy(), mask_t, np.concatenate( ([label], h), axis=0)) #np.array([label]) else: assert (False) if self.transform_image: obj_image = self.transform_image(obj_image) if self.transform_data: obj_data = self.transform_data(obj_data) x_img, y_mask, y_lab = obj_data.to_value() x_org = obj_image.to_value() return x_org, x_img, y_mask, y_lab
def __getitem__(self, idx): idx = idx % len(self.data) iD, image, prob = self.data[idx] #image = (image[:,:,:3 ]*255).astype( np.uint8 ) #image = (image[:,:, 0 ]*255).astype( np.uint8 ) image = np.stack( (image[:, :, 0], image[:, :, 1] / 2 + image[:, :, 3] / 2, image[:, :, 2] / 2 + image[:, :, 3] / 2), axis=-1) #image = np.stack( ( image[:,:,0], image[:,:,1], image[:,:,2] ), axis=-1 ) #image = utility.to_channels(image, 3) image = (image * 255).astype(np.uint8) #print(image.shape, flush=True ) #print(image.min(), image.max(), flush=True ) #assert(False) obj = ObjectImageTransform(image) if self.transform: obj = self.transform(obj) image = obj.to_value() #print(image.shape, flush=True ) #assert(False) return iD, image, prob
def transform_image(image, image_size, num_channels): image = np.array(image, dtype=np.uint8) image = utility.to_channels(image, num_channels) obj = ObjectImageTransform(image) obj = get_transforms_det(image_size)(obj) # tensor is channel x height x width # image = image.transpose((2, 0, 1)) # obj.to_tensor() # value = torch.from_numpy(obj.image).float() obj.image = obj.image.unsqueeze(0) return obj.to_dict()
def __getitem__(self, idx): image = self.data[idx] Id = idx image = np.array(image) image = utility.to_channels(image, self.num_channels) obj = ObjectImageTransform( image ) if self.transform: obj = self.transform(obj) Id = torch.from_numpy( np.array([Id])).float() return Id, obj.to_value()
def __getitem__(self, idx): # read image image, label = self.data[(idx) % len(self.data)] image = utility.to_channels(image, self.num_channels) # read background if self.bbackimage: idxk = random.randint(1, len(self.databack) - 1) back = self.databack[idxk] #(idx)%len(self.databack) back = F.resize_image(back, 640, 1024, resize_mode='crop', interpolate_mode=cv2.INTER_LINEAR) back = utility.to_channels(back, self.num_channels) else: back = np.ones((640, 1024, 3), dtype=np.uint8) * 255 if self.generate == 'image': obj = ObjectImageTransform(image) elif self.generate == 'image_and_label': _, image, _ = self.ren.generate(image, back) image = utility.to_gray(image.astype(np.uint8)) image_t = utility.to_channels(image, self.num_channels) image_t = image_t.astype(np.uint8) label = utility.to_one_hot(int(label), self.data.numclass) obj = ObjectImageAndLabelTransform(image_t, label) elif self.generate == 'image_and_mask': _, image, mask = self.ren.generate(image, back) image = utility.to_gray(image.astype(np.uint8)) image_t = utility.to_channels(image, self.num_channels) image_t = image_t.astype(np.uint8) #print( image_t.shape, image_t.min(), image_t.max(), flush=True ) #assert(False) mask = mask[:, :, 0] mask_t = np.zeros((mask.shape[0], mask.shape[1], 2)) mask_t[:, :, 0] = (mask == 0).astype(np.uint8) # backgraund mask_t[:, :, 1] = (mask == 1).astype(np.uint8) obj = ObjectImageAndMaskMetadataTransform(image_t, mask_t, np.array([label])) else: assert (False) if self.transform: obj = self.transform(obj) return obj.to_dict()
def test_image_transform(): pytvision.transforms.aumentation.interpolate_image_mode = cv2.INTER_LINEAR image = cv2.imread('../rec/image.jpg') image = image[:, :, (2, 1, 0)] #[:,:,0] obj = ObjectImageTransform(image) trans = transform_aug() start = time.time() obj_t = trans(obj) t = time.time() - start print('Time {}(s)'.format(t)) image_t = obj_t.image.permute((1, 2, 0)).numpy() #.squeeze(-1) plt.figure(figsize=(8, 8)) plt.imshow(image_t) plt.show()
def tranform_image_performs(image, transform, num_transform=4, bsave=False, bshow=True, bgrid=False): frames = [] for i in range(num_transform): obj = ObjectImageTransform(image) if bgrid: obj._draw_grid(50, (255, 255, 255)) start = time.time() obj_transform = transform(obj) t = time.time() - start print('{} ({}sec)'.format(transform, t)) image_o = obj.image image_t = obj_transform.image frame = np.concatenate((stand(image), stand(image_t)), axis=1) font = cv2.FONT_HERSHEY_SIMPLEX txt = 'Transform: + [{} ({:0.4f}sec)]'.format(transform, t) cv2.putText(frame, txt, (10, 15), font, 0.35, (255, 255, 255), 1, cv2.LINE_AA) frames.append(frame) if bshow: plt.figure(figsize=(8, 4)) plt.imshow(frame) plt.title('Transform: +[{} ({:0.4f}sec)]'.format(transform, t)) plt.show() if bsave: filename = '../rec/{}'.format(transform) create_gif(filename, frames, duration=0.5) print('save: ', filename)