def __getitem__(self, index):
        sample = self.imgs[index]
        if self.phase == 'train':
            splits = sample.split('/', 7)[-1]  #分割6次,可变
            label = int(splits.split('_')[0])
            img_path = sample
            data = Image.open(img_path).convert('RGB')
            # data = amaugimg(data)
            data = self.transforms(data)
            return data, label
        else:  #对于测试
            data = Image.open(sample)
            data = data.convert('RGB')
            img1 = data  #原图
            img2 = data.transpose(Image.FLIP_LEFT_RIGHT)  #水平反转图

            data = data.convert('L')  #灰度图
            img3 = cv2.cvtColor(np.asarray(data), cv2.COLOR_RGB2BGR)
            img3 = Image.fromarray(cv2.cvtColor(img3, cv2.COLOR_BGR2RGB))

            img4 = img3.transpose(Image.FLIP_LEFT_RIGHT)  #灰度反转

            img1 = self.transforms(img1)
            img2 = self.transforms(img2)
            img3 = self.transforms(img3)
            img4 = self.transforms(img4)

            return img1, img2
    def __getitem__(self, index):
        #print(self.dict_labels)

        #print(lst)
        img_path = self.lst[index]
        #dog->1,cat->0
        label = self.lst[index][1]

        data = imageio.imread(self.root + '/images/' + img_path[0] + '.jpg')
        try:
            data = self.augmentations.augment_image(data)
            imageio.imwrite(
                r'F:/5.datasets/test/aug_images/' + img_path[0] +
                '-aug_pipline.jpg', data)
            data = Image.open(r'F:/5.datasets/test/aug_images/' + img_path[0] +
                              '-aug_pipline.jpg')
        except Exception as e:
            print(e)
        finally:
            data = Image.open(self.root + '/images/' + img_path[0] + '.jpg')
        #data = data.convert('RGB')
        #array = np.asarray(pil_img)
        #data = t.from_numpy(array)
        #plt.imshow(data)

        #plt.imshow(data)
        #data = Image.open(r'F:/5.datasets/test/aug_images/'+img_path[0] + '-aug_pipline.jpg')
        data = data.convert('RGB')

        if self.transforms:
            #data = self.transforms(TF.to_tensor(data))
            data = self.transforms(data)

        #data = TF.to_tensor(self.augmentations.augment_image(data))
        return data, label
Beispiel #3
0
 def __getitem__(self, index):
     data = Image.open(os.path.join(self.file_path, self.ims[index]))
     bic_im = self.trans_bic(data)
     data = data.convert("YCbCr")
     data_y, cb, cr = data.split()
     data = self.trans(data_y)
     # batch must contain tensors, numbers, dicts or lists;
     # data_dict = {'bic':bic_im,'name':self.ims[index]}
     return data, bic_im, self.ims[index]
 def __getitem__(self, index):
     sample = self.imgs[index]
     splits = sample.split()
     img_path = splits[0]
     data = Image.open(img_path)
     data = data.convert('L')
     data = self.transforms(data)
     label = np.int32(splits[1])
     return data.float(), label
    def __getitem__(self, index):
        sample = self.imgs[index]
        splits = sample.split()
        img_path = os.path.join(self.root, splits[0])
        data = Image.open(img_path)
        data = data.convert('L')
        data = self.transforms(data)
        image1 = data

        img_path = os.path.join(self.root, splits[1])
        data = Image.open(img_path)
        data = data.convert('L')
        data = self.transforms(data)
        image2 = data


        img_path = os.path.join(self.pd_root, splits[0])
        pdimg = Image.open(img_path)
        pdimg = pdimg.convert('L')
        pdimg1 = self.pd_transforms(pdimg)

        img_path = os.path.join(self.pd_root, splits[1])
        pdimg = Image.open(img_path)
        pdimg = pdimg.convert('L')
        pdimg2 = self.pd_transforms(pdimg)

        pdimg1 = pdimg1[:, 1::4, 1::4]
        pdimg2 = pdimg2[:, 1::4, 1::4]
        pdimg1[pdimg1 > 165 / 256] = pdimg1[pdimg1 > 165 / 256] - 1
        pdimg1[pdimg1 > 90 / 256] = 180 / 256
        pdimg1 = torch.cat((torch.cos(pdimg1 * 256 / 180 * math.pi), torch.sin(pdimg1 * 256 / 180 * math.pi)), 0)
        pdimg2[pdimg2 > 165 / 256] = pdimg2[pdimg2 > 165 / 256] - 1
        pdimg2[pdimg2 > 90 / 256] = 180 / 256
        pdimg2 = torch.cat((torch.cos(pdimg2 * 256 / 180 * math.pi), torch.sin(pdimg2 * 256 / 180 * math.pi)), 0)


        dx = np.int32(splits[2])
        dy = np.int32(splits[3])
        da = np.int32(splits[4])

        label = torch.FloatTensor([dx/25.0, dy/25.0, da/20])

        return image1.float(), image2.float(), (pdimg1.float(), pdimg2.float()), label
