图像处理与图像识别笔记(二)图像变换

在本章节中,将介绍几种常用的图像变换的方法,即利用数学公式将图像变换成另一种具有特定物理意义的图像,通过新的图像,我们可以观察出原图像的某些特性,且可以对原图像进行滤波、压缩等图像处理的操作,包括傅里叶变换、沃尔什变换等。

一、图像傅里叶变换基本原理与实现

傅里叶变换,是将时域信号转换为频域信号的变换方法,将时域信号分解为频率不同的正弦波信号的方法,也就是说,任何一个信号都是若干个正弦信号所叠加。通过傅里叶变换,我们就可以得到信号的频率特性,是高频成分多一点,还是低频成分多一点,每个成分的幅值和相位是多少(频谱图和相位图)。

图像是离散的二维信号,可以通过二维傅里叶变换实现到频域的转换,转换前的图像矩阵是由实数组成的,转换后的频域矩阵是复数阵,变换公式如下所示,x,yx,yx,y是图像阵的坐标,u,vu,vu,v是频域阵的坐标,两者没有一一对应的关系,频域阵中每一个点都是对图像阵中每一个像素点进行了运算的。

我们关注的是通过傅里叶变换获得图像的频谱图与相位图,计算方法如下,

     

接下来我们用python代码来实现傅里叶变换,得到图像的频谱图与相位图,实验图像是Lena。

计算频谱图的代码如下,

import cv2
import numpy as np
import matplotlib.pyplot as plt
import pylab
img = cv2.imread('Lena.jpg',0)
f = np.fft.fft2(img)	#傅里叶变换
fshift = np.fft.fftshift(f) 	#将零频点移到图像中央
s1 = np.log(np.abs(f))	 #先进行绝对值运算,然后取对数,限制数值范围
s2= np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(s1,'gray'),plt.title('original')
plt.subplot(122),plt.imshow(s2,'gray'),plt.title('center')
pylab.show()

得到结果,第一幅图是原始傅里叶变换的结果,我们可以这样理解这幅图片,中心是高频部分,四周是低频部分,横轴是原图片横向方向的傅里叶频谱,纵向是原图片纵向方向的傅里叶频谱,为是频谱具有一致性与可观性,我们将零频点,也就是四个角上的点,移到频谱图的中心得到第二幅图,得到的频谱图中心是低频部分,四周是高频部分。图中高亮的点代表成分多的某一频率,灰暗的点代表成分少的某一频率。如果一幅图片高频部分多是高亮,代表图像尖锐,变化剧烈,边界分明且两边像素差距极大;反之,图片低频部分高亮,高频部分灰暗,代表图片平缓、柔和。
观察实验图像的频谱结果,中心点高亮,低频部分占据成分大,图片总体表现的平缓。

接下来我们来实现相位的部分,实现代码如下,

