Python PIL.Image 模块,FLIP_LEFT_RIGHT 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用PIL.Image.FLIP_LEFT_RIGHT

项目:imagepaste    作者:robinchenyu    | 项目源码 | 文件源码
def font_variant(self, font=None, size=None, index=None, encoding=None):
        """
        Create a copy of this FreeTypeFont object,
        using any specified arguments to override the settings.

        Parameters are identical to the parameters used to initialize this
        object.

        :return: A FreeTypeFont object.
        """
        return FreeTypeFont(font=self.path if font is None else font,
                            size=self.size if size is None else size,
                            index=self.index if index is None else index,
                            encoding=self.encoding if encoding is None else
                            encoding)

##
# Wrapper that creates a transposed font from any existing font
# object.
#
# @param font A font object.
# @param orientation An optional orientation.  If given, this should
#     be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
#     Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
项目:deep-prior    作者:moberweger    | 项目源码 | 文件源码
def transformImg(self, img, t):
        imgT = img.transform((int(img.size[0]*t[3]),int(img.size[1]*t[3])), Image.EXTENT, (0,0,img.size[0],img.size[1]), Image.BILINEAR)
        imgT = imgT.rotate(numpy.rad2deg(t[0]), Image.BILINEAR, expand=1)
        if t[4] == 1.:
            imgT = imgT.transpose(Image.FLIP_LEFT_RIGHT)

        # crop only valid part
        if self.crop:
            imgT = imgT.crop(self.getInscribedRectangle(t[0], (img.size[0]*t[3], img.size[1]*t[3])))

        # crop from translation
        imgT = imgT.resize((int(self.imgSize[0]*1.1), int(self.imgSize[1]*1.1)), Image.BILINEAR)
        xstart = int((imgT.size[0] // 2 - t[1]) - self.imgSize[0] // 2)
        ystart = int((imgT.size[1] // 2 - t[2]) - self.imgSize[1] // 2)
        assert xstart >= 0 and ystart >= 0
        return imgT.crop((xstart, ystart, xstart+self.imgSize[0], ystart+self.imgSize[1]))
项目:radar    作者:amoose136    | 项目源码 | 文件源码
def font_variant(self, font=None, size=None, index=None, encoding=None):
        """
        Create a copy of this FreeTypeFont object,
        using any specified arguments to override the settings.

        Parameters are identical to the parameters used to initialize this
        object.

        :return: A FreeTypeFont object.
        """
        return FreeTypeFont(font=self.path if font is None else font,
                            size=self.size if size is None else size,
                            index=self.index if index is None else index,
                            encoding=self.encoding if encoding is None else
                            encoding)

##
# Wrapper that creates a transposed font from any existing font
# object.
#
# @param font A font object.
# @param orientation An optional orientation.  If given, this should
#     be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
#     Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
项目:focal-loss    作者:unsky    | 项目源码 | 文件源码
def flip_and_save(self, image_path):
        """
        flip the image by the path and save the flipped image with suffix 'flip'
        :param path: the path of specific image
        :return: the path of saved image
        """
        [image_name, image_ext] = os.path.splitext(os.path.basename(image_path))
        image_dir = os.path.dirname(image_path)
        saved_image_path = os.path.join(image_dir, image_name + '_flip' + image_ext)
        try:
            flipped_image = Image.open(saved_image_path)
        except:
            flipped_image = Image.open(image_path)
            flipped_image = flipped_image.transpose(Image.FLIP_LEFT_RIGHT)
            flipped_image.save(saved_image_path, 'png')
        return saved_image_path
项目:action-detection    作者:yjxiong    | 项目源码 | 文件源码
def __call__(self, img_group):

        if self.scale_worker is not None:
            img_group = self.scale_worker(img_group)
        image_w, image_h = img_group[0].size
        crop_w, crop_h = self.crop_size

        offsets = GroupMultiScaleCrop.fill_fix_offset(False, image_w, image_h, crop_w, crop_h)
        oversample_group = list()
        for o_w, o_h in offsets:
            normal_group = list()
            flip_group = list()
            for i, img in enumerate(img_group):
                crop = img.crop((o_w, o_h, o_w + crop_w, o_h + crop_h))
                normal_group.append(crop)
                flip_crop = crop.copy().transpose(Image.FLIP_LEFT_RIGHT)

                if img.mode == 'L' and i % 2 == 0:
                    flip_group.append(ImageOps.invert(flip_crop))
                else:
                    flip_group.append(flip_crop)

            oversample_group.extend(normal_group)
            oversample_group.extend(flip_group)
        return oversample_group
项目:Deformable-ConvNets    作者:msracver    | 项目源码 | 文件源码
def flip_and_save(self, image_path):
        """
        flip the image by the path and save the flipped image with suffix 'flip'
        :param path: the path of specific image
        :return: the path of saved image
        """
        [image_name, image_ext] = os.path.splitext(os.path.basename(image_path))
        image_dir = os.path.dirname(image_path)
        saved_image_path = os.path.join(image_dir, image_name + '_flip' + image_ext)
        try:
            flipped_image = Image.open(saved_image_path)
        except:
            flipped_image = Image.open(image_path)
            flipped_image = flipped_image.transpose(Image.FLIP_LEFT_RIGHT)
            flipped_image.save(saved_image_path, 'png')
        return saved_image_path
项目:Deep-Feature-Flow    作者:msracver    | 项目源码 | 文件源码
def flip_and_save(self, image_path):
        """
        flip the image by the path and save the flipped image with suffix 'flip'
        :param path: the path of specific image
        :return: the path of saved image
        """
        [image_name, image_ext] = os.path.splitext(os.path.basename(image_path))
        image_dir = os.path.dirname(image_path)
        saved_image_path = os.path.join(image_dir, image_name + '_flip' + image_ext)
        try:
            flipped_image = Image.open(saved_image_path)
        except:
            flipped_image = Image.open(image_path)
            flipped_image = flipped_image.transpose(Image.FLIP_LEFT_RIGHT)
            flipped_image.save(saved_image_path, 'png')
        return saved_image_path
项目:tensorflow-layer-library    作者:bioinf-jku    | 项目源码 | 文件源码
def load_input_image(self, path, flip=False, zoom_factor=1, left_lower_corner=(0, 0), jitter=None):
        """Load a single input image"""
        image = load_image(image_path=path, image_scaling_factor=self.image_scaling_factor,
                           resampling_method=self.input_interpolation)

        if flip:
            image = image.transpose(Image.FLIP_LEFT_RIGHT)

        if zoom_factor != 1:
            image = zoom_into_image(image=image, zoom_factor=zoom_factor, left_lower_corner=left_lower_corner,
                                    resample=self.input_interpolation)

        if jitter:
            image = add_color_jittering(image, jitter)

        if self.add_luminance:
            image = add_luminance(image)

        if self.stretch_values:
            image = stretch_values(image)

        return np.asarray(image, dtype=np.float32)
项目:tensorflow-layer-library    作者:bioinf-jku    | 项目源码 | 文件源码
def load_label_image(self, path, flip=False, zoom_factor=1, left_lower_corner=(0, 0)):
        """Load a single label image"""
        image = load_image(image_path=path, image_scaling_factor=self.image_scaling_factor,
                           resampling_method=self.label_interpolation)

        if flip:
            image = image.transpose(Image.FLIP_LEFT_RIGHT)

        if zoom_factor != 1:
            image = zoom_into_image(image=image, zoom_factor=zoom_factor, left_lower_corner=left_lower_corner,
                                    resample=self.label_interpolation)

        label = np.asarray(image, dtype=np.uint8)

        if self.id2label is not None:
            temp = np.array(image)
            for k, v in self.id2label.items():
                temp[label == k] = v
            label = temp

        return label
项目:WXBotForPi    作者:nemoTyrant    | 项目源码 | 文件源码
def font_variant(self, font=None, size=None, index=None, encoding=None):
        """
        Create a copy of this FreeTypeFont object,
        using any specified arguments to override the settings.

        Parameters are identical to the parameters used to initialize this
        object.

        :return: A FreeTypeFont object.
        """
        return FreeTypeFont(font=self.path if font is None else font,
                            size=self.size if size is None else size,
                            index=self.index if index is None else index,
                            encoding=self.encoding if encoding is None else
                            encoding)

##
# Wrapper that creates a transposed font from any existing font
# object.
#
# @param font A font object.
# @param orientation An optional orientation.  If given, this should
#     be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
#     Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
项目:spockpy    作者:achillesrasquinha    | 项目源码 | 文件源码
def _showloop(self):
        while cv2.waitKey(10) not in [keycode.ESCAPE, keycode.Q, keycode.q]:
            image = self.capture.read()
            image = image.transpose(Image.FLIP_LEFT_RIGHT)

            image = _resize_image(image, self.size)

            array = np.asarray(image)
            array = _mount_roi(array, self.roi, color = (74, 20, 140), thickness = 2)

            crop  = _crop_array(array, self.roi)

            # process image for any gestures
            if self.verbose:
                segments, event = spockpy.detect(crop, verbose = self.verbose)
            else:
                event           = spockpy.detect(crop, verbose = self.verbose)


            self.image = Image.fromarray(segments)
            self.event = event

            cv2.imshow(HoverPad.TITLE, array)

        cv2.destroyWindow(HoverPad.TITLE)
项目:django-binder    作者:CodeYellowBV    | 项目源码 | 文件源码
def image_transpose_exif(im):
    exif_orientation_tag = 0x0112  # contains an integer, 1 through 8
    exif_transpose_sequences = [   # corresponding to the following
        [],
        [Image.FLIP_LEFT_RIGHT],
        [Image.ROTATE_180],
        [Image.FLIP_TOP_BOTTOM],
        [Image.FLIP_LEFT_RIGHT, Image.ROTATE_90],
        [Image.ROTATE_270],
        [Image.FLIP_TOP_BOTTOM, Image.ROTATE_90],
        [Image.ROTATE_90],
    ]

    try:
        if im._getexif() is not None:
            seq = exif_transpose_sequences[im._getexif()[exif_orientation_tag] - 1]
            return functools.reduce(lambda im, op: im.transpose(op), seq, im)
        else:
            return im
    except KeyError:
        return im
项目:django-binder    作者:CodeYellowBV    | 项目源码 | 文件源码
def image_transpose_exif(im):
    exif_orientation_tag = 0x0112  # contains an integer, 1 through 8
    exif_transpose_sequences = [   # corresponding to the following
        [],
        [Image.FLIP_LEFT_RIGHT],
        [Image.ROTATE_180],
        [Image.FLIP_TOP_BOTTOM],
        [Image.FLIP_LEFT_RIGHT, Image.ROTATE_90],
        [Image.ROTATE_270],
        [Image.FLIP_TOP_BOTTOM, Image.ROTATE_90],
        [Image.ROTATE_90],
    ]

    try:
        if im._getexif() is not None:
            seq = exif_transpose_sequences[im._getexif()[exif_orientation_tag] - 1]
            return functools.reduce(lambda im, op: im.transpose(op), seq, im)
        else:
            return im
    except KeyError:
        return im
项目:pytorch-retinanet    作者:kuangliu    | 项目源码 | 文件源码
def random_flip(img, boxes):
    '''Randomly flip the given PIL Image.

    Args:
        img: (PIL Image) image to be flipped.
        boxes: (tensor) object boxes, sized [#ojb,4].

    Returns:
        img: (PIL.Image) randomly flipped image.
        boxes: (tensor) randomly flipped boxes.
    '''
    if random.random() < 0.5:
        img = img.transpose(Image.FLIP_LEFT_RIGHT)
        w = img.width
        xmin = w - boxes[:,2]
        xmax = w - boxes[:,0]
        boxes[:,0] = xmin
        boxes[:,2] = xmax
    return img, boxes
项目:DeepID2    作者:chenzeyuczy    | 项目源码 | 文件源码
def transform_image(src_root, dst_root, file_list, config):
    img_box, img_mode, img_flip = config
    print "Transforming images from %s to %s." % (src_root, dst_root)

    for file_path in file_list:
        src_path = src_root + '/' + file_path
        dst_path = dst_root + '/' + file_path

        dst_dir = os.path.dirname(dst_path)
        if not os.path.exists(dst_dir):
            os.makedirs(dst_dir)

        img = Image.open(src_path)
        if img_mode:
            img = img.convert(img_mode)
        if img_box:
            img = img.crop(img_box)
        if img_flip == True:
            img = img.flip(Image.FLIP_LEFT_RIGHT)
        img.save(dst_path)
    return
项目:rarepepes    作者:kendricktan    | 项目源码 | 文件源码
def __getitem__(self, index):
        if not self.train:
            index += self.train_length

        idx = self.idxes[index]

        # Open file as Pillow Image
        x_img = Image.open(self.x_dir[idx]).convert('RGB')
        y_img = Image.open(self.y_dir[idx]).convert('RGB')

        # Randomly flip
        if random.random() < 0.5:
            x_img = x_img.transpose(Image.FLIP_LEFT_RIGHT)
            y_img = y_img.transpose(Image.FLIP_LEFT_RIGHT)

        if self.transform:
            x_img = self.transform(x_img)
            y_img = self.transform(y_img)

        x_img = normalize(x_img, -1, 1)
        y_img = normalize(y_img, -1, 1)

        return x_img, y_img
项目:teleport    作者:eomsoft    | 项目源码 | 文件源码
def font_variant(self, font=None, size=None, index=None, encoding=None):
        """
        Create a copy of this FreeTypeFont object,
        using any specified arguments to override the settings.

        Parameters are identical to the parameters used to initialize this
        object.

        :return: A FreeTypeFont object.
        """
        return FreeTypeFont(font=self.path if font is None else font,
                            size=self.size if size is None else size,
                            index=self.index if index is None else index,
                            encoding=self.encoding if encoding is None else
                            encoding)

##
# Wrapper that creates a transposed font from any existing font
# object.
#
# @param font A font object.
# @param orientation An optional orientation.  If given, this should
#     be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
#     Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
项目:teleport    作者:eomsoft    | 项目源码 | 文件源码
def font_variant(self, font=None, size=None, index=None, encoding=None):
        """
        Create a copy of this FreeTypeFont object,
        using any specified arguments to override the settings.

        Parameters are identical to the parameters used to initialize this
        object.

        :return: A FreeTypeFont object.
        """
        return FreeTypeFont(font=self.path if font is None else font,
                            size=self.size if size is None else size,
                            index=self.index if index is None else index,
                            encoding=self.encoding if encoding is None else
                            encoding)

##
# Wrapper that creates a transposed font from any existing font
# object.
#
# @param font A font object.
# @param orientation An optional orientation.  If given, this should
#     be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
#     Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
项目:Flow-Guided-Feature-Aggregation    作者:msracver    | 项目源码 | 文件源码
def flip_and_save(self, image_path):
        """
        flip the image by the path and save the flipped image with suffix 'flip'
        :param path: the path of specific image
        :return: the path of saved image
        """
        [image_name, image_ext] = os.path.splitext(os.path.basename(image_path))
        image_dir = os.path.dirname(image_path)
        saved_image_path = os.path.join(image_dir, image_name + '_flip' + image_ext)
        try:
            flipped_image = Image.open(saved_image_path)
        except:
            flipped_image = Image.open(image_path)
            flipped_image = flipped_image.transpose(Image.FLIP_LEFT_RIGHT)
            flipped_image.save(saved_image_path, 'png')
        return saved_image_path
项目:TextTopicNet    作者:lluisgomez    | 项目源码 | 文件源码
def load_images(self, idxs):
        """
        Load input image and preprocess for Caffe:
        - cast to float
        - switch channels RGB -> BGR
        - subtract mean
        - transpose to channel x height x width order
        """
        for i,idx in enumerate(idxs):
          im = Image.open(self.img_dir+idx)
          im = im.resize((256,256)) # resize to 256x256
          # data augmentation by random crops
          offset_x = random.randint(0,29)
          offset_y = random.randint(0,29)
          im = im.crop((offset_x,offset_y,227+offset_x,227+offset_y)) # crop of 227x227
          if random.randint(0,1) == 1:
            im = im.transpose(Image.FLIP_LEFT_RIGHT) # data augmentation by random mirror
          if len(np.array(im).shape) < 3:
            im = im.convert('RGB') # grayscale to RGB
          in_ = np.array(im, dtype=np.float32)
          in_ = in_[:,:,::-1] # switch channels RGB -> BGR
          in_ -= self.mean # subtract mean
          in_ = in_.transpose((2,0,1)) # transpose to channel x height x width order
          self.data[i,:,:,:] = in_
项目:age    作者:ly015    | 项目源码 | 文件源码
def __getitem__(self, index):
        '''
        output data format:

        img: Tensor, size = (3, 224, 224)
        pose: Tensor, size = (3,), [yaw, pitch, roll]
        '''

        if self.debug == 1:
            s = self.sample_lst[0]
        else:
            s = self.sample_lst[index]

        img = Image.open(os.path.join(self.img_root, s['image'])).convert('RGB')
        pose = np.array(s['pose'])

        if self.flip and np.random.rand() > 0.5:
            img = img.transpose(Image.FLIP_LEFT_RIGHT)
            pose[0] = -pose[0] # yaw need to be reversed

        img = self.transform(img)

        return img, pose
项目:pytorch-semseg    作者:meetshah1995    | 项目源码 | 文件源码
def __call__(self, img, mask):
        if random.random() < 0.5:
            return img.transpose(Image.FLIP_LEFT_RIGHT), mask.transpose(Image.FLIP_LEFT_RIGHT)
        return img, mask
项目:imagepaste    作者:robinchenyu    | 项目源码 | 文件源码
def mirror(image):
    """
    Flip image horizontally (left to right).

    :param image: The image to mirror.
    :return: An image.
    """
    return image.transpose(Image.FLIP_LEFT_RIGHT)
项目:PaintsPytorch    作者:orashi    | 项目源码 | 文件源码
def __getitem__(self, index):
        Cpath, Spath = self.imgs[index][0], self.imgs[index][1]
        Cimg, Simg = color_loader(Cpath), grey_loader(Spath)
        Cimg, Simg = RandomCrop(511)(Cimg, Simg)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_LEFT_RIGHT), Simg.transpose(Image.FLIP_LEFT_RIGHT)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_TOP_BOTTOM), Simg.transpose(Image.FLIP_TOP_BOTTOM)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.ROTATE_90), Simg.transpose(Image.ROTATE_90)

        Cimg, Vimg, Simg = self.transform(Cimg), self.vtransform(Cimg), self.stransform(Simg)

        return Cimg, Vimg, Simg
项目:PaintsPytorch    作者:orashi    | 项目源码 | 文件源码
def __getitem__(self, index):
        Cpath, Spath = self.imgs[index]
        Cimg, Simg = color_loader(Cpath), sketch_loader(Spath)
        Cimg, Simg = RandomCrop(511)(Cimg, Simg)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_LEFT_RIGHT), Simg.transpose(Image.FLIP_LEFT_RIGHT)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_TOP_BOTTOM), Simg.transpose(Image.FLIP_TOP_BOTTOM)
        # if random.random() < 0.5:
        #     Vimg = Vimg.transpose(Image.ROTATE_90)
        Cimg, Vimg, Simg = self.transform(Cimg), self.vtransform(Cimg), self.stransform(Simg)

        return Cimg, Vimg, Simg