Beispiel #6
0
    def __getitem__(self, index):
        data = self.index_to_data[index]
        img_path, label = data[self.img_colname], data[self.label_colname]

        if self.relative_path:
            img_path = os.path.join(self.root_path, img_path)
        data = Image.open(img_path)
        data = data.convert(self.img_to)
        data = self.transforms(data)
        return data, label
Beispiel #7
0
 def __getitem__(self, index):
     img_path = self.imgs[index]
     label = int(img_path.strip().split('/')[10])
     print(img_path, label)
     #data = Image.open(img_path)
     data = io.imread(img_path)
     data = Image.fromarray(data)
     if data.getbands()[0] == 'L':
         data = data.convert('RGB')
     data = self.transforms(data)
     return data, label
    def __getitem__(self, index):
        """
        一次返回一张图片的数据
        """
        img_path = self.root + str(self.imgs[index]) + '.jpg'

        data = Image.open(img_path)
        data = data.convert('RGB')
        data = self.transforms(data)
        label = self.labels[index]

        return data, label
Beispiel #9
0
    def __getitem__(self, index):
        ImageFile.LOAD_TRUNCATED_IMAGES = True
        img_path = self.imgs[index]
        if self.test:
            label = img_path.split('\\')[-1]
        else:
            label = int(img_path.split('\\')[-2]) - 1

        with Image.open(img_path) as data:
            data = data.convert('RGB')
            data = self.transforms(data)
            return data, label
Beispiel #10
0
 def __getitem__(self, index):
     """
     一次返回一张图片的数据
     """
     img_path = self.imgs[index]
     label = self.labels[index]
     # img = cv2.imread(img_path)
     # img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
     data = Image.open(img_path)
     data = data.convert("RGB")  # 如果有4通道图片转化为3通道
     data = self.transforms(data)
     return data, label, img_path, opt.cate_classes[label]  # 返回数据级标签图片路径
    def __getitem__(self, index):
        sample = self.imgs[index]
        splits = sample.split()
        img_path = os.path.join(self.root, splits[0])
        data = Image.open(img_path)
        data = data.convert('L')
        data = self.transforms(data)
        image1 = data

        img_path = os.path.join(self.root, splits[1])
        data = Image.open(img_path)
        data = data.convert('L')
        data = self.transforms(data)
        image2 = data

        dx = np.int32(splits[2])
        dy = np.int32(splits[3])
        da = np.int32(splits[4])

        label = torch.FloatTensor([dx/50.0, dy/50.0, da/40])

        return image1.float(), image2.float(),  label
 def __getitem__(self, index):
     sample = self.imgs[index]
     if self.phase == 'train':
         splits = sample.split('/')[-1]
         label = int(splits.split('_')[0])
         img_path = sample
         data = Image.open(img_path).convert('RGB')
         data = self.transforms(data)
         return data, label
     else:
         data = Image.open(sample)
         data = data.convert('RGB')
         data = self.transforms(data)
         return data
Beispiel #13
0
    def __getitem__(self, index):
        #print(self.dict_labels)

        #print(lst)
        img_path = self.lst[index]
        #dog->1,cat->0
        label = self.lst[index][1]
        data = Image.open(self.root + '/images/' + img_path[0] + '.jpg')
        data = data.convert('RGB')
        #array = np.asarray(pil_img)
        #data = t.from_numpy(array)
        if self.transforms:
            data = self.transforms(data)
        return data, label
