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

标题

      • 估计噪声参数

估计噪声参数

周期噪声的参数通常是通过检测图像的傅里叶谱来估计的。

只能使用由传感器生成的图像时,可由一小片恒定的背景灰度来估计PDF的参数。

来自图像条带的数据的最简单用途是,计算灰度级的均值和方差。考虑由SSS表示的一个条带(子图像),并令PS(zi)P_{S}(z_i)PS(zi)i=0,1,2,…,L−1i = 0, 1, 2, \dots, L-1i=0,1,2,,L1表示SSS中的像素灰度的概率估计(归一化直方图值),其中LLL是整数个图像中的可能灰度(对8比特而言,LLL为256)。则均值和方差估计如下:
zˉ=∑i=0L−1ziPS(zi)(5.19)\bar{z} = \sum_{i=0}^{L-1}z_{i}P_{S}(z_{i}) \tag{5.19}zˉ=i=0L1ziPS(zi)(5.19)
σ2=∑i=0L−1(zi−zˉ)2PS(zi)(5.20)\sigma^2 = \sum_{i=0}^{L-1}(z_{i} -\bar{z})^2 P_{S}(z_{i}) \tag{5.20}σ2=i=0L1(zizˉ)2PS(zi)(5.20)

直方图的形状确认最接近的PDF匹配。若形状大致为高斯分布的,则均值和方差就是我们所需要的,因为高斯PDF完全由这两个参数规定。对于其它PDF,我们可以使用均值和方差来求解参数aaabbb

对于冲激噪声的处理是不同的,因为需要的估计是黑、白像素出现的实际概率。要获得这个估计,就需要看到黑色像素和白色像素,因此要算出噪声的有意义的直方图,图像中就需要有一个相对恒定的中灰度区域。对应于黑色像素和白色像素的峰值高度是式(5.16)中PpP_pPpPsP_sPs的估计。

# 一些重要的噪声对应灰度的直方图
img_ori = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0503 (original_pattern).tif", 0)
# 竖图[40:210, 35:60],横图[40:60, 35:220]
img_gauss       = add_gaussian_noise(img_ori, mu=0, sigma=0.05)[40:60, 35:220]
img_rayleigh    = add_rayleigh_noise(img_ori, a=1)[40:60, 35:220]
img_gamma       = add_gamma_noise(img_ori, scale=2)[40:60, 35:220]
img_exponent    = add_exponent_noise(img_ori, scale=3)[40:60, 35:220]
img_average     = add_average_noise(img_ori, mean=10, sigma=1.5)[40:60, 35:220]ps = 0.05
pp = 0.02
img_salt_pepper = add_salt_pepper(img_ori, ps=ps, pp=pp)[40:60, 35:220]show_list = ['img_gauss', 'img_rayleigh', 'img_gamma', 'img_exponent', 'img_average', 'img_salt_pepper']fig = plt.figure(figsize=(15, 15))for i in range(len(show_list)):if i >= 3:# 显示图像ax = fig.add_subplot(4, 3, i + 3 + 1)ax.imshow(eval(show_list[i]), 'gray'), ax.set_xticks([]), ax.set_yticks([]), ax.set_title(show_list[i].split('_')[-1])# 对应图像的直方图ax = fig.add_subplot(4, 3, i + 1 + 6)hist, bins = np.histogram(eval(show_list[i]).flatten(), bins=255, range=[0, 255], density=True)bar = ax.bar(bins[:-1], hist[:]), ax.set_xticks([]), ax.set_yticks([]),else:# 显示图像ax = fig.add_subplot(4, 3, i + 1)ax.imshow(eval(show_list[i]), 'gray'), ax.set_xticks([]), ax.set_yticks([]), ax.set_title(show_list[i].split('_')[-1])# 对应图像的直方图ax = fig.add_subplot(4, 3, i + 1 + 3)hist, bins = np.histogram(eval(show_list[i]).flatten(), bins=255, range=[0, 255], density=True)bar = ax.bar(bins[:-1], hist[:]), ax.set_xticks([]), ax.set_yticks([]),plt.tight_layout()
plt.show()