项目:PaintsPytorch    作者:orashi    | 项目源码 | 文件源码
def __getitem__(self, index):
        Cpath, Spath = self.imgs[index]
        Cimg, Simg = color_loader(Cpath), sketch_loader(Spath)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_LEFT_RIGHT), Simg.transpose(Image.FLIP_LEFT_RIGHT)
        Vimg = Cimg
        if random.random() < 0.5:
            Vimg = Vimg.transpose(Image.FLIP_LEFT_RIGHT)
        # if random.random() < 0.5:
        #     Vimg = Vimg.transpose(Image.ROTATE_90)
        Cimg, Vimg, Simg = self.transform(Cimg), self.vtransform(Vimg), self.stransform(Simg)

        return Cimg, Vimg, Simg
项目:PaintsPytorch    作者:orashi    | 项目源码 | 文件源码
def __getitem__(self, index):
        Cpath, Spath = self.imgs[index]
        Cimg, Simg = color_loader(Cpath), sketch_loader(Spath)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_LEFT_RIGHT), Simg.transpose(Image.FLIP_LEFT_RIGHT)
        Vimg = Cimg
        # if random.random() < 0.5:
        #     Vimg = Vimg.transpose(Image.FLIP_LEFT_RIGHT)
        # if random.random() < 0.5:
        #     Vimg = Vimg.transpose(Image.ROTATE_90)
        Cimg, Vimg, Simg = self.transform(Cimg), self.vtransform(Vimg), self.stransform(Simg)

        return Cimg, Vimg, Simg