Beispiel #14
0
    def __getitem__(self, index):
        '''
        return the data of one image
        '''
        data_path = self.images_root + 'testimg/' + self.images_path[index]

        data = Image.open(data_path)
        data = data.convert('RGB')
        Data = self.transforms_data(data)

        # *Img.getcolors()
        # Label = self.transforms_label(label)

        return Data, str(self.images_path[index])
Beispiel #15
0
 def __getitem__(self, index):
     sample = self.imgs[index]
     if self.phase == 'train':
         splits = sample.split('/', 6)[-1]  #分割6次,可变
         label = self.dic[splits]
         img_path = sample
         data = Image.open(img_path)
         # data = data.convert('L')
         data = self.transforms(data)
         return data.float(), label
     else:
         data = Image.open(sample)
         data = data.convert('RGB')  #<-----------------------
         data = self.transforms(data)
         return data
Beispiel #16
0
    def read_throw(self, index):
        splits = self.imgs[index]
        bb = self.bbs[index]

        img_path = splits[0]
        data = Image.open(img_path)
        data.load()
        data = data.convert('RGB')
        data = data.crop(self.refine_bb(bb, data.size))

        if self.transforms is not None:
            data = self.transforms(data)

        label = int(splits[-1])
        return data, label
Beispiel #17
0
    def __getitem__(self, index):
        sample = self.imgs[index]
        splits = sample.split()
        img_path = splits[0]

        data = Image.open(img_path)
        data = data.convert('RGB')
        data = self.rand_augment(data)
        data = self.transforms(data)

        label = np.int32(splits[1])
        if label > (self.NUM_CLASSES - 1):
            label = (self.NUM_CLASSES - 1)
        levels = [1] * label + [0] * (self.NUM_CLASSES - 1 - label)
        levels = torch.tensor(levels, dtype=torch.float32)

        return data, label, levels
Beispiel #18
0
    def __getitem__(self, index):
        sample_path = self.imgs[index]  # 当前图片的路径
        sample_dir = os.path.dirname(sample_path)  # 当前图片的上级目录的路径

        # 标签必须是从0~classNums的连续整数
        class_name = sample_dir.split(self.path_spilt)[-1]  # 获取类名(当前图片的文件夹名字)
        label = self.classes.index(class_name)  # 根据类名从列表里找到它的索引, 把索引号当作标签

        data = Image.open(sample_path)  # Image打开返回的是RGB (H , W , C)

        if self.input_shape[0] is 1:  # 输入是1维, 则转成灰度图
            data = data.convert(
                'L')  # 转为灰度图像(1维), 公式L = R*0.299 + G*0.587+ B*0.114

        data = self.transforms(data)

        return data.float(), label
Beispiel #19
0
    def __getitem__(self, index):
        """
        一次返回一张图片的数据
        """
        img_path = self.imgs[index]
        if self.test:
            # label = self.imgs[index].split('.')[-2].split('/')[-1]
            label = img_path.split('/')[-1]
        else:
            label = self.labels[index]
        data = Image.open(img_path)
        if opt.gray == True:
            dataRGB = data.convert('RGB')
            dataRGB = self.transforms(dataRGB)
            return dataRGB, label

        data = self.transforms(data)
        return data, label
Beispiel #20
0
    def __getitem__(self, index):
        sample = self.imgs[index]
        splits = sample.split()
        img_path = splits[0]
        data = Image.open(img_path)
        if self.input_shape[0] == 1:    # channel = 1
            data = data.convert('L')
        data = self.transforms(data)

        # data_view = data.cpu().numpy().transpose(1, 2, 0)
        # plt.imshow(data_view)
        # # plt.axis('off')
        # plt.savefig(f'datasets/test/test_m{index}.jpg', bbox_inches='tight')
        # plt.show()

        if  self.phase == 'test':
            return data.float()

        else:
            label = np.int32(splits[1])
            return data.float(), label
Beispiel #21
0
    def __getitem__(self, index):
        img_path = self.imgs[index]
        label = self.labels[index]
        
        # 提取特征
        if self.extract_feature:
            label = self.imgs[index].rsplit('/', 1)[-1]
        try:
            data = Image.open(img_path)
        except Exception as e:
            print(e)
        else:
            if len(data.split())!=3:
                data = data.convert('RGB')
            #print(len(data.split()))

            if self.transforms:
                data = self.transforms(data)

            return data, label

        return torch.zeros(3, 224, 224), 0