예제 #1
0
    def denoiseList(self):
        img = Image.open(
            'Database/waterloo/pristine_images/00001.bmp').convert('RGB')
        img = CenterCrop((self.size, self.size))(img)
        img.save('outPic/src.bmp', 'bmp', quality=100)
        img = Image.open('Database/waterloo/distorted_images/%s/00001_%d.bmp' %
                         (self.typeDir, 2)).convert('RGB')
        img = CenterCrop((self.size, self.size))(img)
        img.save('outPic/sorted.bmp', 'bmp', quality=100)
        for i in xrange(1, 23):
            input = Variable(ToTensor()(img)).view(1, -1, img.size[1],
                                                   img.size[0])
            input = input.cuda()

            if (self.load == 2):
                model = torch.load('%s/%sF_ALL.pth' % (self.dir, self.typeDir))
            elif (self.load == 1):
                model = torch.load('%s/%sF.pth' % (self.dir, self.typeDir))
            else:
                model = torch.load('%s/%s_%d.pth' %
                                   (self.dir, self.typeDir, i))
            model = model.cuda()

            out_img = model(input)
            out_img = out_img.cpu()
            out_img = out_img.data[0]

            out_img.clamp_(0.0, 1.0)
            # out_img = self.clip(out_img)
            out_img = ToPILImage()(out_img)
            # out_img.save('outPic/%d.bmp'%i, 'bmp', quality=100)
            out_img.save('outPic/%d.bmp' % i, 'bmp', quality=100)
예제 #2
0
파일: rop.py 프로젝트: yinizhizhu/ROP
    def denoiseList(self):
        src = Image.open(
            'Database/waterloo/pristine_images/00001.bmp').convert('RGB')
        src = CenterCrop((self.size, self.size))(src)
        src.save('level_distortion/%s/%s/src.bmp' % (self.dir, self.typeDir),
                 'bmp',
                 quality=100)
        src = Variable(ToTensor()(src)).view(1, -1, src.size[1], src.size[0])
        stock_data = [[], [], [], []]
        for i in xrange(1, 11):
            print('    checking %dth...' % i)
            dis = Image.open('level_distortion/%s/%s/00001_%d.bmp' %
                             (self.dir, self.typeDir, i)).convert('RGB')
            dis = CenterCrop((self.size, self.size))(dis)
            dis.save('level_distortion/%s/%s/dis_%d.bmp' %
                     (self.dir, self.typeDir, i),
                     'bmp',
                     quality=100)
            dis = Variable(ToTensor()(dis)).view(1, -1, dis.size[1],
                                                 dis.size[0])
            dis = dis.cpu()
            # print (input)
            res = self.model(dis)

            tmp = {}
            loss = self.criterion(src, dis)
            tmp[self.src_dis] = loss.data[0]
            stock_data[0].append(loss.data[0])
            # self.experiment.add_scalar_value(self.src_dis, loss.data[0], i)

            loss = self.criterion(res, src)
            tmp[self.src_res] = loss.data[0]
            stock_data[1].append(loss.data[0])
            # self.experiment.add_scalar_value(self.src_res, loss.data[0], i)

            loss = self.criterion(res, dis)
            tmp[self.dis_res] = loss.data[0]
            stock_data[2].append(loss.data[0])
            # self.experiment.add_scalar_value(self.dis_res, loss.data[0], i)

            stock_data[3].append(stock_data[1][i - 1] + stock_data[2][i - 1])

            self.experiment.add_scalar_dict(tmp)

            res = res.data[0]
            res.clamp_(0.0, 1.0)
            res = ToPILImage()(res)
            res.save('level_distortion/%s/%s/res_%d.bmp' %
                     (self.dir, self.typeDir, i),
                     'bmp',
                     quality=100)
        self.draw(stock_data)

        # tmp = self.dis_res_.get_scalar_names()
        # print(tmp)
        # tmp = self.dis_res_.get_scalar_values(self.dis_res)
        # print(tmp)
        # print (self.dis_res_.get_histogram_names())
        # print (self.dis_res_.get_histogram_values(self.dis_res))
        print('Done this work!\n\n')
예제 #3
0
    def func(self):
        # img = Image.open('Database/waterloo/distorted_images/gblurConv/00001_1.bmp').convert('RGB')
        img = Image.open('Database/waterloo/pristine_images/00001.bmp').convert('RGB')
        img = CenterCrop((224, 224))(img)
        img.save('outPic/src_pristine.bmp', 'bmp', quality=100)
        # img.show()
        # print (img.size)

        img = Variable(ToTensor()(img)).view(1, -1, img.size[1], img.size[0])
        # print(img)

        model = torch.load('%s/gblurConv.pth' %  self.dir)
        model = model.cuda()
        input = img.cuda()

        out_img = model(input)
        out_img = out_img.cpu().data[0]
        out_img.clamp_(0.0, 1.0)
        out_img = ToPILImage()(out_img)
        # out_img.save('outPic/1_1.bmp', 'bmp', quality=100)
        out_img.show()
예제 #4
0
                                  total=len(id_filename)):
        path = os.path.join(imdir, filename)
        img = Image.open(path).convert('RGBA')

        # load alpha
        path = os.path.join(maskdir, filename.replace('.jpg', '.png'))
        alpha = Image.open(path)
        if alpha.mode == 'RGBA':
            alpha = alpha.split()[-1]
        alpha = alpha.convert('L')
        img.putalpha(alpha)

        # crop square images using bbox
        img = img.crop(boxes[id])
        s = max(img.size)
        img = CenterCrop(s)(
            img
        )  # CenterCrop pads image to square using zeros (also for alpha)

        # composite
        img = np.array(img)
        alpha = (img[..., 3:4]) > 127  # convert to binary mask
        bg = np.array(255 * (1. - alpha), np.uint8)
        img = img[..., :3] * alpha + bg
        img = Image.fromarray(img)

        img.save(os.path.join(outdir, '%06d.png' % i))

    print('Preprocessed {} images.'.format(
        len(glob.glob(os.path.join(outdir, '*.png')))))