项目:PaintsPytorch    作者:orashi    | 项目源码 | 文件源码
def __getitem__(self, index):
        Cpath, Spath = self.imgs[index][0], self.imgs[index][random.randint(1, 3)]
        Cimg, Simg = color_loader(Cpath), sketch_loader(Spath)
        Cimg, Simg = RandomCrop(511)(Cimg, Simg)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_LEFT_RIGHT), Simg.transpose(Image.FLIP_LEFT_RIGHT)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.FLIP_TOP_BOTTOM), Simg.transpose(Image.FLIP_TOP_BOTTOM)
        if random.random() < 0.5:
            Cimg, Simg = Cimg.transpose(Image.ROTATE_90), Simg.transpose(Image.ROTATE_90)

        Cimg, Vimg, Simg = self.transform(Cimg), self.vtransform(Cimg), self.stransform(Simg)

        return Cimg, Vimg, Simg
项目:sketal    作者:vk-brain    | 项目源码 | 文件源码
def __init__(self, *commands, prefixes=None, strict=False):
        """Answers with image containing stylish quote."""

        super().__init__(*commands, prefixes=prefixes, strict=strict)

        self.q = Image.open(self.get_path("q.png")).resize((40, 40), Image.LANCZOS)
        self.qf = self.q.copy().transpose(Image.FLIP_LEFT_RIGHT).transpose(Image.FLIP_TOP_BOTTOM)

        self.f = ImageFont.truetype(self.get_path("font.ttf"), 20)
        self.fs = ImageFont.truetype(self.get_path("font.ttf"), 14)

        example = self.command_example()
        self.description = [f"????????? ?????",
                            f"{example} [?????] - ????????? ????????? ? ??????? ????? (?? ???????) ? "
                             "???????? ??????!"]