在这里插入图片描述

# 椒盐噪声的参数估计
hist, bins = np.histogram(img_salt_pepper.flatten(), bins=255, range=[0, 255], density=True)
print(f"Original pp -> {pp:.3f}, ps -> {ps:.3f}")
print(f'Estimate PP -> {hist[0]:.3f}, PS -> {hist[-1]:.3f}')
Original pp -> 0.020, ps -> 0.050
Estimate PP -> 0.018, PS -> 0.050
# 内嵌图像
fig, main_ax = plt.subplots()
hist, bins = np.histogram(img_gauss.flatten(), bins=255, range=[0, 255], density=True)
bar = main_ax.bar(bins[:-1], hist[:]), main_ax.set_xticks([]), main_ax.set_yticks([])inset_ax = fig.add_axes([0.1, 0.3, 0.2, 0.5])
inset_ax.imshow(img_gauss.reshape(185, 20), 'gray'), inset_ax.set_xticks([]), inset_ax.set_yticks([])plt.show()

在这里插入图片描述

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

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

相关文章

python 随机获取数组元素_Python创建二维数组的正确姿势

List (列表)是 Python 中最基本的数据结构。在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始。因此,我们可以使用 list[1] 来获取下标对应的值。如果我们深入下列表的底层原理&#xff0c…

Qt学习笔记1