import cv2
import numpy as np
import matplotlib.pyplot as plt
import pylab
img = cv2.imread('Lena.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f) 
xw = np.angle(f);	#np.angle()函数求相位,arctan(虚部/实部)
xw_shift =np.angle(fshift)
plt.subplot(121),plt.imshow(xw,'gray'),plt.title('original')
plt.subplot(122),plt.imshow(xw_shift,'gray'),plt.title('center')
pylab.show()

得到结果,图中的点代表频谱图中对应频率的相位值。

二、图像傅里叶变换的应用

1、傅里叶变换在图像滤波中的应用
经过傅里叶变换后的图像中间部分为低频部分,越靠外频率越高,因此,我们可以选择所需要的高频或是低频进行滤波。高频反映图像中的细节,低频反映图像中的整体概貌。
低通滤波代码如下,

import cv2
import numpy as np
import matplotlib.pyplot as plt
import pylabdef LPF(img,radius = 50): 	#定义低通滤波函数,radius:低通半径,半径越小,低通效果越明显,图片越模糊rows,cols = img.shapemrows = int(rows/2)mcols = int(cols/2)mask = np.zeros((rows,cols),np.uint8)	#创建掩码mask[mrows-radius:mrows+radius,mcols-radius:mcols+radius] = 1return mask	def main():img = cv2.imread('Lena.jpg',0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f) fshift = fshift*LPF(img) 	#低通滤波,即与掩码相乘,过滤掉频率高的部分#逆变换f_ishift = np.fft.ifftshift(fshift)img_back = np.fft.ifft2(f_ishift)img_back = np.abs(img_back)plt.imshow(img_back,'gray'),plt.title('radius=50')pylab.show()if __name__=="__main__":main()

结果如下,

高通滤波代码如下,

import cv2
import numpy as np
import matplotlib.pyplot as plt
import pylabdef HPF(img,radius= 50): #高通滤波函数,radius:高通半径,半径越大,高通效果越明显,图片越尖锐rows,cols = img.shapemrows = int(rows/2)mcols = int(cols/2)mask = np.zeros((rows,cols),np.uint8)	#创建掩码mask[:,:] = 1mask[mrows-radius:mrows+radius,mcols-radius:mcols+radius] = 0return mask	def main():img = cv2.imread('Lena.jpg',0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f) fshift = fshift*HPF(img,1) 	#高通滤波,即与掩码相乘,过滤掉频率高的部分#逆变换f_ishift = np.fft.ifftshift(fshift)	img_back = np.fft.ifft2(f_ishift)img_back = np.abs(img_back)plt.imshow(img_back,'gray'),plt.title('radius=50')pylab.show()if __name__=="__main__":main()

结果如下,

对比结果可以发现,低通滤波让图片变得更加模糊,过滤掉了图片中边缘的、尖锐的部分;高通滤波让图片变得更加尖锐,过滤掉了图片中平缓的部分,留下边缘的、尖锐的部分。

2、傅里叶变换在图像压缩中的应用
原理很简单,将高频系数设置为0,压缩效果如下,

     

未完待续

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

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

相关文章

图解|2018年度中国科学十大进展

来源:锐科技 2019年2月27日,科技部基础研究管理中心召开“2018年度中国科学十大进展专家解读会”,发布了2018年度中国科学十大进展。以下10项重大科学进展入选:01 基于体细胞核移植技术成功克隆出猕猴02 创建出首例人造单染色体真…

《麻省理工学院技术评论》评出最新十大突破性技术

来源:新华网摘要:全球知名科技评论期刊《麻省理工学院技术评论》27日发布2019年“全球十大突破性技术”,灵巧机器人、核能新浪潮、定制癌症疫苗、人造肉汉堡等入选。这份期刊的中文版官网当天发布公报说,今年是该杂志创刊120周年&…

图像处理与图像识别笔记(三)图像增强1

图像增强的目的是为了改善图像的视觉效果,为了更便于人或机器的分析和处理,在不考虑图像降质(前提)的情况下,提高图像的可观性。灰度变换是一种典型的图像增强方法,我们通常把图像处理按照处理方法分成空域…

图像处理与图像识别笔记(五)图像增强2

上一节中我们讲解了灰度变换的原理以及实现方法,本节我们讲解空域滤波增强,与灰度变换相同,空域滤波增强是一种空域处理的方法,不过空域滤波不是一种对点做处理的方法,而是利用相邻像素间的关系进行增强。空域滤波可以…

欧洲两个研究团队开发出了让截肢者能感觉到并准确抓住物体的仿生手

来源:IEEE电气电子工程师学会摘要:在过去十年中,研究人员在开发能给用户提供触觉和压力感的触觉传感器方面取得了很大进展。如在你旁边正好有一个咖啡杯,那么拿起这个杯子,并注意下在不真正看着它的情况下做这件事有多…

【转】eclipse中egit插件使用

原文网址:http://my.oschina.net/songxinqiang/blog/192567 eclipse和git这个两个工具的使用人数都是相当多的,在eclipse里面也有egit插件来支持eclipse中使用git,但是网上的相关说明都是简单使用,或者没有说明白一些具体的问题&a…

全球AI芯片投资版图公开!机会都在这五大场景

来源:智东西摘要:过去一年,随着人工智能在各个行业的逐步落地,AI芯片的发展路径逐渐明朗。在行业走过野蛮生长,开始加速落地、加速整合的过程中,也有更多的AI芯片公司也开始走出属于自己的差异化路线。我们…

图像处理与图像识别笔记(六)图像增强3

上一章节中我们讲解了空域滤波的图像增强方法,包括图像的平滑和锐化,本文中,我们首先带来频域滤波的图像增强方法,指在频域中对图像进行变换,需要的基础知识是前述过的图像傅里叶变换,请查看学习。 一、频…

初探数位DP-hdu2089

一开始刷dp就遇到了数位dp,以前程序设计艺术上看过一点,基本没懂,于是趁今天遇到题目,想把它搞会,但就目前状态来看仍然是似懂非懂啊,以后还要反复搞 统计区间[l,r]的满足题意的数的个数,可以转…

自动驾驶的疑点重重, 再次印证了科技的「非理性繁荣」

来源:悟空智能科技特斯拉 CEO 马斯克对全自动驾驶的短期实现,有着近乎疯狂的执念。最近,他又在第四季度财报的电话会议上表示,特斯拉汽车在今年年底前能实现全自动驾驶,无需人类干预。马斯克还表示,特斯拉在…

Truncated SVD for faster dection

Truncated SVD方法最先被提出在《Fast R-CNN》论文中,用于降低全连接层的运算量,提升模型的速度。在卷积神经网络的分类任务中,FC层的运算速度远远大于CONV层,而在Fast R-CNN的目标检测任务中,大多数的运算时间发生在F…

CSS学习-网页导航栏

用ul制作网页导航栏 <!DOCTYPE html> <html><head><style>ul {list-style-type: none;margin: 0;padding: 0;width: 800px;overflow: hidden;}li {float: left;}a {display: block;width: 120px;font-weight: bold;color: #FFFFFF;border-right: 1px s…

自动驾驶技术如何升级?这份技能图谱为你指路

来源&#xff1a;AI前线自动驾驶技术在过去的一年里发展十分迅速&#xff0c;无论控制系统的升级还是高清地图的泛用&#xff0c;无不在推动自动驾驶的落地。再加上开源框架的进一步成熟&#xff0c;V2X 的落地实践&#xff0c;传感器融合更强等多重因素的影响下&#xff0c;自…

Gradient Descent

梯度下降是我们在训练神经网络时用于训练参数的方法&#xff0c;本文总结了目前常用的几种梯度下降算法&#xff0c;包括原理、公式推导、解决的问题&#xff0c;主要要SGD、Momentum、NAG、AdaGrad、AdaDelta、RMSProp、Adam&#xff0c;先贴上手写的笔记&#xff0c;有时间再…

互联网+检验检测智能化成发展趋势

来源&#xff1a;传感器技术摘要&#xff1a;随着工业自动化技术的迅猛发展&#xff0c;智能检测技术被广泛地应用在工业自动化、化工、军事、航天、通讯、医疗、电子等行业&#xff0c;是自动化科学技术的一个格外重要的分支科学。众所周知&#xff0c;智能检测技术是在仪器仪…

5G、物联网和AI结合的究极形态是什么?一文看尽智能连接在5大领域的12个典型案例!...

来源&#xff1a;IoT Analytics编译&#xff1a;物联网智库摘要&#xff1a;智能连接&#xff08;Intelligent connectivity&#xff09;是一种全新的概念——未来&#xff0c;5G、AI和物联网的融合能够成为加速科技发展的催化剂&#xff0c;并催生出新的颠覆式的数字化服务。基…

10天学安卓-第二天

10天学安卓-第二天 原文:10天学安卓-第二天继续我们的学习。 相信我&#xff0c;第一天的工作是最为重要的&#xff0c;通过这些工作&#xff0c;我们把开发安卓所必须的环境、基础条件都配置好了&#xff0c;相信肯定遇到了很多问题&#xff0c;不过&#xff0c;根据我的经验&…

德国费斯托又双叒叕更新,象鼻子机械臂+超逼真仿生手,比人手都强大

来源&#xff1a;机器人大讲堂编辑&#xff1a;海蛟摘要&#xff1a;在机器人领域&#xff0c;小编最佩服两家公司&#xff0c;一家是波士顿动力&#xff0c;另一家就是费斯托。费斯托这家源自德国的公司以平均每年更新2-3款仿生机器人的速度&#xff0c;扩充着它们的仿生机器人…

微软全球执行副总裁沈向洋:你给自己的定位是什么,你就会得到什么

来源&#xff1a;AI 科技评论摘要&#xff1a;沈向洋&#xff0c;美国国家工程院院士、微软全球执行副总裁、ACM/IEEE Fellow。多年来&#xff0c;沈向洋专注于计算机视觉和计算机图形学的研究&#xff0c;并领导和开发了 Bing 搜索。目前&#xff0c;他是微软公司级别最高的中…

用互联网大脑模型分析5G重点影响的6个科技产业

作者&#xff1a;刘锋 计算机博士&#xff0c;《互联网进化论》作者5G是指第五代移动电话行动近信标准&#xff0c;也称第五代移动通信技术&#xff0c;是4G之后的延伸&#xff0c;其峰值理论传输速度可达每秒数十Gb。对比4G的主要提高如下&#xff1a;5G的速度将达到4G的100倍…