标题

  • 瑞利噪声

瑞利噪声

瑞利噪声的PDF为
P(z)={2b(z−a)e−(z−a)2/b,z≥a0,z<a(5.4)P(z) = \begin{cases} \frac{2}{b}(z-a)e^{-(z-a)^2/b}, & z \ge a \\ 0, & z < a\end{cases} \tag{5.4}P(z)={b2​(z−a)e−(z−a)2/b,0,​z≥az<a​(5.4)

均值和方差为
zˉ=a+πb/4(5.5)\bar{z} = a + \sqrt{\pi b /4} \tag{5.5}zˉ=a+πb/4​(5.5)
σ2=b(4−π)4(5.6)\sigma^2 = \frac{b(4-\pi)}{4} \tag{5.6}σ2=4b(4−π)​(5.6)

def rayleigh_pdf(z, a=3, b=2):assert b != 0, "b is denominator, cannot be zero!!!"output = (2 / b )* (z - a) * np.exp(-((z - a)**2 )/b)output = np.where(z > a, output, 0)return output

更正下面代码,如果之前已经复制的,也请更正

def add_rayleigh_noise(img, a=3):"""add rayleigh noise for imageparam: img: input image, dtype=uint8param: mean: noise meanparam: sigma: noise sigmareturn: image_out: image with rayleigh noise"""# image = np.array(img/255, dtype=float) # 这是有错误的,将得不到正确的结果,修改如下image = np.array(img, dtype=float)# ============== numpy.random.rayleigh======noise = np.random.rayleigh(a, size=image.shape)image_out = image + noiseimage_out = np.uint8(normalize(image_out)*255)return image_out
# 瑞利PDF
a = 10
b = 400
z = np.linspace(0, 255, 200)z_ = a + np.sqrt(np.pi*b/4)
sigma = (b * (4 - np.pi)) / 4
peak_x = a + np.sqrt(b/2)
peak_y = 0.607 * np.sqrt(2/b)print(f"z_ -> {z_}, sigma^2 -> {sigma}")rayleigh = rayleigh_pdf(z, a=a, b=b)plt.figure(figsize=(9, 6))
plt.plot(z, rayleigh), #plt.xticks([a, peak_x]), plt.yticks([0, peak_y])
plt.show()
z_ -> 27.72453850905516, sigma^2 -> 85.84073464102069

# 瑞利噪声
img_ori = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0503 (original_pattern).tif", 0)
# img_ori = np.ones((512, 512)) * 128
img_rayleigh = add_rayleigh_noise(img_ori, a=30)plt.figure(figsize=(9, 6))
plt.subplot(121), plt.imshow(img_ori, 'gray', vmin=0, vmax=255), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(img_rayleigh, 'gray', vmin=0, vmax=255), plt.xticks([]), plt.yticks([])plt.tight_layout()
plt.show()

hist, bins = np.histogram(img_rayleigh.flatten(), bins=255, range=[0, 255], density=True)
bar = plt.bar(bins[:-2], hist[:-1])

第5章 Python 数字图像处理(DIP) - 图像复原与重建2 - 瑞利噪声相关推荐

  1. 第5章 Python 数字图像处理(DIP) - 图像复原与重建1 - 高斯噪声

    本章主要讲图像复原与重建,首先是了解一下各种噪声的特点与模型,还有形成的方法.一些重点的噪声,如高斯噪声,均匀噪声,伽马噪声,指数噪声,还有椒盐噪声等. 本章主要的噪声研究方法主要是加性噪声. 标题 ...

  2. 第5章 Python 数字图像处理(DIP) - 图像复原与重建8 - 估计噪声参数

    标题 估计噪声参数 估计噪声参数 周期噪声的参数通常是通过检测图像的傅里叶谱来估计的. 只能使用由传感器生成的图像时,可由一小片恒定的背景灰度来估计PDF的参数. 来自图像条带的数据的最简单用途是,计 ...

  3. 第5章 Python 数字图像处理(DIP) - 图像复原与重建7 - 周期噪声 余弦噪声生成方法

    标题 周期噪声 周期噪声 周期噪声通常是在获取图像期间由电气或机电干扰产生的 def add_sin_noise(img, scale=1, angle=0):"""ad ...

  4. 第5章 Python 数字图像处理(DIP) - 图像复原与重建6 - 椒盐噪声

    标题 椒盐噪声 椒盐噪声 如果kkk是一幅数字图像中表示灰度值的比特数,则灰度值可能是[0,2k−1][0, 2^k -1][0,2k−1].椒盐噪声的PDF为: P(z)={Ps,z=2k−1Pp, ...

  5. 第5章 Python 数字图像处理(DIP) - 图像复原与重建5 - 均匀噪声

    标题 均匀噪声 均匀噪声 均匀噪声的PDF为 P(z)={1b−a,a≤z≤b0,other(5.13)P(z) = \begin{cases}\frac{1}{b-a}, & a\leq z ...

  6. 第5章 Python 数字图像处理(DIP) - 图像复原与重建4 - 指数噪声

    标题 指数噪声 指数噪声 指数噪声的PDF为 P(z)={ae−az,z≥00,z<0(5.10)P(z) = \begin{cases} ae^{-az}, & z\geq 0 \\ ...

  7. 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波

    标题 使用频率域滤波降低周期噪声 陷波滤波深入介绍 最优陷波滤波 本章陷波滤波器有部分得出的结果不佳,如果有更好的解决方案,请赐教,不胜感激. 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波 ...

  8. 第5章 Python 数字图像处理(DIP) - 图像复原与重建17 - 由投影重建图像、雷登变换、投影、反投影、反投影重建

    标题 由投影重建图像 投影和雷登变换 Johann Radon 反投影 滤波反投影重建 由投影重建图像 本由投影重建图像,主要是雷登变换与雷登把变换的应用,所以也没有太多的研究,只为了保持完整性,而添 ...

  9. 第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波

    标题 约束最小二乘方滤波 几何均值滤波 约束最小二乘方滤波 F^(u,v)=[H∗(u,v)∣H(u,v)∣2+γ∣P(u,v)∣2]G(u,v)(5.89)\hat{F}(u,v) = \bigg[ ...

最新文章

  1. IDEA设置单个文件、单个包、单个项目的编码格式
  2. 2022-2028年中国塑料网格板行业市场行情动态及发展趋向分析报告
  3. oracle未找到远程连接,Oracle ORA-02019:未找到远程数据库的连接说明 | 学步园
  4. Linux下通用的Makefile
  5. java前言_Java Web前言
  6. 零售业有效利用物联网的几种方法
  7. 【树状数组】HDU 1166 敌兵布阵
  8. 开发商微信选房后不退认筹金_新楼盘开盘的“认筹”和“认购”,劝您看懂后再去认!...
  9. 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功
  10. FileUtils工具类的使用
  11. MESHLAB安装教程
  12. 软件开发成本估算方法
  13. 掌握如何使用Rose绘制活动图的方法
  14. b5纸尺寸_【收藏款】平面设计标准尺寸规范总结
  15. 2022-3-26JavaSE试卷-答案
  16. LeetCode题解 Day1数组的遍历
  17. 要实现一台电脑可以上公司内网也可以访问外网
  18. bboss redis组件使用实例
  19. 谷歌浏览器账号密码自动填充和明文显示问题
  20. 工业机器人编程语言入门_人工智能和机器学习入门的5种编程语言

热门文章

  1. redis(一)--认识redis
  2. stanford corenlp的TokensRegex
  3. 与众不同 windows phone (5) - Chooser(选择器)
  4. hibernate继承映射之每个具体类一张表
  5. Shiro表结构设计
  6. vue项目代码改进(一)login组件
  7. linux下的启停脚本
  8. 一个强大的工具来模拟数百万​​并发用户负载测试:Gryphon
  9. 为什么Docker是云计算必然的现在和未来
  10. html5之web worker