Image.Random#
- classmethod Image.Random(*, size: int | Sequence[int] | None = None, colororder: str | None = None, dtype: Dtype | None = None, maxval: int | float | None = None, pdf: np.ndarray | None = None, like=None) Self[source]#
Create image with random pixel values
- Parameters:
size (int, 2-tuple or 3-tuple) – image size: size, (width, height) or (width, height, nplanes)
colororder (str) – color plane names, defaults to None
dtype (str or NumPy dtype, optional) – NumPy datatype, defaults to ‘uint8’
The short-name aliases
'int','float','double','half'are also accepted and resolve to the Toolbox’s own defaults (uint8,float32,float64,float16respectively) – this matters because NumPy’s ownnp.dtype('float')resolves tofloat64, notfloat32. SeeDTYPE_ALIASES. :param maxval: maximum value for random values, defaults to None :type maxval: same asdtype, optional :param pdf: probability density function for pixel values, defaults to None :type pdf: 1D or 2D array_like, optional :param like: template image supplying defaultsize,dtypeandcolororderwhen those are not given explicitly- Returns:
image of random values
- Return type:
The dimensions can be specified by a single scalar, a 2-tuple or a 3-tuple. If a single scalar is given the image is square. If a 2-tuple is given the image has one plane, if a 3-tuple is given the last element specifies the number of planes.
Creates a new image where pixels are initialized to random values:
for an integer image the values are uniformly distributed in the range 0 to
maxval. Ifmaxvalis not given then the values span the range 0 to the maximum positive value of the datatype. For a floating image the values span the range 0.0 to 1.0.if
pdfis given then the pixel values are drawn from the given probability density function, which should be normalized to sum to 1. Ifpdfis a 1D array then the same pdf is used for all planes, if it is a 2D array then each column gives the pdf for the corresponding plane. This option is only supported foruint8images, and if given thenmaxvalis ignored.
Example:
>>> from machinevisiontoolbox import Image >>> img = Image.Random(size=3) >>> img.print() 17 96 37 62 162 248 100 169 150 >>> img = Image.Random(size=3, colororder='RGB') >>> img.print() plane R: 244 246 195 156 75 89 41 105 22 plane G: 115 141 226 139 45 19 135 16 56 plane B: 121 160 113 190 95 234 129 17 39 >>> img.red().print() 244 246 195 156 75 89 41 105 22 >>> img = Image.Random(size=3, dtype='float32') >>> img.print <bound method Image.print of Image(size=(3, 3), dtype=float32)> >>> Image.Random(size=100).disp() <matplotlib.image.AxesImage object at 0x7fa8de7c21b0>
(
Source code,png,hires.png,pdf)
We could, for example, create a random image with the same histogram as an existing image:
>>> from machinevisiontoolbox import Image >>> img = Image.Read("street.png") >>> h = img.hist() >>> h.plot('pdf') >>> img2 = Image.Random(size=img.size, pdf=h.pdf) >>> img2.hist().plot('pdf')
(
Source code,png,hires.png,pdf)
- Seealso: