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

标题

        • 瑞利噪声

瑞利噪声

瑞利噪声的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(za)e(za)2/b,0,zaz<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])

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2012暑假计划

挺长时间没有更新博客了&#xff0c;主要是因为这段时间比较忙&#xff0c;学习方面都在学习一些新的知识&#xff0c;感觉没有什么可写的。暑假开始了&#xff0c;极其喜欢自学的我准备度过一个美妙的暑假。 学习计划如下&#xff1a; 1.python的学习。由于在学习Linux编程&am…

调焦后焦实现不同距离成像_如何用手机拍出单反的效果,系列学习(一)AF参数“自动调焦”...

首先我们来了解下AF&#xff0c;AF在照相机中是英文Auto Focus的缩写&#xff0c;自动调焦的意思。因此&#xff0c;AF照相机即是自动调焦照相机的简称。   这种照相机的调焦是利用电子测距器自动进行的。当按下照相机快门按钮时&#xff0c;根据被摄目标的距离&#xff0c;电…

简谈http状态码

200&#xff1a;正常发送信息&#xff1b; 302&#xff1a;请求的网页被转移到一个新的地址&#xff0c;但客户访问仍继续通过原始URL地址&#xff0c;重定向&#xff0c;新的URL会在response中的Location中返回&#xff0c;浏览器将会使用新的URL发出新的Request。 303&#x…

python装饰器函数后执行_Python装饰器限制函数运行时间超时则退出执行

实际项目中会涉及到需要对有些函数的响应时间做一些限制&#xff0c;如果超时就退出函数的执行&#xff0c;停止等待。 可以利用python中的装饰器实现对函数执行时间的控制。 python装饰器简单来说可以在不改变某个函数内部实现和原来调用方式的前提下对该函数增加一些附件的功…

js 数组(Array)

一.数组 稠密数组(非稀疏数组) 稀疏数组 二.数组的添加和删除 我们已经常见过添加数组元素最简单的方法:为新索引赋值;也可以使用push()方法在数组末尾增加一个或者多个元素: a []; a.push("zero"); a.push("one","two"); 可以像删除对象属性一…

浏览器检测,移动网络的在线离线及网络状态

使用JS变量 navigator.onLine 是true还是false&#xff0c;可以判断在线还是离线。 不知道是不是html5的功能&#xff0c;在IE7&#xff0c;FF&#xff0c;Chrome下都是ok的。 如果你还想知道网络状况是wifi&#xff0c;还是2G&#xff0c;3G什么的&#xff0c;有少数部分浏览…

第5章 Python 数字图像处理(DIP) - 图像复原与重建3 - 爱尔兰(伽马)噪声

标题爱尔兰&#xff08;伽马&#xff09;噪声爱尔兰&#xff08;伽马&#xff09;噪声 爱尔兰噪声的PDF是 P(z){abzb−1(b−1)!e−az,z≥00,z<0(5.7)P(z) \begin{cases} \frac{a^bz^{b-1}}{(b-1)!}e^{-az}, & z\geq 0 \\ 0, & z < 0 \end{cases} \tag{5.7}P(z)…

Unity3D获取Andorid设备返回键,主页键等功能

在Unity开发中捕捉Android的常用事件其实很简单 在新建的脚本文件中就加入&#xff1a; 比如&#xff1a; // 返回键 if ( Application.platform RuntimePlatform.Android &&(Input.GetKeyDown(KeyCode.Escape))){//....}// Home键 if ( Application.platform Runtim…

ipfs如何查找一个文件的_如何用 1 分钟遍历一个 100TB 的文件?

如果你在面试的时候遇到这样一个问题&#xff1a;如何用 1 分钟遍历一个 100TB 的文件&#xff1f;是不是立刻就懵圈了&#xff1f;不要紧&#xff0c;读了今天的文章&#xff0c;懵圈的可能是面试官。以下是全文。文件及硬盘管理是计算机操作系统的重要组成部分&#xff0c;让…

