本文整理匯總了Python中PIL.Image.TRANSPOSE屬性的典型用法代碼示例。如果您正苦於以下問題:Python Image.TRANSPOSE屬性的具體用法?Python Image.TRANSPOSE怎麽用?Python Image.TRANSPOSE使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類PIL.Image
的用法示例。
在下文中一共展示了Image.TRANSPOSE屬性的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: update_orientation
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def update_orientation(image):
exif_orientation_tag = 0x0112
if hasattr(image, '_getexif'):
exif = image._getexif()
if exif != None and exif_orientation_tag in exif:
orientation = exif.get(exif_orientation_tag, 1)
log_msg('Image has EXIF Orientation: ' + str(orientation))
# orientation is 1 based, shift to zero based and flip/transpose based on 0-based values
orientation -= 1
if orientation >= 4:
image = image.transpose(Image.TRANSPOSE)
if orientation == 2 or orientation == 3 or orientation == 6 or orientation == 7:
image = image.transpose(Image.FLIP_TOP_BOTTOM)
if orientation == 1 or orientation == 2 or orientation == 5 or orientation == 6:
image = image.transpose(Image.FLIP_LEFT_RIGHT)
return image
示例2: transpose
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def transpose(img):
"""Transpose the given PIL Image.
Args:
img (PIL Image): Image to be transposed.
Returns:
PIL Image: Transposed image.
"""
is_numpy = isinstance(img, np.ndarray)
if not _is_pil_image(img):
if is_numpy:
img = Image.fromarray(img)
else:
raise TypeError(
'img should be PIL Image or numpy array. \
Got {}'.format(type(img)))
img = img.transpose(Image.TRANSPOSE)
if is_numpy:
img = np.array(img)
return img
示例3: next
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def next(self):
from PIL import Image
if self.count + self.batch_size <= len(self.filenames):
data = []
label = []
for i in range(self.batch_size):
fn = self.filenames[self.count]
self.count += 1
image = Image.open(fn).convert('YCbCr').split()[0]
if image.size[0] > image.size[1]:
image = image.transpose(Image.TRANSPOSE)
image = mx.nd.expand_dims(mx.nd.array(image), axis=2)
target = image.copy()
for aug in self.input_aug:
image = aug(image)
for aug in self.target_aug:
target = aug(target)
data.append(image)
label.append(target)
data = mx.nd.concat(*[mx.nd.expand_dims(d, axis=0) for d in data], dim=0)
label = mx.nd.concat(*[mx.nd.expand_dims(d, axis=0) for d in label], dim=0)
data = [mx.nd.transpose(data, axes=(0, 3, 1, 2)).astype('float32')/255]
label = [mx.nd.transpose(label, axes=(0, 3, 1, 2)).astype('float32')/255]
return mx.io.DataBatch(data=data, label=label)
else:
raise StopIteration
示例4: next
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def next(self):
from PIL import Image
if self.count + self.batch_size <= len(self.filenames):
data = []
label = []
for i in range(self.batch_size):
fn = self.filenames[self.count]
self.count += 1
image = Image.open(fn).convert('YCbCr').split()[0]
if image.size[0] > image.size[1]:
image = image.transpose(Image.TRANSPOSE)
image = mx.nd.expand_dims(mx.nd.array(image), axis=2)
target = image.copy()
for aug in self.input_aug:
image = aug(image)[0]
for aug in self.target_aug:
target = aug(target)[0]
data.append(image)
label.append(target)
data = mx.nd.concat(*[mx.nd.expand_dims(d, axis=0) for d in data], dim=0)
label = mx.nd.concat(*[mx.nd.expand_dims(d, axis=0) for d in label], dim=0)
data = [mx.nd.transpose(data, axes=(0, 3, 1, 2)).astype('float32')/255]
label = [mx.nd.transpose(label, axes=(0, 3, 1, 2)).astype('float32')/255]
return mx.io.DataBatch(data=data, label=label)
else:
raise StopIteration
示例5: __call__
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def __call__(self, img, flip):
"""
Args:
img (PIL Image): Image to be flipped.
Returns:
PIL Image: Flipped image.
"""
if flip:
return vflip(img)
return img
# TRANSPOSE #
示例6: extract_edof
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def extract_edof(data, idx, fname):
if data[idx + 4:idx + 8] != b'edof':
print("ERROR: Frame is not EDOF")
return False
idx += 8
columns = int.from_bytes(data[idx + 16: idx + 18], byteorder='little')
rows = int.from_bytes(data[idx + 18: idx + 20], byteorder='little')
print("\t* found EDOF at %d with geometry=%dx%d" % (idx, columns, rows))
orientation = data[idx + 7]
idx += 68
img = Image.frombuffer('L', (columns, rows), data[idx:], 'raw', 'L', 0, 0)
if orientation == 0x10:
img = img.transpose(Image.FLIP_TOP_BOTTOM)
elif orientation == 0x12:
img = img.transpose(Image.FLIP_LEFT_RIGHT)
elif orientation == 0x13:
img = img.transpose(Image.TRANSPOSE)
if show_edof:
img.show()
if save_edof:
outfname = (''.join(fname.split('.')[:-1])) + '-EDOF.png'
print("\t * saving to %s" % outfname)
img.save(outfname)
return True
示例7: transpose_image
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def transpose_image(image, method):
""""Transpose (i.e. flip or rotate in 90° multiples) an image.
Given a PIL.Image ``image`` and a transposition mode ``method``,
apply the respective operation:
- ``PIL.Image.FLIP_LEFT_RIGHT``:
all pixels get mirrored at half the width of the image
- ``PIL.Image.FLIP_TOP_BOTTOM``:
all pixels get mirrored at half the height of the image
- ``PIL.Image.ROTATE_180``:
all pixels get mirrored at both, the width and half the height
of the image,
i.e. the image gets rotated by 180° counter-clockwise
- ``PIL.Image.ROTATE_90``:
rows become columns (but counted from the right) and
columns become rows,
i.e. the image gets rotated by 90° counter-clockwise;
width becomes height and vice versa
- ``PIL.Image.ROTATE_270``:
rows become columns and
columns become rows (but counted from the bottom),
i.e. the image gets rotated by 270° counter-clockwise;
width becomes height and vice versa
- ``PIL.Image.TRANSPOSE``:
rows become columns and vice versa,
i.e. all pixels get mirrored at the main diagonal;
width becomes height and vice versa
- ``PIL.Image.TRANSVERSE``:
rows become columns (but counted from the right) and
columns become rows (but counted from the bottom),
i.e. all pixels get mirrored at the opposite diagonal;
width becomes height and vice versa
Return a new PIL.Image.
"""
LOG.debug('transposing image with %s', membername(Image, method))
return image.transpose(method)
示例8: adjust_canvas_to_transposition
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def adjust_canvas_to_transposition(size, method):
"""Calculate the flipped image size after transposition.
Given a numpy array ``size`` of an original canvas (width and height),
and a transposition mode ``method`` (see ``transpose_image``),
calculate the new size after transposition.
Return a numpy array of the enlarged width and height.
"""
if method in [Image.ROTATE_90,
Image.ROTATE_270,
Image.TRANSPOSE,
Image.TRANSVERSE]:
size = size[::-1]
return size
示例9: _apply_exif_orientation
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import TRANSPOSE [as 別名]
def _apply_exif_orientation(image):
"""
Applies the exif orientation correctly.
This code exists per the bug:
https://github.com/python-pillow/Pillow/issues/3973
with the function `ImageOps.exif_transpose`. The Pillow source raises errors with
various methods, especially `tobytes`
Function based on:
https://github.com/wkentaro/labelme/blob/v4.5.4/labelme/utils/image.py#L59
https://github.com/python-pillow/Pillow/blob/7.1.2/src/PIL/ImageOps.py#L527
Args:
image (PIL.Image): a PIL image
Returns:
(PIL.Image): the PIL image with exif orientation applied, if applicable
"""
if not hasattr(image, "getexif"):
return image
exif = image.getexif()
if exif is None:
return image
orientation = exif.get(_EXIF_ORIENT)
method = {
2: Image.FLIP_LEFT_RIGHT,
3: Image.ROTATE_180,
4: Image.FLIP_TOP_BOTTOM,
5: Image.TRANSPOSE,
6: Image.ROTATE_270,
7: Image.TRANSVERSE,
8: Image.ROTATE_90,
}.get(orientation)
if method is not None:
return image.transpose(method)
return image