Fractals/Image noise
Image noise ^{[1]}
 set of all pixels which are not rendered properly
 "aberrant pixels. That means pixels that are not representing the colour ... correctly. " Barry J Brady^{[2]}
Noise can be in different situations. Here only noise in the rendered images is incuded. So there is no original image^{[3]}, no photo, no signal, ...
key words[edit  edit source]
 pixel spacing
types[edit  edit source]
 in mathworks ^{[4]}
 snibgo's ImageMagick pages: Noise
Moire patterns[edit  edit source]
"A uniform grid is known to produce Moire patterns from the interaction of thin nearparallel lines with the regularly spaced sampling points."^{[5]}
aliasing[edit  edit source]
" Our images look noisy and grainy near the boundary of the Mandelbrot set. The escape time bands get closer and closer, while the pixel spacing is fixed. The pixel grid samples isolated points of a mathematically abstract image defined on the continuous plane. The NyquistShannon sampling theorem shows that sampling isolated points from a continuum is a valid approximation only so long as the values don’t change too quickly between the points. Aliasing occurs when the values do change too quickly compared to the sampling rate, with the grainy noisy visual effects as we have been. Because the escape time bands increase in number without bound as we approach the boundary of the Mandelbrot set, no sampling rate can be high enough." Claude HeilandAllen^{[6]}

binary decomposition of level sets of exterior of Mandelbrot set

Mandelbrot set using level set method
Commonly Used Image Quality Metrics[edit  edit source]
 PSNR (Peak SignaltoNoise Ratio)
 SSIM (Structural similarity)
 NIQE (Naturalness Image Quality Evaluator)
How to[edit  edit source]
detect noise[edit  edit source]
"To detect noise you first need to know the properties of your useful data. So if you have no prior knowledge of the input images then you Can not reliably detect noise." Spektre^{[7]}
measure noise[edit  edit source]
 "an objective measurement for image quality based on" the structural similarity ^{[8]}
 noise rate = number of pixels that were recognized as noise. "To differentiate normal pixels from noise, I just calculated the medium value of its neighbor pixels and if its value was bigger than some critical value, we say that this one is noise."^{[9]}
 " Instead of classifying a pixel as noise if it exceeds such a threshold, you could measure the "error" and compute the variance or standard deviation for all of the pixels in the image. This would help you distinguish between having n pixels just above the threshold and n pixels way out whack. It also avoids the need to select a threshold." Adrian McCarthy
 estimate the noise variance^{[10]} If you get sigma > 10.0, then you have a noisy image ( only for grayscale)
// https://stackoverflow.com/questions/8960462/howcanimeasureimagenoise
// noise rate by Vitalii Boiarskyi
if (ABS(1  (currentPixel.R+currentPixel.G+currentPixel.B)/(neigborsMediumValues.R + neigboursMediumValues.G + neigboursMediumValues.B))) > criticalValue)
then
{
currentPixelIsNoise = TRUE;
}
# https://stackoverflow.com/questions/2440504/noiseestimationnoisemeasurementinimage
# J. Immerkær, “Fast Noise Variance Estimation”, Computer Vision and Image Understanding, Vol. 64, No. 2, pp. 300302, Sep. 1996
import math,
import numpy as np
from scipy.signal import convolve2d
def estimate_noise(I):
H, W = I.shape # Tuple of image array dimensions.
M = [[1, 2, 1],
[2, 4, 2],
[1, 2, 1]]
sigma = np.sum(np.sum(np.absolute(convolve2d(I, M))))
sigma = sigma * math.sqrt(0.5 * math.pi) / (6 * (W2) * (H2))
return sigma
remove noise[edit  edit source]
"Noise reduction therefore quickly becomes an ‘AIcomplete’ problem " Mark Scott Abeln ^{[11]}
names:
 denoising^{[12]}
 remove noise
 noise reduction
software
Methods
 High precision
 perturbation technique
 rebasing : rebase to new reference and carry on^{[13]}
 Bivariate Linear Approximation ( BLA)
 Distance Estimation
 Interior Detection: Keep track of derivatives at the critical point. When the absolute value of the derivative drops below a threshold such as 0.001
, classify it as interior and stop iterating.
precision[edit  edit source]
 increasing precision
sampling[edit  edit source]
 increasing sampling (subpixel accuracy )^{[14]}
 jittering the sampling points^{[15]}^{[16]}
 Poisson Disk Sampling^{[17]}
 in matlab
Enlargement of a 6×6 pixel raster graphic to 11×11 pixels (the low image resolutions in this example were chosen for better clarity; the principle is the same for higher resolutions).
 1: input image; the pixels are shown here as circles.
 2: The pixel grid of the output image, shown here as yellow crosses, is superimposed on the input image.
 3: The color values of the output image are calculated from the nearby pixels of the input image.
 4: Output image.
postprocessing[edit  edit source]
 with Image Magic^{[18]}
mask[edit  edit source]
 mask the grainy noise from aliasing ( fadingout)
dither[edit  edit source]
Dither is an intentionally applied form of noise used to randomize quantization error, preventing largescale patterns such as color banding in images. ^{[19]}^{[20]}
dither to more accurately display graphics containing a greater range of colors than the display hardware is capable of showing:
 The limited precision of 8bit (s)RGB means visible banding can occur, particularly in darker areas with smooth gradients. Adding dither trades off spatial resolution vs colour resolution, spreading the quantisation errors around so the end result is more perceptually uniform.^{[21]}
It is simply and ease of implementation^{[22]}
BLA[edit  edit source]
The iterations can be approximated by bivariate linear function( A linear function with with two variables is called a bivariate linear function):
For Mandelbrot set
For Mandelbrot set this is valid when: "nonlinear part of the full perturbation iterations is so small that omitting it would cause fewer problems than the rounding error of the low precision data type"^{[23]}
BLA can be used for
 acceleration
 avoiding glitches
Variants:
 steps
 Single Step BLA
 Multiple step BLA
 NonConformal BLA
 ABS Variation BLA
 Hybrid BLA
 Multiple Critical Points
Examples[edit  edit source]
glitches[edit  edit source]
glitches
 Incorrect parts of renders^{[24]} using perturbation techique
 pixel which dynamics differ significantly from the dynamics of the reference pixel^{[25]}
 pixel which is unevaluated ( unknown pixel) or glitched or otherwise bad
Types of glitches:^{[26]}
 noisy = isolated pixels
 solid = The largest connected component of the set of such pixels
See also:
Code[edit  edit source]
 Efficient computational noise in GLSL by Ian McEwan, David Sheets, Stefan Gustavson, Mark Richardson
 aizvorski: videoquality
See also[edit  edit source]
 image quality
 jagged and pixelated edges, colloquially known as "jaggies" ( see antialiasing)
 Jitter is an
 Jittered grid in supresampling = "random displacements of the center of the pixel withing the square of the actual pixel" ( Gerrit)^{[27]}
 variation of a periodic item ^{[28]}
 commons categorise
 procedural noise
 State of the Art in Procedural Noise Functions by A. Lagae, S. Lefebvre, R. Cook, T. DeRose, G. Drettakis, D.S. Ebert, J.P. Lewis K. Perlin7 M. Zwicker8
 pseudorandom noise in image graphic^{[29]}
 band limiting is a good solution for noisy functions ( Inigo Quilez)
References[edit  edit source]
 ↑ wikipedia: Image noise
 ↑ digitalphotographyschool : howtoavoidandreducenoiseinyourimages
 ↑ scikitimage.org docs: denoise
 ↑ mathworks: imnoise
 ↑ fractalforums.org : jitterformoirereduction
 ↑ mandelbrotbook: noise
 ↑ stackoverflow question: javascriptimagenoisedetection
 ↑ Image Quality Assessment: From Error Visibility to Structural Similarity by Zhou Wang, at al.
 ↑ stackoverflow question: howcanimeasureimagenoise
 ↑ stackoverflow question : noiseestimationnoisemeasurementinimage
 ↑ thereisdetailinnoise by Mark Scott Abeln
 ↑ wenbihan: reproducibleimagedenoisingstateoftheart
 ↑ fractalforums.org: Another solution to perturbation glitches
 ↑ fractalforums.org : restrictrecomputedareaswithiterationincrease
 ↑ fractalforums.org: jitterformoirereduction
 ↑ fractalforums.org sampling
 ↑ poisson_disk_sampling by Cem Yuksel
 ↑ fractalforums.org: analyticlogdepostprocessedwithimagemagick
 ↑ Dither in wikipedia
 ↑ Marek Fiser: Is16millioncolorsenough
 ↑ fractalforums: ditheringforbetterimagequality
 ↑ dither by Øyvind Kolås, pippin@gimp.org , august 2013
 ↑ fraktaler by Claude HeilandAllen
 ↑ dinkydauset at deviantar :PerturbationfortheMandelbrotset450766847
 ↑ math.stackexchange question: selectingreferenceorbitforfractalrenderingwithperturbationtheory
 ↑ fractalforums.org : howtogetsecondreferencewhenusingperturbationtheory
 ↑ fractalforums.org: arethemandelbrotsetsgenerateddifferentinappearancetotheactualset
 ↑ Jitter in wikipedia
 ↑ matteobasei : noise