Python源码示例:PIL.ImageEnhance.Sharpness()
示例1
def _fry(img):
e = ImageEnhance.Sharpness(img)
img = e.enhance(100)
e = ImageEnhance.Contrast(img)
img = e.enhance(100)
e = ImageEnhance.Brightness(img)
img = e.enhance(.27)
r, b, g = img.split()
e = ImageEnhance.Brightness(r)
r = e.enhance(4)
e = ImageEnhance.Brightness(g)
g = e.enhance(1.75)
e = ImageEnhance.Brightness(b)
b = e.enhance(.6)
img = Image.merge('RGB', (r, g, b))
e = ImageEnhance.Brightness(img)
img = e.enhance(1.5)
temp = BytesIO()
temp.name = 'deepfried.png'
img.save(temp)
temp.seek(0)
return temp
示例2
def image_sharpness(self, factor: int, extension: str = "png"):
"""Change image sharpness
Args:
factor (int): Factor to increase the sharpness by
extension (str, optional): File extension of loaded image. Defaults to "png"
Returns:
Chepy: The Chepy object.
"""
image = Image.open(self._load_as_file())
image = self._force_rgb(image)
fh = io.BytesIO()
enhanced = ImageEnhance.Sharpness(image).enhance(factor)
enhanced.save(fh, extension)
self.state = fh.getvalue()
return self
示例3
def modifyImageBscc(imageData, brightness, sharpness, contrast, color):
"""Update with brightness, sharpness, contrast and color."""
brightnessMod = ImageEnhance.Brightness(imageData)
imageData = brightnessMod.enhance(brightness)
sharpnessMod = ImageEnhance.Sharpness(imageData)
imageData = sharpnessMod.enhance(sharpness)
contrastMod = ImageEnhance.Contrast(imageData)
imageData = contrastMod.enhance(contrast)
colorMod = ImageEnhance.Color(imageData)
imageData = colorMod.enhance(color)
return imageData
示例4
def save_img(fname, image, image_enhance=False): # 图像可以增强
image = Image.fromarray(image)
if image_enhance:
# 亮度增强
enh_bri = ImageEnhance.Brightness(image)
brightness = 1.2
image = enh_bri.enhance(brightness)
# 色度增强
enh_col = ImageEnhance.Color(image)
color = 1.2
image = enh_col.enhance(color)
# 锐度增强
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 1.2
image = enh_sha.enhance(sharpness)
imsave(fname, image)
return
示例5
def random_sharpness(image, jitter=.5):
"""
Random adjust sharpness for image
# Arguments
image: origin image for sharpness change
PIL Image object containing image data
jitter: jitter range for random sharpness,
scalar to control the random sharpness level.
# Returns
new_image: adjusted PIL Image object.
"""
enh_sha = ImageEnhance.Sharpness(image)
sharpness = rand(jitter, 1/jitter)
new_image = enh_sha.enhance(sharpness)
return new_image
示例6
def __init__(self):
self.policies = [
['Invert', 0.1, 7, 'Contrast', 0.2, 6],
['Rotate', 0.7, 2, 'TranslateX', 0.3, 9],
['Sharpness', 0.8, 1, 'Sharpness', 0.9, 3],
['ShearY', 0.5, 8, 'TranslateY', 0.7, 9],
['AutoContrast', 0.5, 8, 'Equalize', 0.9, 2],
['ShearY', 0.2, 7, 'Posterize', 0.3, 7],
['Color', 0.4, 3, 'Brightness', 0.6, 7],
['Sharpness', 0.3, 9, 'Brightness', 0.7, 9],
['Equalize', 0.6, 5, 'Equalize', 0.5, 1],
['Contrast', 0.6, 7, 'Sharpness', 0.6, 5],
['Color', 0.7, 7, 'TranslateX', 0.5, 8],
['Equalize', 0.3, 7, 'AutoContrast', 0.4, 8],
['TranslateY', 0.4, 3, 'Sharpness', 0.2, 6],
['Brightness', 0.9, 6, 'Color', 0.2, 8],
['Solarize', 0.5, 2, 'Invert', 0, 0.3],
['Equalize', 0.2, 0, 'AutoContrast', 0.6, 0],
['Equalize', 0.2, 8, 'Equalize', 0.6, 4],
['Color', 0.9, 9, 'Equalize', 0.6, 6],
['AutoContrast', 0.8, 4, 'Solarize', 0.2, 8],
['Brightness', 0.1, 3, 'Color', 0.7, 0],
['Solarize', 0.4, 5, 'AutoContrast', 0.9, 3],
['TranslateY', 0.9, 9, 'TranslateY', 0.7, 9],
['AutoContrast', 0.9, 2, 'Solarize', 0.8, 3],
['Equalize', 0.8, 8, 'Invert', 0.1, 3],
['TranslateY', 0.7, 9, 'AutoContrast', 0.9, 1],
]
示例7
def sharpness(img, magnitude):
magnitudes = np.linspace(0.1, 1.9, 11)
img = ImageEnhance.Sharpness(img).enhance(random.uniform(magnitudes[magnitude], magnitudes[magnitude+1]))
return img
示例8
def __call__(self, image, label):
#aug blur
if random.random() > set_ratio:
select = random.random()
if select < 0.3:
kernalsize = random.choice([3, 5])
image = cv2.GaussianBlur(image, (kernalsize, kernalsize), 0)
elif select < 0.6:
kernalsize = random.choice([3, 5])
image = cv2.medianBlur(image, kernalsize)
else:
kernalsize = random.choice([3, 5])
image = cv2.blur(image, (kernalsize, kernalsize))
# aug noise
if random.random() > set_ratio:
mu = 0
sigma = random.random() * 10.0
image = np.array(image, dtype=np.float32)
image += np.random.normal(mu, sigma, image.shape)
image[image > 255] = 255
image[image < 0] = 0
# aug_color
if random.random() > set_ratio:
random_factor = np.random.randint(4, 17) / 10.
color_image = ImageEnhance.Color(image).enhance(random_factor)
random_factor = np.random.randint(4, 17) / 10.
brightness_image = ImageEnhance.Brightness(color_image).enhance(random_factor)
random_factor = np.random.randint(6, 15) / 10.
contrast_image = ImageEnhance.Contrast(brightness_image).enhance(random_factor)
random_factor = np.random.randint(8, 13) / 10.
image = ImageEnhance.Sharpness(contrast_image).enhance(random_factor)
return np.array(image), label
示例9
def __call__(self, image, label):
if random.random() < set_ratio:
return image, label
image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
random_factor = np.random.randint(4, 17) / 10.
color_image = ImageEnhance.Color(image).enhance(random_factor)
random_factor = np.random.randint(4, 17) / 10.
brightness_image = ImageEnhance.Brightness(color_image).enhance(random_factor)
random_factor = np.random.randint(6, 15) / 10.
contrast_image = ImageEnhance.Contrast(brightness_image).enhance(random_factor)
random_factor = np.random.randint(8, 13) / 10.
image = ImageEnhance.Sharpness(contrast_image).enhance(random_factor)
return np.uint8(np.array(image)[:,:,::-1]), label
示例10
def __init__(self):
self.policies = [
['Invert', 0.1, 7, 'Contrast', 0.2, 6],
['Rotate', 0.7, 2, 'TranslateX', 0.3, 9],
['Sharpness', 0.8, 1, 'Sharpness', 0.9, 3],
['ShearY', 0.5, 8, 'TranslateY', 0.7, 9],
['AutoContrast', 0.5, 8, 'Equalize', 0.9, 2],
['ShearY', 0.2, 7, 'Posterize', 0.3, 7],
['Color', 0.4, 3, 'Brightness', 0.6, 7],
['Sharpness', 0.3, 9, 'Brightness', 0.7, 9],
['Equalize', 0.6, 5, 'Equalize', 0.5, 1],
['Contrast', 0.6, 7, 'Sharpness', 0.6, 5],
['Color', 0.7, 7, 'TranslateX', 0.5, 8],
['Equalize', 0.3, 7, 'AutoContrast', 0.4, 8],
['TranslateY', 0.4, 3, 'Sharpness', 0.2, 6],
['Brightness', 0.9, 6, 'Color', 0.2, 8],
['Solarize', 0.5, 2, 'Invert', 0, 0.3],
['Equalize', 0.2, 0, 'AutoContrast', 0.6, 0],
['Equalize', 0.2, 8, 'Equalize', 0.6, 4],
['Color', 0.9, 9, 'Equalize', 0.6, 6],
['AutoContrast', 0.8, 4, 'Solarize', 0.2, 8],
['Brightness', 0.1, 3, 'Color', 0.7, 0],
['Solarize', 0.4, 5, 'AutoContrast', 0.9, 3],
['TranslateY', 0.9, 9, 'TranslateY', 0.7, 9],
['AutoContrast', 0.9, 2, 'Solarize', 0.8, 3],
['Equalize', 0.8, 8, 'Invert', 0.1, 3],
['TranslateY', 0.7, 9, 'AutoContrast', 0.9, 1],
]
示例11
def sharpness(img, magnitude):
magnitudes = np.linspace(0.1, 1.9, 11)
img = ImageEnhance.Sharpness(img).enhance(random.uniform(magnitudes[magnitude], magnitudes[magnitude+1]))
return img
示例12
def test_sharpness_with_PIL(factor):
np.random.seed(0)
image = np.random.randint(low=0, high=255, size=(10, 5, 5, 3), dtype=np.uint8)
sharpened = np.stack(
[ImageEnhance.Sharpness(Image.fromarray(i)).enhance(factor) for i in image]
)
np.testing.assert_allclose(
color_ops.sharpness(tf.constant(image), factor).numpy(), sharpened, atol=1
)
示例13
def test_sanity(self):
# FIXME: assert_image
# Implicit asserts no exception:
ImageEnhance.Color(hopper()).enhance(0.5)
ImageEnhance.Contrast(hopper()).enhance(0.5)
ImageEnhance.Brightness(hopper()).enhance(0.5)
ImageEnhance.Sharpness(hopper()).enhance(0.5)
示例14
def test_crash(self):
# crashes on small images
im = Image.new("RGB", (1, 1))
ImageEnhance.Sharpness(im).enhance(0.5)
示例15
def test_alpha(self):
# Issue https://github.com/python-pillow/Pillow/issues/899
# Is alpha preserved through image enhancement?
original = self._half_transparent_image()
for op in ['Color', 'Brightness', 'Contrast', 'Sharpness']:
for amount in [0, 0.5, 1.0]:
self._check_alpha(
getattr(ImageEnhance, op)(original).enhance(amount),
original, op, amount)
示例16
def __call__(self, img):
factor = 1.0 + np.random.randn(1)/5
# print("sharpness {}".format(factor))
enhancer = ImageEnhance.Sharpness(img)
return enhancer.enhance(factor)
示例17
def _videofry(img, duration):
imgs = []
frame = 0
while img:
i = img.copy()
i = i.convert('RGB')
e = ImageEnhance.Sharpness(i)
i = e.enhance(100)
e = ImageEnhance.Contrast(i)
i = e.enhance(100)
e = ImageEnhance.Brightness(i)
i = e.enhance(.27)
r, g, b = i.split()
e = ImageEnhance.Brightness(r)
r = e.enhance(4)
e = ImageEnhance.Brightness(g)
g = e.enhance(1.75)
e = ImageEnhance.Brightness(b)
b = e.enhance(.6)
e = ImageEnhance.Contrast(b)
i = Image.merge('RGB', (r, g, b))
e = ImageEnhance.Brightness(i)
i = e.enhance(1.5)
imgs.append(i)
frame += 1
try:
img.seek(frame)
except EOFError:
break
temp = BytesIO()
temp.name = 'deepfried.gif'
if duration:
imgs[0].save(temp, format='GIF', save_all=True, append_images=imgs[1:], loop=0, duration=duration)
else:
imgs[0].save(temp, format='GIF', save_all=True, append_images=imgs[1:], loop=0)
temp.seek(0)
return temp
示例18
def _nuke(img):
w, h = img.size[0], img.size[1]
dx = ((w+200)//200)*2
dy = ((h+200)//200)*2
img = img.resize(((w+1)//dx,(h+1)//dy))
e = ImageEnhance.Sharpness(img)
img = e.enhance(100)
e = ImageEnhance.Contrast(img)
img = e.enhance(100)
e = ImageEnhance.Brightness(img)
img = e.enhance(.27)
r, b, g = img.split()
e = ImageEnhance.Brightness(r)
r = e.enhance(4)
e = ImageEnhance.Brightness(g)
g = e.enhance(1.75)
e = ImageEnhance.Brightness(b)
b = e.enhance(.6)
img = Image.merge('RGB', (r, g, b))
e = ImageEnhance.Brightness(img)
img = e.enhance(1.5)
e = ImageEnhance.Sharpness(img)
img = e.enhance(100)
img = img.resize((w,h),Image.BILINEAR)
temp = BytesIO()
temp.name = 'nuke.jpg'
img.save(temp, quality=1)
temp.seek(0)
return temp
示例19
def sharpness(img, factor, **__):
return ImageEnhance.Sharpness(img).enhance(factor)
示例20
def auto_augment_policy_original(hparams):
# ImageNet policy from https://arxiv.org/abs/1805.09501
policy = [
[('PosterizeOriginal', 0.4, 8), ('Rotate', 0.6, 9)],
[('Solarize', 0.6, 5), ('AutoContrast', 0.6, 5)],
[('Equalize', 0.8, 8), ('Equalize', 0.6, 3)],
[('PosterizeOriginal', 0.6, 7), ('PosterizeOriginal', 0.6, 6)],
[('Equalize', 0.4, 7), ('Solarize', 0.2, 4)],
[('Equalize', 0.4, 4), ('Rotate', 0.8, 8)],
[('Solarize', 0.6, 3), ('Equalize', 0.6, 7)],
[('PosterizeOriginal', 0.8, 5), ('Equalize', 1.0, 2)],
[('Rotate', 0.2, 3), ('Solarize', 0.6, 8)],
[('Equalize', 0.6, 8), ('PosterizeOriginal', 0.4, 6)],
[('Rotate', 0.8, 8), ('Color', 0.4, 0)],
[('Rotate', 0.4, 9), ('Equalize', 0.6, 2)],
[('Equalize', 0.0, 7), ('Equalize', 0.8, 8)],
[('Invert', 0.6, 4), ('Equalize', 1.0, 8)],
[('Color', 0.6, 4), ('Contrast', 1.0, 8)],
[('Rotate', 0.8, 8), ('Color', 1.0, 2)],
[('Color', 0.8, 8), ('Solarize', 0.8, 7)],
[('Sharpness', 0.4, 7), ('Invert', 0.6, 8)],
[('ShearX', 0.6, 5), ('Equalize', 1.0, 9)],
[('Color', 0.4, 0), ('Equalize', 0.6, 3)],
[('Equalize', 0.4, 7), ('Solarize', 0.2, 4)],
[('Solarize', 0.6, 5), ('AutoContrast', 0.6, 5)],
[('Invert', 0.6, 4), ('Equalize', 1.0, 8)],
[('Color', 0.6, 4), ('Contrast', 1.0, 8)],
[('Equalize', 0.8, 8), ('Equalize', 0.6, 3)],
]
pc = [[AugmentOp(*a, hparams=hparams) for a in sp] for sp in policy]
return pc
示例21
def auto_augment_policy_originalr(hparams):
# ImageNet policy from https://arxiv.org/abs/1805.09501 with research posterize variation
policy = [
[('PosterizeIncreasing', 0.4, 8), ('Rotate', 0.6, 9)],
[('Solarize', 0.6, 5), ('AutoContrast', 0.6, 5)],
[('Equalize', 0.8, 8), ('Equalize', 0.6, 3)],
[('PosterizeIncreasing', 0.6, 7), ('PosterizeIncreasing', 0.6, 6)],
[('Equalize', 0.4, 7), ('Solarize', 0.2, 4)],
[('Equalize', 0.4, 4), ('Rotate', 0.8, 8)],
[('Solarize', 0.6, 3), ('Equalize', 0.6, 7)],
[('PosterizeIncreasing', 0.8, 5), ('Equalize', 1.0, 2)],
[('Rotate', 0.2, 3), ('Solarize', 0.6, 8)],
[('Equalize', 0.6, 8), ('PosterizeIncreasing', 0.4, 6)],
[('Rotate', 0.8, 8), ('Color', 0.4, 0)],
[('Rotate', 0.4, 9), ('Equalize', 0.6, 2)],
[('Equalize', 0.0, 7), ('Equalize', 0.8, 8)],
[('Invert', 0.6, 4), ('Equalize', 1.0, 8)],
[('Color', 0.6, 4), ('Contrast', 1.0, 8)],
[('Rotate', 0.8, 8), ('Color', 1.0, 2)],
[('Color', 0.8, 8), ('Solarize', 0.8, 7)],
[('Sharpness', 0.4, 7), ('Invert', 0.6, 8)],
[('ShearX', 0.6, 5), ('Equalize', 1.0, 9)],
[('Color', 0.4, 0), ('Equalize', 0.6, 3)],
[('Equalize', 0.4, 7), ('Solarize', 0.2, 4)],
[('Solarize', 0.6, 5), ('AutoContrast', 0.6, 5)],
[('Invert', 0.6, 4), ('Equalize', 1.0, 8)],
[('Color', 0.6, 4), ('Contrast', 1.0, 8)],
[('Equalize', 0.8, 8), ('Equalize', 0.6, 3)],
]
pc = [[AugmentOp(*a, hparams=hparams) for a in sp] for sp in policy]
return pc
示例22
def do_sharpness(self):
"""usage: sharpness <image:pic1>
Enhance sharpness in the top image.
"""
from PIL import ImageEnhance
factor = float(self.do_pop())
image = self.do_pop()
enhancer = ImageEnhance.Sharpness(image)
self.push(enhancer.enhance(factor))
# The interpreter loop
示例23
def sharpness(pil_img, level, *args):
level = float_parameter(sample_level(level), 1.8) + 0.1
return ImageEnhance.Sharpness(pil_img).enhance(level)
示例24
def __call__(self, img):
factor = 1.0 + np.random.randn(1)/5
# print("sharpness {}".format(factor))
enhancer = ImageEnhance.Sharpness(img)
return enhancer.enhance(factor)
示例25
def __init__(self, prob, magnitude):
super(Sharpness, self).__init__(prob, magnitude)
示例26
def __call__(self, image):
if random.uniform(0, 1) > self.prob:
return image
else:
magnitude_range = np.linspace(0.1, 1.9, 10)
factor = magnitude_range[self.magnitude]
enhancer = ImageEnhance.Sharpness(image)
return enhancer.enhance(factor)
示例27
def __call__(self, sample):
img = sample[0]
sharp_factor = np.random.uniform(max(0, 1 - self.sharp), 1 + self.sharp)
enhancer = ImageEnhance.Sharpness(img)
img = enhancer.enhance(sharp_factor)
transform = self.get_params(self.brightness, self.contrast,
self.saturation, self.hue)
img = transform(img)
sample[0] = img
return sample
示例28
def image_to_unicode(self, image, font_data, width=None, height=None):
img = Image.open(image)
if width and not height:
ratio = width/img.size[0]
img = img.resize((width, round(img.size[1] * ratio * 0.5)), Image.BILINEAR)
elif not width and height:
ratio = width/img.size[1]
img = img.resize((round(img.size[0] * ratio), round(height * 0.5)), Image.BILINEAR)
else:
img = img.resize((width, round(height * 0.5)), Image.BILINEAR)
img = img.convert("L")
# Enhance!
#contrast = ImageEnhance.Contrast(img)
#img = contrast.enhance(0.7)
#sharpen = ImageEnhance.Sharpness(img)
#img = sharpen.enhance(1.5)
# Process data.
keys = sorted(list(font_data.keys()))
out = ""
for y in range(img.size[1]):
for x in range(img.size[0]):
lum = img.getpixel((x, y))
index = bisect.bisect(keys, lum) - 1
out += chr(random.choice(font_data[keys[index]]))
out += "\n"
return out
示例29
def randomColor(image):
"""
对图像进行颜色抖动
:param image: PIL的图像image
:return: 有颜色色差的图像image
"""
random_factor = np.random.randint( 0, 31 ) / 10. # 随机因子
color_image = ImageEnhance.Color( image ).enhance( random_factor ) # 调整图像的饱和度
random_factor = np.random.randint( 10, 21 ) / 10. # 随机因子
brightness_image = ImageEnhance.Brightness( color_image ).enhance( random_factor ) # 调整图像的亮度
random_factor = np.random.randint( 10, 21 ) / 10. # 随机因1子
contrast_image = ImageEnhance.Contrast( brightness_image ).enhance( random_factor ) # 调整图像对比度
random_factor = np.random.randint( 0, 31 ) / 10. # 随机因子
return ImageEnhance.Sharpness( contrast_image ).enhance( random_factor ) # 调整图像锐度
示例30
def tranfun(self, image):
image = getpilimage(image)
sha = ImageEnhance.Sharpness(image)
return sha.enhance(random.uniform(self.lower, self.upper))