项目:ascii-art-py    作者:blinglnav    | 项目源码 | 文件源码
def __init__(self, font, orientation=None):
        """
        Wrapper that creates a transposed font from any existing font
        object.

        :param font: A font object.
        :param orientation: An optional orientation.  If given, this should
            be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM,
            Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270.
        """
        self.font = font
        self.orientation = orientation  # any 'transpose' argument, or None
项目:ascii-art-py    作者:blinglnav    | 项目源码 | 文件源码
def mirror(image):
    """
    Flip image horizontally (left to right).

    :param image: The image to mirror.
    :return: An image.
    """
    return image.transpose(Image.FLIP_LEFT_RIGHT)
项目:radar    作者:amoose136    | 项目源码 | 文件源码
def mirror(image):
    """
    Flip image horizontally (left to right).

    :param image: The image to mirror.
    :return: An image.
    """
    return image.transpose(Image.FLIP_LEFT_RIGHT)
项目:cancer    作者:yancz1989    | 项目源码 | 文件源码
def flip_image(input_file, input_box):
  prefix = os.path.splitext(input_file)[0]
  x1 = input_box[0]["x1"]
  y1 = input_box[0]["y1"]
  x2 = input_box[0]["x2"]
  y2 = input_box[0]["y2"]
  im = Image.open(input_file)
  im1 = im.transpose(Image.FLIP_LEFT_RIGHT)
  im2 = im.transpose(Image.FLIP_TOP_BOTTOM)
  output_file = [
    prefix + "_flip_1.bmp", prefix + "_flip_2.bmp"]
  output_box = [
    {
      "x1": SIZE - 1 - x1,
      "x2": SIZE - 1 - x2,
      "y1": y1,
      "y2": y2,
    },
    {
      "x1": x1,
      "x2": x2,
      "y1": SIZE - 1 - y1,
      "y2": SIZE - 1 - y2,
    },
  ]

  im1.save(output_file[0])
  im2.save(output_file[1])
  # draw_box(im1, output_box[0]).save(output_file[0])
  # draw_box(im2, output_box[1]).save(output_file[1])
  return output_file, output_box
