计算机视觉图像的傅里叶变换
目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉python网页爬虫、机器学习、计算机视觉(OpenCV)、群智能算法。然后正在学习深度学习的相关内容。以后可能会涉及到网络安全相关领域,毕竟这是每一个学习计算机的梦想嘛! 目前更新 :目前已经更新了关于网络爬虫的相关知识、机器学习的相关知识、目前正在更新计算机视觉-OpenCV的相关内容。 本文摘要
本文我们将继续讲解OpenCV-图像傅里叶变换的相关操作。
文章目录 傅里叶基础傅里叶基础numpy实现逆傅里叶numpy实现频域的高通滤波傅里叶OpenCV实现傅里叶OpenCV逆变换实现频域的低通滤波傅里叶变换有什么应用场景傅里叶变换matlab实现
傅里叶基础
法国数学家吉恩·巴普提斯特·约瑟夫·傅里叶被世人铭记的最大的贡献是:他指出任何周期函数都可以表示为不同频率的正弦和/或余弦之和的形式,每个正弦项和/或余弦项乘以不同的系数(现在称该和为傅里叶级数)。无论函数多么复杂,只要它是周期的,并且满足某些适度的数学条件,都可以用这样的和来表示。即一个复杂的函数可以表示为简单的正弦和余弦之和。甚至非周期函数(单该曲线下的面积是有限的)也可以用正弦和/或许·余弦乘以加权函数的积分来表示。在这种情况下的公式就是傅里叶公式。
比如说我们以制作一个饮料的过程,使用时域的角度来看就是这样:
这里是什么意思呢,就是说一个饮料的制作需要在18点整放1个单位冰糖、3个单位红豆、2个单位的绿豆、4个单位的西红柿,还有1个单位的纯净水。然后再18:01分只需要假如一个单位的纯净水。后面也是一致。而频域是怎么描述这件事的呢?
具体来说就是说他发现了一个规律,就是说这个制作过程,每分钟都要加入冰糖,每两分钟都要加入红豆,每三分钟都要加入一次绿豆…。对于时域角度我们这样描述。
对于频域角度我们这样描述这件事,用直方图表示就是:
如果要考虑更精准的时间精度,我们就要引入相位这个概念。他是一个和时间差有关的一个表述。
这里我们说明一下就是时域和频域的表述是互逆的,对于时域我们是时间为横坐标,振幅为纵坐标。对于频域我们以频率为横坐标,振幅为纵坐标。但是可以看得出来频域的表述更加简单,但是比较抽象,不容易理解。傅里叶说: 任何连续周期信号,可以由一组适当的正弦曲线组合而成。 注意这里是一组而不是一个。比如对于这样的一个图像: f(x)=3 np.sin(0.8 x)+7 np.sin(1/3 x)+2 np.sin(0.2 x)
看上去是毫无规律可言吧,但是它也可以由一组正弦函数组成。
他们是可逆的,想不到吧,乱七八糟的东西也有规律了。但是他们就是这样组合而成的吗?不可能吧,所以这里就是不是同时开始的一组余弦函数,在叠加时要体现开始的时间。也就说组合的函数他们的开始时间是不一样的。在这里分别对应0,2,3.看公式就看出来啦。这里多说一嘴就是说傅里叶变换从时域角度来看,这个世界是动态的!从频域角度来看这个世界是静止的。从数学角度来讲:傅里叶变换将一个任意的周期函数分解成为无穷个正弦函数的和的形式。从物理角度来讲:傅里叶变换实现了将信号从空间域到频率域的转换。
傅里叶基础numpy实现
python是可以实现傅里叶变换的,这里就要说到三剑客的numpy了。对应的函数是: numpy.fft.fft2 返回一个复数数组(complex ndarray)。numpy.fft.fftshift 这个函数时表示把将零频率分量移到频谱中心。
还要设置频谱的范围 20*np.log(np.abs(fshift)) ,对于图像来说就是255了。import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread("imagelena.bmp",0) f = np.fft.fft2(img) fshift = np.fft.fftshift(f) result = 20*np.log(np.abs(fshift)) plt.subplot(121) plt.imshow(img, cmap = "gray") plt.title("original") plt.axis("off") plt.subplot(122) plt.imshow(result, cmap = "gray") plt.title("result") plt.axis("off") plt.show() 12345678910111213141516
结果是:
原图和频谱图像。 傅里叶得到低频、高频信息,针对低频、高频处理能够实现不同的 目的。 傅里叶过程是可逆的,图像经过傅里叶变换、逆傅里叶变换后,能 够恢复到原始图像 在频域对图像进行处理,在频域的处理会反映在逆变换图像上
逆傅里叶numpy实现
对于傅里叶的逆操作这里没有什么可说的,就是把频域图像转回原图像。
函数是: numpy.fft.ifft2 ,那么还有一个操作就是把中间移动回去对啊。numpy.fft.ifftshift 。iimg = np.abs(逆傅里叶变换结果) 而第二个图就表示低频部分,边缘就表示为高频部分。import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread("imageboat.bmp",0) f = np.fft.fft2(img) fshift = np.fft.fftshift(f) ishift = np.fft.ifftshift(fshift) iimg = np.fft.ifft2(ishift) iimg = np.abs(iimg) plt.subplot(121),plt.imshow(img, cmap = "gray") plt.title("original"),plt.axis("off") plt.subplot(122),plt.imshow(iimg, cmap = "gray") plt.title("iimg"),plt.axis("off") plt.show() 1234567891011121314
首先我们要进行傅里叶变换吧,才可以进行逆操作。结果是:
完全一致!!!
踏春东线行登顶中华财神第一山(站在金顶内心澎湃5)手表显示海拔2150米,我已经走在同伴前面了,现在越离山顶越近,依稀能看到前方山林里一个白房子,那就是赵公山金顶。其间,云雾就像浪一样汹涌从山谷里冲上来,遮住了周边的险峰,时而又悄
清明,江西的映山红开了清明,江西的映山红开了江西乡村的春天,浓浓色彩,不管你是不是江西人,哪怕是第一次踏入这片土地,乡情是如此熟悉,田园山水,好看,回家的感觉。奔腾的赣江舒展的抚河浩荡的信江滔滔的饶河文
让户外也有澎湃的音乐,SanagM11蓝牙音响,小体量大实力自己在用的蓝牙音响还是比较多的,不过最近还是入手了英国品牌Sanag的这款SanagM11蓝牙音响,这款音响无论从设计上,还是整体品质还是很打动我的。外包装采用了红蓝撞色设计,十分
云海里的天上人间中国最美乡村婺源的江岭风光,是中国田园风光最佳代表作。它与云南罗平贵州安顺青海门源并称为中国四大油菜花海。天下美景不胜举,但江岭风光却以其无与伦比的独特魅力,吸引国内外大量游客和摄
江西一景区走红,由两座高耸的岩山组成,是度假观光的好去处江西一景区走红,由两座高耸的岩山组成,是度假观光的好去处如今的中国,已经不再是之前的那个农业大国,中国经过几代人艰苦卓绝的努力之后,已经成为了一个强大的发展中国家,并且正在向着全面
中国佛教有十派,一派为净土宗,庐山东林寺是净土宗的祖庭发祥地庐山是中华十大秀美名山之一,她那云雾缭绕的层峦叠嶂到气势雄伟的奇岩怪石,那奔腾直下的飞瀑到曲折婉转的溪流,那神奇诡秘的洞穴到幽深空寂的峡谷无一不吸引着中外游客来此观光游览。如果说庐
北大博士妈妈每天带娃玩,被婆婆嫌弃,结果孩子上学后专注力惊人北大博士妈妈每天带娃玩,被婆婆嫌弃,结果孩子上学后专注力惊人邻居家的姐姐小慧一直都是别人家的孩子,她不但很轻松就完成了自己的学业从北大博士毕业,还找了一个富二代老公,一毕业就结婚,
重庆东溪一座让你来了就不想走的古老小镇外出游玩,遇到下雨难免会觉闹心,但殊不知,在细雨霏霏的日子,东溪古镇却别有一番风情。明清老街青石板路雨中街景承载了岁月的街巷,在雨中焕然一新,青瓦古宅人家缠绵的雨,给小镇添了几分清
平山的春天,打包送给你!四月,最是花开好看时!春季的六合五彩缤纷,花事不断樱花二月兰玉兰竞相开放今天,小编带你云赏六合平山烂漫春色!紫色的二月兰花海在和煦春风中摇曳身姿仿佛诉说着春天到了点点二月兰连成一片
降压药应该饭前吃,还是饭后吃?早知道,早受益王先生今年42岁了,虽然年龄不大,但是他却在3年前被确诊了高血压。刚开始的时候,他没有把高血压放在心上,降压药也是想起来吃一次,想不起来就不吃。然而,过了一段时间后,他突然出现了明
肌钙蛋白升高,未必就是心梗?哈大夫,我肌钙蛋白升高,还以为是心梗,可造影狭窄却不严重,这是咋回事?哈大夫掐指一算,发现事情并不简单。确实,肌钙蛋白升高常与心梗划等号,多数都是冠脉堵了导致,但也有部分患者并非如