Source code for pyllusion.image.image_noise
import numpy as np
import PIL.Image, PIL.ImageDraw, PIL.ImageFilter, PIL.ImageFont, PIL.ImageOps
from .utilities import _rgb
[docs]def image_noise(
width=500,
height=500,
red=np.random.uniform,
green=np.random.uniform,
blue=np.random.uniform,
blackwhite=False,
blur=0,
**kwargs
):
"""
Creates a PIL RGB image of specific dimensions made of random dots.
Parameters
----------
width : int
Width of the returned image.
height : int
Height of the returned image.
red, green, blue : callable
Function to generate random color.
blackwhite : bool
If True, image is converted to black and white.
blur : int
The degree of blur filter for the image returned.
**kwargs
Additional arguments passed into `_rgb()`.
Returns
-------
Image
Image of noises made of random dots.
Examples
----------
>>> import pyllusion
>>>
>>> pyllusion.image_noise()
>>> pyllusion.image_noise(blackwhite=True)
>>> pyllusion.image_noise(blur=0.005)
"""
# Generate random colors
r = red(size=(width, height), **kwargs)
g = green(size=(width, height), **kwargs)
b = blue(size=(width, height), **kwargs)
pixels = np.array([_rgb(r), _rgb(g), _rgb(b)]).T
# Convert to PIL image
image = PIL.Image.fromarray(pixels.astype("uint8"), "RGB")
# Convert to black and white
if blackwhite is True:
image = image.convert("L").convert("RGB")
# Blur the background a bit
if blur > 0:
image = image.filter(PIL.ImageFilter.GaussianBlur(blur * height))
return image