1.Qt引用API时,QString到LPCWSTR的转换: ::GetPrivateProfileIntW(QString(tr("相关设置")).utf16(),QString(tr("时间间隔")).utf16(),5,filePath.utf16())); 2.引用LPRECT时: RECTappRect; ::GetWindowRect(AppWnd,(LP…

在ubunut下使用pycharm和eclipse进行python远程调试

我比较喜欢Pycharm,因为这个是JetBrains公司出的python IDE工具,该公司下的java IDE工具——IDEA,无论从界面还是操作上都甩eclipse几条街,但项目组里有些人使用eclipse比较久了,一时让他们转pycharm比较困难&#xff…

CSS:页脚紧贴底部

2019独角兽企业重金招聘Python工程师标准>>> 我的练习来源于《CSS揭秘》这本书第7章-41紧贴底部的页脚这部分内容以及书中提到的链接。 方案一 描述:以下方案简单、干净、现代并且没有hack,适用于IE8, Chrome, Firefox, Opera等浏览器&#x…

第5章 Python 数字图像处理(DIP) - 图像复原与重建9 - 空间滤波 - 均值滤波器 - 算术平均、几何平均、谐波平均、反谐波平均滤波器

标题只存在噪声的复原 - 空间滤波均值滤波器算术平均滤波器几何均值滤波器谐波平均滤波器反(逆)谐波平均滤波器只存在噪声的复原 - 空间滤波 仅被加性噪声退化 g(x,y)f(x,y)η(x,y)(5.21)g(x, y) f(x, y) \eta(x, y) \tag{5.21}g(x,y)f(x,y)η(x,y)(5…

librosa能量_librosa与python_speech_features

在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了。最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别。下面是两模块的官方文档LibROSA - librosa 0.6.3 documentation​librosa.github.ioWelcome t…

java Unicode转码

1 //中文转UNICODE2 public static String chinaToUnicode(String str) {3 String result "";4 for (int i 0; i < str.length(); i) {5 int chr1 (char) str.charAt(i);6 if (chr1 > 19968 && ch…

oracle-备份工具exp-imp

虽然是按照用户的方式导出的&#xff0c;但导入之前&#xff0c;还是必须要有相同的用户存在&#xff0c;删除用户以后&#xff0c;是无法进行导入的 --重新创建回zlm用户 SQL> create user zlm identified by zlm; 尽管zlm用户的默认表空间是USERS&#xff0c;但是用imp导入…

继承String?

不能继承&#xff0c;因为 public final class String extends Objectimplements Serializable, Comparable<String>, CharSequence final修饰的类是不能被继承的转载于:https://www.cnblogs.com/crane-practice/p/3666006.html

python中字典数据的特点_Python数据类型(字典)

Python 字典(Dictionary) 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值(key>value)对用冒号(:)分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号({})中 ,格式如下所示&#xff1a; d {key1: value1, key2: value2}…

第5章 Python 数字图像处理(DIP) - 图像复原与重建10 - 空间滤波 - 统计排序滤波器 - 中值、最大值、最小值、中点、修正阿尔法均值滤波器

标题统计排序滤波器中值、最大值、最小值、中点 滤波器修正阿尔法均值滤波器统计排序滤波器 中值、最大值、最小值、中点 滤波器 f^(x,y)median{g(r,c)}(5.27)\hat{f}(x, y) \text{median} \{g(r,c)\} \tag{5.27}f^​(x,y)median{g(r,c)}(5.27) f^(x,y))max{g(r,c)}(5.28)\ha…

如何设置坐标原点值_氨气检测仪电化学原理及报警值如何设置

氨气体检测仪检定规程&#xff1a;一般氨气体检测仪检定规程主要是针对技术参数设定的一些标准&#xff0c;具体包含有规程的名称和范围、仪器示值误差、充分性标准差、响应时间、稳定性、报警功能、流量控制器、检定项目表、检定操作有数值误差、重复性、响应时间、稳定性等。…

统计信息及相关说明

统计信息&#xff1a;0 recursive calls20434 db block gets 317970511 consistent gets 0 physical reads 3759764 redo size 382 bytes sent via SQL*Net to client 1061 bytes received via SQL*Net from client 3 SQL*Ne…

Android横竖屏切换的生命周期

关于Android手机横竖屏切换时Activity的生命周期问题&#xff0c;网上有很多相似的文章&#xff0c;大多数都是说明在竖屏切换横屏时Activity会重启一次&#xff0c;而在横屏切换竖屏时Activity会重启两次。 我本身不太理解这样设计的意义&#xff0c;并且觉得新版本会解决这个…

python 随机字符串_python生成随机数、随机字符串

python生成随机数、随机字符串 import random import string # 随机整数&#xff1a; print random.randint(1,50) # 随机选取0到100间的偶数&#xff1a; print random.randrange(0, 101, 2) # 随机浮点数&#xff1a; print random.random() print random.uniform(1, 10) # 随…

ACM 会场安排问题

会场安排问题 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述学校的小礼堂每天都会有许多活动&#xff0c;有时间这些活动的计划时间会发生冲突&#xff0c;需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动&#xff0c;…

第5章 Python 数字图像处理(DIP) - 图像复原与重建11 - 空间滤波 - 自适应滤波器 - 自适应局部降噪、自适应中值滤波器

标题自适应滤波器自适应局部降噪滤波器自适应中值滤波器自适应滤波器 自适应局部降噪滤波器 均值是计算平均值的区域上的平均灰度&#xff0c;方差是该区域上的图像对比度 g(x,y)g(x, y)g(x,y)噪声图像在(x,y)(x, y)(x,y)处的值 ση2\sigma_{\eta}^2ση2​ 为噪声的方差&am…

关闭防火墙_从零开始学Linux运维|09.关闭防火墙和SElinux

firewalld是centos7默认的防火墙安全增强型 Linux(Security-Enhanced Linux)简称 SELinux初学者建议先关闭,等熟悉了之后再来使用前期联系中的好多错误都有可能是由于没有关闭或者正确配置上面两项造成的1.临时关闭centos7下的防火墙firewalld一行命令就能够关闭firewalld--&qu…

Discuz!NT - 在线显示列表 游客 bug 修复

引发bug的条件&#xff1a;当你修改了系统组里面的[游客]组 的名字后&#xff01;&#xff01; 你会发现首页上底部的在线显示列表里始终都是显示"游客"字样而非你改过得字样&#xff01;如图 至此你需要运行一个t-sql脚本去修复这个bug&#xff01;&#xff08;但是…

Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu …