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

标题

      • 周期噪声

周期噪声

周期噪声通常是在获取图像期间由电气或机电干扰产生的

def add_sin_noise(img, scale=1, angle=0):"""add sin noise for imageparam: img: input image, 1 channel, dtype=uint8param: scale: sin scaler, smaller than 1, will enlarge, bigger than 1 will shrinkparam: angle: angle of the rotationreturn: output_img: output image is [0, 1] image which you could use as mask or any you want to"""height, width = img.shape[:2]  # original image shape# convert all the angleif int(angle / 90) % 2 == 0:rotate_angle = angle % 90else:rotate_angle = 90 - (angle % 90)rotate_radian = np.radians(rotate_angle)    # convert angle to radian# get new image height and widthnew_height = int(np.ceil(height * np.cos(rotate_radian) + width * np.sin(rotate_radian)))new_width = int(np.ceil(width * np.cos(rotate_radian) + height * np.sin(rotate_radian))) # if new height or new width less than orginal height or width, the output image will be not the same shape as input, here set it rightif new_height < height:new_height = heightif new_width < width:new_width = width# meshgridu = np.arange(new_width)v = np.arange(new_height)u, v = np.meshgrid(u, v)# get sin noise image, you could use scale to make some difference, better you could add some shift
#     noise = abs(np.sin(u * scale))noise = 1 - np.sin(u * scale)# here use opencv to get rotation, better write yourself rotation functionC1 = cv2.getRotationMatrix2D((new_width/2.0, new_height/2.0), angle, 1)new_img = cv2.warpAffine(noise, C1, (int(new_width), int(new_height)), borderValue=0)# ouput image should be the same shape as input, so caculate the offset the output image and the new image# I make new image bigger so that it will cover all output imageoffset_height = abs(new_height - height) // 2offset_width = abs(new_width - width) // 2img_dst = new_img[offset_height:offset_height + height, offset_width:offset_width+width]output_img = normalize(img_dst)return output_img 
def spectrum_fft(fft):"""return FFT spectrum"""return np.sqrt(np.power(fft.real, 2) + np.power(fft.imag, 2))
# 周期噪声
img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0507(a)(ckt-board-orig).tif', 0) #直接读为灰度图像# 正弦噪声
noise = add_sin_noise(img_ori, scale=0.35, angle=-20)
img = np.array(img_ori / 255, np.float32)
img_noise = img + noise
img_noise = np.uint8(normalize(img_noise)*255)# 频率域中的其他特性
# FFT
img_fft = np.fft.fft2(img_noise.astype(np.float32))
# 中心化
fshift = np.fft.fftshift(img_fft)            # 将变换的频率图像四角移动到中心
# 中心化后的频谱
spectrum_fshift = spectrum_fft(fshift)
spectrum_fshift_n = np.uint8(normalize(spectrum_fshift) * 255)# 对频谱做对数变换
spectrum_log = np.log(1 + spectrum_fshift)plt.figure(figsize=(15, 10))
plt.subplot(121), plt.imshow(img_noise, 'gray'), plt.title('With Sine noise'), plt.xticks([]),plt.yticks([])
plt.subplot(122), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([])
# 在图像上加上箭头
plt.arrow(180, 180, 25, 30, width=5,length_includes_head=True, shape='full')
plt.arrow(285, 265, -25, -30, width=5,length_includes_head=True, shape='full')
plt.tight_layout()
plt.show()

在这里插入图片描述

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

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

相关文章

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

标题估计噪声参数估计噪声参数 周期噪声的参数通常是通过检测图像的傅里叶谱来估计的。 只能使用由传感器生成的图像时&#xff0c;可由一小片恒定的背景灰度来估计PDF的参数。 来自图像条带的数据的最简单用途是&#xff0c;计算灰度级的均值和方差。考虑由SSS表示的一个条…

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

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

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

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

CSS:页脚紧贴底部

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

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

标题只存在噪声的复原 - 空间滤波均值滤波器算术平均滤波器几何均值滤波器谐波平均滤波器反&#xff08;逆&#xff09;谐波平均滤波器只存在噪声的复原 - 空间滤波 仅被加性噪声退化 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…

第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;具体包含有规程的名称和范围、仪器示值误差、充分性标准差、响应时间、稳定性、报警功能、流量控制器、检定项目表、检定操作有数值误差、重复性、响应时间、稳定性等。…

第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;但是…

基于空间方法的图神经网络模型_用于时空图建模的图神经网络模型 Graph WaveNet | 课程上新...

课程概要本课程来自集智学园图网络论文解读系列活动。是对论文《Graph WaveNet for Deep Spatial-Temporal Graph Modeling》的解读。时空图建模 (Spatial-temporal graph modeling)是分析系统中组成部分的空间维相关性和时间维趋势的重要手段。已有算法大多基于已知的固定的图…

dataframe类型数据的遍历_Python零基础入门到爬虫再到数据分析,这些你都是要学会的...

1.必须知道的两组Python基础术语A.变量和赋值Python可以直接定义变量名字并进行赋值的&#xff0c;例如我们写出a 4时&#xff0c;Python解释器干了两件事情&#xff1a;在内存中创建了一个值为4的整型数据在内存中创建了一个名为a的变量&#xff0c;并把它指向4用一张示意图表…

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

标题使用频率域滤波降低周期噪声陷波滤波深入介绍最优陷波滤波本章陷波滤波器有部分得出的结果不佳&#xff0c;如果有更好的解决方案&#xff0c;请赐教&#xff0c;不胜感激。 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波器必须关于原点(频率矩形中心)对称&a…

Android之Menu动态改变文字

Menu创建&#xff1a; Override//这里遇到一个问题add的是MenuItem的idpublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmenu.add(0,1023, 0, "一");menu.add(0,1022, 1, "开启线程");Log.e("onCreateOptionsMenu…

去掉xcode中警告的一些经验

1、编译时&#xff0c;编译警告忽略掉某些文件 只需在在文件的Compiler Flags 中加入 -w 参数&#xff0c;例如&#xff1a; 2、编译时&#xff0c;编译警告忽略掉某段代码 #pragma clang diagnostic push#pragma clang diagnostic ignored "-Wmultichar"char b df;…

富士施乐3065扫描教程_全面支持IT国产化 富士施乐70款机型获统信UOS兼容认证

最近&#xff0c;富士施乐&#xff08;中国&#xff09;有限公司宣布共70款机型获得国产操作系统统信UOS的兼容认证&#xff0c;其中包括新一代ApeosPort旗舰智能型数码多功能机、多功能一体机/打印机、生产型数字印刷系统。这是继获得中标麒麟、龙芯和兆芯兼容认证后&#xff…

第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数

标题线性位置不变退化估计退化函数采用观察法估计退化函数采用试验法估计退化函数采用建模法估计退化函数运动模糊函数OpenCV Motion Blur在这一节中&#xff0c;得到的结果&#xff0c;有些不是很好&#xff0c;我需要再努力多找资料&#xff0c;重新完成学习&#xff0c;如果…

视觉感受排序算法

1. 快速排序 介绍&#xff1a; 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较&#xff0c;但这种状况并不常见。事实上&#xff0c;快速排序通常明显比其他Ο(n log n) 算法更快&…

python如何自定义函数_python如何自定义函数_后端开发

c语言特点是什么_后端开发 c语言特点是&#xff1a;1、语言简洁、紧凑&#xff0c;使用方便、灵活&#xff1b;2、运算符丰富&#xff1b;3、数据结构丰富&#xff0c;具有现代化语言的各种数据结构&#xff1b;4、具有结构化的控制语句&#xff1b;5、语法限制不太严度格&…

第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波

标题逆滤波逆滤波逆滤波 逆滤波 图像的退化函数已知或者由前面的方法获取退化函数&#xff0c;则可以直接逆滤波 F^(u,v)G(u,v)H(u,v)(5.78)\hat{F}(u,v) \frac{G(u,v)}{H(u,v)} \tag{5.78}F^(u,v)H(u,v)G(u,v)​(5.78) F^(u,v)F(u,v)N(u,v)H(u,v)(5.79)\hat{F}(u,v) F(u, …