项目:ExperimentPackage_PyTorch    作者:ICEORY    | 项目源码 | 文件源码
def __call__(self, img):
        img_flip = img.transpose(Image.FLIP_LEFT_RIGHT)
        center_crop = transforms.CenterCrop(self.size)
        img_list = []
        w, h = img.size
        for image in [img, img_flip]:
            img_list.append(center_crop(image))
            img_list.append(image.crop((0, 0, self.size, self.size)))
            img_list.append(image.crop((w-self.size, 0, w, self.size)))
            img_list.append(image.crop((0, h - self.size, self.size, h)))
            img_list.append(image.crop((w-self.size, h-self.size, w, h)))
        imgs = None
        to_tensor = transforms.ToTensor()
        for image in img_list:
            if imgs is None:
                temp_img = to_tensor(image)
                imgs = self.normalize(temp_img)
            else:
                temp_img = to_tensor(image)
                temp_img = self.normalize(temp_img)
                imgs = torch.cat((imgs, temp_img))
        return imgs


# ---------------------------------------------------------------------------------------------
# from: https://github.com/eladhoffer/convNet.pytorch/blob/master/preprocess.py
项目:Seg-with-SPN    作者:JingchunCheng    | 项目源码 | 文件源码
def load_image_transform(self, idx, scale, rotation, trans_h, trans_w, flip):
       img_W = np.int( self.W*(1.0 + scale) )
       img_H = np.int( self.H*(1.0 + scale) ) 

       print >> sys.stderr, 'loading {}/00000.jpg'.format(idx)
       print >> sys.stderr, 'scale: {}; rotation: {}; translation: ({},{}); flip: {}.'.format(scale, rotation, trans_w, trans_h, flip)

       im = Image.open('{}/JPEGImages/480p/{}/00000.jpg'.format(self.davis_dir, idx))
       im    = im.resize((img_W,img_H))
       im    = im.transform((img_W,img_H),Image.AFFINE,(1,0,trans_w,0,1,trans_h))
       im    = im.rotate(rotation)
       if flip:
          im = im.transpose(Image.FLIP_LEFT_RIGHT)

       if scale>0:
          box = (np.int((img_W - self.W)/2), np.int((img_H - self.H)/2), np.int((img_W - self.W)/2)+self.W, np.int((img_H - self.H)/2)+self.H)
          im  = im.crop(box)
       else:
          im  = im.resize((self.W, self.H))

 #      im_name = 'img_{}_{}.jpg'.format(trans_h,trans_w)
 #      im.save(im_name,"JPEG")
 #      print(im.size)

       in_ = np.array(im, dtype=np.float32)
       in_ = in_[:,:,::-1]
       in_ -= self.mean  

       return in_
