跳转到内容

分形/图像噪声

来自维基教科书,开放世界中的开放书籍

图像噪声 [1]

  • 所有未正确渲染的像素的集合
  • "异常像素。这意味着像素没有正确地代表颜色......" Barry J Brady[2]

噪声可能出现在不同的情况下。这里只包括渲染图像中的噪声。所以没有原始图像[3],没有照片,没有信号,...

关键词

[编辑 | 编辑源代码]
  • 像素间距


莫尔纹

[编辑 | 编辑源代码]

"众所周知,均匀网格会因细密的近乎平行的线条与规则间隔的采样点相互作用而产生莫尔纹。"[5]

   " 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 Nyquist-Shannon 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 Heiland-Allen[6]


常用的图像质量指标

[编辑 | 编辑源代码]
  • PSNR (峰值信噪比)
  • SSIM (结构相似度)
  • NIQE (自然图像质量评估器)

检测噪声

[编辑 | 编辑源代码]
   "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]

测量噪声

[编辑 | 编辑源代码]
  • "基于结构相似度"的图像质量客观测量。 [8]
  • 噪声率 = 被识别为噪声的像素数量。“为了区分正常像素和噪声像素,我只计算了其相邻像素的中值,如果其值大于某个临界值,我们就会说该像素是噪声。"[9]
  • " 而不是在像素超过某个阈值时将其归类为噪声,你可以测量“误差”并计算图像中所有像素的方差或标准差。这将有助于你区分 n 个像素刚好超过阈值和 n 个像素完全不正常。它还避免了选择阈值的必要性。" Adrian McCarthy
  • 估计噪声方差[10] 如果得到 sigma > 10.0,那么你的图像就存在噪声(只针对灰度图像)。


// https://stackoverflow.com/questions/8960462/how-can-i-measure-image-noise
// 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/noise-estimation-noise-measurement-in-image
# J. Immerkær, “Fast Noise Variance Estimation”, Computer Vision and Image Understanding, Vol. 64, No. 2, pp. 300-302, 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 * (W-2) * (H-2))

  return sigma

去除噪声

[编辑 | 编辑源代码]
       "Noise reduction therefore quickly becomes an ‘AI-complete’ problem " Mark Scott Abeln [11]

名称

  • 降噪[12]
  • 去除噪声
  • 降噪

软件


方法

  • 高精度
  • 扰动技术
  • 重新定位:重新定位到新的参考并继续[13]
  • 双变量线性逼近 (BLA)
  • 距离估计
  • 内部检测:跟踪临界点的导数。当导数的绝对值下降到某个阈值(例如 0.001)

时,将其归类为内部并停止迭代。


  • 提高精度


将 6×6 像素光栅图形放大到 11×11 像素(本示例中的低图像分辨率是为了更好地说明;对于更高的分辨率,原理相同)。

  • 1:输入图像;像素在此以圆圈表示。
  • 2:输出图像的像素网格,在此以黄色十字表示,叠加在输入图像上。
  • 3:输出图像的颜色值由输入图像的附近像素计算得出。
  • 4:输出图像。


Image resampling
图像重采样


图像重采样重建滤波器。使用径向对称重建滤波器进行缩放(载体以绿色显示)。输出图像的颜色值计算为输入图像的颜色值之和,并以重建滤波器为权重。
当使用双线性插值进行缩放时,输出图像的颜色值由输入图像的四个最接近的颜色值计算得出。

后处理

[编辑 | 编辑源代码]
  • 使用 Image Magic[18]
  • 从混叠中屏蔽颗粒状噪声(淡出)。

抖动是一种有意应用的噪声形式,用于随机化量化误差,防止图像中出现大尺度图案,如颜色带状现象。 [19][20]

抖动可以更准确地显示包含比显示硬件所能显示的更大范围颜色的图形。

  • 8 位 (s)RGB 的有限精度意味着可能会出现明显的带状现象,尤其是在具有平滑渐变的较暗区域。添加抖动会牺牲空间分辨率换取颜色分辨率,将量化误差分散开来,因此最终结果在感知上更均匀。[21]


它简单易实现[22]

迭代可以用二元线性函数逼近(具有两个变量的线性函数称为二元线性函数)

 

对于曼德布罗特集


对于曼德布罗特集,当“完整扰动迭代的非线性部分非常小,以至于省略它会导致的问题比低精度数据类型的舍入误差更少”时,这是有效的[23]

 



BLA 可以用于

  • 加速
  • 避免故障


变体

  • 步骤
    • 单步 BLA
    • 多步 BLA
  • 非共形 BLA
  • ABS 变体 BLA
  • 混合 BLA
  • 多个临界点

故障

  • 使用扰动技术的渲染的错误部分[24]
  • 其动力学与参考像素的动力学显着不同的像素[25]
  • 未评估的像素(未知像素)或故障或其他不良像素

故障类型:[26]

  • 噪声 = 孤立像素
  • 实心 = 此类像素集合中最大的连通分量

参见

超采样 - 抖动

参考文献

[编辑 | 编辑源代码]
  1. 维基百科:图像噪声
  2. digital-photography-school : 如何避免和减少图像中的噪声
  3. scikit-image.org 文档:降噪
  4. mathworks:imnoise
  5. fractalforums.org : 抖动以减少摩尔纹
  6. mandelbrot-book:噪声
  7. stackoverflow 问题:javascript-image-noise-detection
  8. 周旺等人著《图像质量评估:从错误可见性到结构相似性》
  9. stackoverflow 问题:如何测量图像噪声
  10. stackoverflow 问题 : 噪声估计 - 图像中的噪声测量
  11. Mark Scott Abeln 撰写的 there-is-detail-in-noise
  12. wenbihan:可重复的图像降噪 - 最先进技术
  13. fractalforums.org:另一种解决扰动故障的方法
  14. fractalforums.org : 限制迭代次数增加时重新计算的区域
  15. fractalforums.org:抖动以减少摩尔纹
  16. fractalforums.org 采样
  17. Cem Yuksel 撰写的 poisson_disk_sampling
  18. fractalforums.org:使用 imagemagick 后处理的 analytic-logde
  19. 维基百科中的抖动
  20. Marek Fiser:Is-16-million-colors-enough
  21. fractalforums:抖动以提高图像质量
  22. Øyvind Kolås 撰写的抖动,[email protected],2013 年 8 月
  23. Claude Heiland-Allen 撰写的 fraktaler
  24. dinkydauset 在 deviantar 上:Perturbation-for-the-Mandelbrot-set-450766847
  25. math.stackexchange 问题:选择使用扰动理论进行分形渲染的参考轨道
  26. fractalforums.org : 使用扰动理论时如何获取第二个参考
  27. fractalforums.org:生成的曼德布罗特集在外观上是否与实际集合不同
  28. 维基百科中的抖动
  29. matteo-basei : 噪声
华夏公益教科书