calendar类计算时间距离_日期时间--JAVA成长之路

Java中为处理日期和时间提供了大量的API&#xff0c;确实有把一件简单的事情搞复杂的嫌疑&#xff0c;各种类&#xff1a;Date Time Timestamp Calendar...&#xff0c;但是如果能够看到时间处理的本质就可以轻松hold住这堆东西了。常用的类表示类java.util.Date :能够准确记录…

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

标题指数噪声指数噪声 指数噪声的PDF为 P(z){ae−az,z≥00,z<0(5.10)P(z) \begin{cases} ae^{-az}, & z\geq 0 \\ 0, & z < 0 \end{cases} \tag{5.10}P(z){ae−az,0,​z≥0z<0​(5.10) 均值和方差为 zˉ1a(5.11)\bar{z} \frac{1}{a} \tag{5.11}zˉa1​(5.…

登陆界面(jsp)客户端验证

第二步&#xff1a;通过servlet处理import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRe…

C++中的c_str()函数用法

语法: 1 const char *c_str(); c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同。 这是为了与c语言兼容&#xff0c;在c语言中没有string类型&#xff0c;故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意&#xff1a;…

TCP的几个状态(SYN/FIN/ACK/PSH/RST)

在TCP层&#xff0c;有个FLAGS字段&#xff0c;这个字段有以下几个标识&#xff1a;SYN, FIN, ACK, PSH, RST, URG. 其中&#xff0c;对于我们日常的分析有用的就是前面的五个字段。含义&#xff1a;SYN 表示建立连接&#xff0c;FIN 表示关闭连接&#xff0c;ACK 表示响应&…

第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 \leq b \\ 0, & \text{other}\end{cases} \tag{5.13}P(z){b−a1​,0,​a≤z≤bother​(5.13) 均值和方差为 zˉab2(5.14)\bar{z} \frac{a b}{2…

jquery实现的3D缩略图悬停效果

今天我们要告诉你如何创建一些令人兴奋的3D使用CSS3和jQuery悬停效果。这一想法的灵感来自于凉爽的悬停效果&#xff0c;再给客户做网站的时候用的这样的效果&#xff0c;今天就共享出来 在这个效果当中&#xff0c;我将使用的thumbails&#xff0c;就会发现一些更多的信息悬停…

python网页爬虫例子_Python 利用Python编写简单网络爬虫实例3

利用Python编写简单网络爬虫实例3 by:授客 QQ&#xff1a;1033553122 实验环境 python版本&#xff1a;3.3.5&#xff08;2.7下报错 实验目的 获取目标网站“http://bbs.51testing.com/forum.php”中特定url&#xff0c;通过分析发现&#xff0c;目标url同其它url的关系如下目标…

2019python二级真题_2019年3月二级python真题,上岸必备!

刚从二级python的考场下来&#xff0c;就看见微博热搜。这是个什么鬼哦~本来很开心&#xff0c;一下子有点慌。趁我记得题&#xff0c;赶紧给大家分享一下下~ 稳住&#xff01;1、 题型&#xff1a;选择题(40分&#xff0c;40个)基本编程题(15分&#xff0c;3道)简单应用题(25分…

登陆SharePoint站点出现service unavailable----Http错误503

今天在登陆SharePoint站点时&#xff0c;遇到服务不可用&#xff0c;Http error 503。建议如下操作&#xff1a; 1. 在IIS中检查站点属性。在“起始页”&#xff0c;检查应用程序池。 2. 发现SharePoint Web Services Root已停止&#xff0c;右键启动。问题得到解决。 PS&#…

C# 数组

什么是数组&#xff1f;数组是一种数据结构&#xff0c;包含同一个类型的多个元素。数组的声明&#xff1a;int[] myIntArray; 注&#xff1a;声明数组时&#xff0c;方括号 ([]) 必须跟在类型后面&#xff0c;而不是变量名后面。在 C# 中&#xff0c;将方括号放在变量名后是不…