项目:Seg-with-SPN    作者:JingchunCheng    | 项目源码 | 文件源码
def load_label_transform(self, idx, scale, rotation, trans_h, trans_w, flip):
        img_W = np.int( self.W*(1.0 + scale) )
        img_H = np.int( self.H*(1.0 + scale) )

#        print >> sys.stderr, 'loading {}'.format(idx)
#        print >> sys.stderr, 'scale: {}; rotation: {}; translation: ({},{}); flip: {}.'.format(scale, rotation, trans_w, trans_h, flip)

        im = Image.open('{}/Annotations/2017/{}/00000.png'.format(self.davis_dir, idx))
        im    = im.resize((img_W,img_H))
        im    = im.transform((img_W,img_H),Image.AFFINE,(1,0,trans_w,0,1,trans_h))
        im    = im.rotate(rotation)
        if flip:
           im = im.transpose(Image.FLIP_LEFT_RIGHT)

        if scale>0:
           w_start = np.int(random.random()*(img_W - self.W))
           h_start = np.int(random.random()*(img_H - self.H))
           box     = (w_start, h_start, w_start+self.W, h_start+self.H)
           im      = im.crop(box)
        else:
           im  = im.resize((self.W, self.H))

#        im_name = 'label_{}_{}.png'.format(trans_h,trans_w)
#        im.save(im_name,"PNG")
#        print(im.size)
        label = np.array(im, dtype=np.uint8)
        print >> sys.stderr, 'Number of Objects: {}'.format(np.max(label))
        label = np.uint8((label>0))

        return label
项目:Seg-with-SPN    作者:JingchunCheng    | 项目源码 | 文件源码
def load_image_transform(self, idx, scale, rotation, trans_h, trans_w, flip):
       img_W = np.int( self.W*(1.0 + scale) )
       img_H = np.int( self.H*(1.0 + scale) ) 

       print >> sys.stderr, 'loading {}'.format(idx)
       print >> sys.stderr, 'scale: {}; rotation: {}; translation: ({},{}); flip: {}.'.format(scale, rotation, trans_w, trans_h, flip)

       im    = Image.open('{}/{}'.format(self.davis_dir, idx))
       im    = im.resize((img_W,img_H))
       im    = im.transform((img_W,img_H),Image.AFFINE,(1,0,trans_w,0,1,trans_h))
       im    = im.rotate(rotation)
       if flip:
          im = im.transpose(Image.FLIP_LEFT_RIGHT)

       if scale>0:
          box = (np.int((img_W - self.W)/2), np.int((img_H - self.H)/2), np.int((img_W - self.W)/2)+self.W, np.int((img_H - self.H)/2)+self.H)
          im  = im.crop(box)
       else:
          im  = im.resize((self.W, self.H))

 #      im_name = 'img_{}_{}.jpg'.format(trans_h,trans_w)
 #      im.save(im_name,"JPEG")
 #      print(im.size)

       in_ = np.array(im, dtype=np.float32)
       in_ = in_[:,:,::-1]
       in_ -= self.mean  

       return in_
项目:Seg-with-SPN    作者:JingchunCheng    | 项目源码 | 文件源码
def load_label_transform(self, idx, scale, rotation, trans_h, trans_w, flip):
        img_W = np.int( self.W*(1.0 + scale) )
        img_H = np.int( self.H*(1.0 + scale) )

#        print >> sys.stderr, 'loading {}'.format(idx)
#        print >> sys.stderr, 'scale: {}; rotation: {}; translation: ({},{}); flip: {}.'.format(scale, rotation, trans_w, trans_h, flip)

        im    = Image.open('{}/{}'.format(self.davis_dir, idx))
        im    = im.resize((img_W,img_H))
        im    = im.transform((img_W,img_H),Image.AFFINE,(1,0,trans_w,0,1,trans_h))
        im    = im.rotate(rotation)
        if flip:
           im = im.transpose(Image.FLIP_LEFT_RIGHT)

        if scale>0:
           w_start = np.int(random.random()*(img_W - self.W))
           h_start = np.int(random.random()*(img_H - self.H))
           box     = (w_start, h_start, w_start+self.W, h_start+self.H)
           im      = im.crop(box)
        else:
           im  = im.resize((self.W, self.H))

#        im_name = 'label_{}_{}.png'.format(trans_h,trans_w)
#        im.save(im_name,"PNG")
#        print(im.size)
        label = np.array(im, dtype=np.uint8)
        print >> sys.stderr, 'Number of Objects: {}'.format(np.max(label))
        label = np.uint8((label>0))

        return label
项目:Seg-with-SPN    作者:JingchunCheng    | 项目源码 | 文件源码
def load_image_transform(self, idx, scale, rotation, trans_h, trans_w, flip):
       img_W = np.int( self.W*(1.0 + scale) )
       img_H = np.int( self.H*(1.0 + scale) ) 

       print >> sys.stderr, 'loading {}/00000.jpg'.format(idx)
       print >> sys.stderr, 'scale: {}; rotation: {}; translation: ({},{}); flip: {}.'.format(scale, rotation, trans_w, trans_h, flip)

       im = Image.open('{}/JPEGImages/480p/{}/00000.jpg'.format(self.davis_dir, idx))
       im    = im.resize((img_W,img_H))
       im    = im.transform((img_W,img_H),Image.AFFINE,(1,0,trans_w,0,1,trans_h))
       im    = im.rotate(rotation)
       if flip:
          im = im.transpose(Image.FLIP_LEFT_RIGHT)

       if scale>0:
          box = (np.int((img_W - self.W)/2), np.int((img_H - self.H)/2), np.int((img_W - self.W)/2)+self.W, np.int((img_H - self.H)/2)+self.H)
          im  = im.crop(box)
       else:
          im  = im.resize((self.W, self.H))

 #      im_name = 'img_{}_{}.jpg'.format(trans_h,trans_w)
 #      im.save(im_name,"JPEG")
 #      print(im.size)

       in_ = np.array(im, dtype=np.float32)
       in_ = in_[:,:,::-1]
       in_ -= self.mean  

       return in_
项目:Comicolorization    作者:DwangoMediaVillage    | 项目源码 | 文件源码
def get_example(self, i):
        # type: (any) -> typing.Tuple[str, Image]
        path = os.path.join(self._root, self._paths[i])
        image = Image.open(path)

        if self._resize is not None:
            image = image.resize(self._resize)

        if self._crop_size is not None:
            width, height = image.size

            if self._test is True:
                top = int((height - self._crop_size[1]) / 2)
                left = int((width - self._crop_size[0]) / 2)
                bottom = top + self._crop_size[1]
                right = left + self._crop_size[0]

            else:
                top = numpy.random.randint(height - self._crop_size[1] + 1)
                left = numpy.random.randint(width - self._crop_size[0] + 1)
                bottom = top + self._crop_size[1]
                right = left + self._crop_size[0]

            image = image.crop((left, top, right, bottom))

        if self._flip:
            if numpy.random.randint(2) == 1:
                image = image.transpose(Image.FLIP_LEFT_RIGHT)

        return path, image
项目:action-detection    作者:yjxiong    | 项目源码 | 文件源码
def __call__(self, img_group, is_flow=False):
        v = random.random()
        if v < 0.5:
            ret = [img.transpose(Image.FLIP_LEFT_RIGHT) for img in img_group]
            if self.is_flow:
                for i in range(0, len(ret), 2):
                    ret[i] = ImageOps.invert(ret[i])  # invert flow pixel values when flipping
            return ret
        else:
            return img_group
项目:pcbot    作者:pckv    | 项目源码 | 文件源码
def mirror(message: discord.Message, image_arg: image, extension: str.lower=None):
    """ Mirror an image along the x-axis. """
    if extension:
        image_arg.set_extension(extension)

    # Mirror the image
    image_arg.modify(Image.Image.transpose, Image.FLIP_LEFT_RIGHT)
    await send_image(message, image_arg)
项目:Lyssandra    作者:ektormak    | 项目源码 | 文件源码
def horizontal_reflection(img):
    #flips an image horizontally
    if isinstance(img,(np.ndarray,np.core.memmap)):
        img = np.array(Image.fromarray(img).transpose(Image.FLIP_LEFT_RIGHT))
    else:
        img = img.transpose(Image.FLIP_LEFT_RIGHT)
    return img
项目:Imagyn    作者:zevisert    | 项目源码 | 文件源码
def flip_vertical(img):
    """
    Flip image over the vertical axis
    :param img: PIL image object
    :return: PIL image object
    """
    return img.transpose(Image.FLIP_LEFT_RIGHT)
项目:Imagyn    作者:zevisert    | 项目源码 | 文件源码
def flip_diagonal(img):
    """
    Flip image over both axis
    :param img: PIL image object
    :return: PIL image object
    """
    imgcpy = img.transpose(Image.FLIP_TOP_BOTTOM)
    return imgcpy.transpose(Image.FLIP_LEFT_RIGHT)
项目:tsn-pytorch    作者:yjxiong    | 项目源码 | 文件源码
def __call__(self, img_group, is_flow=False):
        v = random.random()
        if v < 0.5:
            ret = [img.transpose(Image.FLIP_LEFT_RIGHT) for img in img_group]
            if self.is_flow:
                for i in range(0, len(ret), 2):
                    ret[i] = ImageOps.invert(ret[i])  # invert flow pixel values when flipping
            return ret
        else:
            return img_group
项目:tsn-pytorch    作者:yjxiong    | 项目源码 | 文件源码
def __call__(self, img_group):

        if self.scale_worker is not None:
            img_group = self.scale_worker(img_group)

        image_w, image_h = img_group[0].size
        crop_w, crop_h = self.crop_size

        offsets = GroupMultiScaleCrop.fill_fix_offset(False, image_w, image_h, crop_w, crop_h)
        oversample_group = list()
        for o_w, o_h in offsets:
            normal_group = list()
            flip_group = list()
            for i, img in enumerate(img_group):
                crop = img.crop((o_w, o_h, o_w + crop_w, o_h + crop_h))
                normal_group.append(crop)
                flip_crop = crop.copy().transpose(Image.FLIP_LEFT_RIGHT)

                if img.mode == 'L' and i % 2 == 0:
                    flip_group.append(ImageOps.invert(flip_crop))
                else:
                    flip_group.append(flip_crop)

            oversample_group.extend(normal_group)
            oversample_group.extend(flip_group)
        return oversample_group
项目:inception-face-shape-classifier    作者:adonistio    | 项目源码 | 文件源码
def fliplr_img(imdir,outdir,deg):    
    im = Image.open(imdir)
    out_filename = outdir
    im.transpose(Image.FLIP_LEFT_RIGHT).save(out_filename, 'JPEG', quality = 100)
项目:inception-face-shape-classifier    作者:adonistio    | 项目源码 | 文件源码
def fliplr_img(imdir,outdir):    
    im = Image.open(imdir)
    out_filename = outdir
    im.transpose(Image.FLIP_LEFT_RIGHT).save(out_filename, 'JPEG', quality = 100)
项目:pudzu    作者:Udzu    | 项目源码 | 文件源码
def mask(cls, size, round=0):
        """Rectangular mask with optional rounded corners."""
        m = Image.new("L", size, 255)
        if round > 0:
            w, h = int(round * size[0] / 2), int(round * size[1] / 2)
            m.place(Quadrant.mask((w,h)), align=(0,0), copy=False)
            m.place(Quadrant.mask((w,h)).transpose(Image.FLIP_LEFT_RIGHT), align=(1,0), copy=False)
            m.place(Quadrant.mask((w,h)).transpose(Image.FLIP_TOP_BOTTOM), align=(0,1), copy=False)
            m.place(Quadrant.mask((w,h)).transpose(Image.ROTATE_180), align=(1,1), copy=False)
        return m