图像处理中的通信原理——冈萨雷斯读书笔记(二)

参考伯乐在线的一篇文章,做图像的傅里叶变换。在PyCharm中安装cv2时出错,如下图:

根据提示建议在命令行中执行命令pip install cv2也依然是No matching distribution found for cv2.注意到pip可以更新,但这不是问题所在。然而,将相同的py文件添加在venv文件夹中没有在import时报错。venv是virtual environment的缩写。查到的资料是这样的:每个应用需要的运行环境经常不同(包的版本/python版本等),所以需要用virtualenv创建一套属于这个程序的“隔离”的Python运行环境。而且系统Python环境不会被修改,保持干净。可打包后移动目录,但无法跨平台。注意当前项目的python解释器是哪个,一定要设置成虚拟环境中的python。virtualenv 创建的虚拟环境与主机的 Python 环境完全无关, 你主机配置的库不能在 virtualenv 中直接使用。 你需要在虚拟环境中利用 pip install 再次安装配置后才能使用。

注意到解释器也根据工程有不同的版本,区别在安装了哪些模块。当在venv中换了一个解释器,cv2依然安装失败,但程序的结果正确。


#!/usr/bin/env.python
import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltimg = cv.imread('Joseph_Fourier_250.jpg', 0)
f = np.fft.fft2(img)  # 快速傅里叶变换算法得到频率分布
fshift = np.fft.fftshift(f)  # 默认结果中心点位置是在左上角,转移到中间位置fimg = np.log(np.abs(fshift))  # fft 结果是复数,求绝对值结果才是振幅
fimg0=np.log(np.abs(f))# 展示结果
plt.subplot(131), plt.imshow(img, 'gray'), plt.title('Original Fourier')
plt.subplot(132), plt.imshow(fimg0, 'gray'), plt.title('Fourier Fourier') #中心位移之前的频谱
plt.subplot(133), plt.imshow(fimg, 'gray'), plt.title('Fourier Fourier-shift') #中心位移之后的频谱,但坐标轴没有变化,此时中心的频率应该为0
plt.show()

上面的代码中提到将频谱中心移动。具体操作通常在进行傅里叶变换之前用(-1)^(x+y)乘以输入的图像函数,这样就可以将傅里叶变换的原点F(0,0)移到(M/2,N/2)上。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰.



傅里叶变换的本质是将信号分解为一系列正弦曲线的叠加。正弦曲线有三个属性:频率;幅值;相位。我们看到傅里叶变换的每一项(对每对频率u,v,F(u,v)的值)是由f(x)函数所有值的和组成。f(x)的值与各种频率的正弦值和余弦值相乘。如果正好有相同的频率分量,相乘得一个值,即幅度。如果没有特定的频率分量,乘积就应该是0,其实傅里叶变换就是一个正交变换。

幅值描述了对比度,图像最亮处和最暗处的的差值。在频谱中由亮度表示,亮度越高表示对比度越大。

频率是空域上亮度改变的频率。傅里叶变换得到的频谱,频率从0到奈奎斯特频率(数字图像可被编码的最高频率,与分辨率、像素大小有关)。频率为0的分量就是直流DC分量,因为亮度不可能取负数,所以所有的图像的直流分量都不为0.

相位代表正弦曲线相对于原始状态是如何移动的(偏移量)。



I=imread('sin3.PNG');figure;
subplot(1,2,1),imshow(I),title('原图');
I=rgb2gray(I);%转换为灰度图I=im2double(I);%转换成double类型,图像灰度值从0~255变成0~1F=fft2(I);F=fftshift(F);%象限变换F=abs(F);
%F=real(F);有的程序是求摸,有的是求实部T=log(F+1);%保证取对数后还是正数subplot(1,2,2),imshow(T,[]),title('Fourier');%imshow(T)只会显示[0,1]的值,而imshow(T,[]) 会根据灰度图的数值范围来显示图像

频谱图中心点表示DC直流分量,频谱图以中心点中心对称。如下图,虽然只有一种频率分量,但却有三个亮点。截图来自参考链接1,链接1给的图是gif格式的,查了一下才知道gif其实也是一种无损压缩格式,GIF(Graphics Interchange Format)的原义是“图像互换格式”,只不过可以将多幅图像保存到同一个文件中的特点使它在逐幅图像读取到屏幕上时可以显示为动图。刚才的程序直接读取gif文件和后缀改为jpg的都报错,openCV不支持gif的解码(好像是因为gif中LZW算法专利的原因),可以用第三方库FreeImage读取,这里我用了截图软件才将频谱画出来,如下面的右半边,但是和刚才的分析和左边的实验结果不同,右边的图是一条直线,且频谱图的“背景色”是白色。当用如上的matlab画频谱图时,颜色与python画出的图正好相反。断点调试发现其中fimg变量出现大量的-inf,造成了“背景”全白,同时注意到控制台出现提示divid by zero,判断出是在取对数过程中造成了负无穷,根matlab一样在取对数之前+1进行修正,即得到了和matlab一样的结果。opencv也支持图像傅里叶变换,感兴趣可以戳这里。

既然“背景色”的问题已经解决了,还有一个问题是自己频谱的实验结果是一条线而Fouier Transform是三个点。参考链接在最后其实就是在解释这个问题,其实这就是“振铃效应”,也就是“吉伯斯现象”。仔细观察其实输入的黑白条纹图是渐变的,那么它是按照什么规律渐变的呢,答案就是正余弦函数,如果完全按照余弦函数渐变,它对应的频谱就是一个单频点,考虑到正负对称和直流分量就是三个点。这里我一开始每注意到渐变的因素,因为只要是间隔一样即只存在一个频率,还给正科解释错了。

但是,当黑白条纹没有做到像余弦函数一样平滑时频谱会怎么样呢,极端一点,我们考虑完全没有渐变的黑白条纹,黑条白条之间没有过渡,这对应一维的矩形。我们知道矩形需要无穷多个余弦函数才能拟合,而且需要很多的高频分量,在二维的黑白跳变的图像中,它的频谱就无穷多个“三点”的集合。如下图,从1到7,条纹越来越密集,频率也越来越大(分别是基准频率的3、5、7倍),对应的频谱中点的坐标值也越来越大,间隔越来越大。当把不同频率的条纹图叠加起来,它们的频谱也是对应频谱的叠加。可以观察到,随着高频分量的叠加,条纹亮度图中间的白条越来越突出,其他地方越来越成为黑色的背景,频谱图也越来越接近于一条直线。事实上,这就解释了最后一幅图的频谱图为什么是一条直线。


再分析上面两种频谱。左边的频谱看似有四条线,其实只是两条垂直的线,分别代表横向的亮度变化和纵向的亮度变化,但是都不经过中心点,是因为原图带来的相位偏移。结合右边的情况,频谱与亮度变化发生的具体位置是无关的。

看,只是最熟悉的傅里叶变换在实际运用在离散、二维情况下都出了这么多情况,就像正科的老师说的,越读书会越觉得什么都不会。纸上得来终觉浅啊,继续努力!

Reference:

1.http://cns-alumni.bu.edu/~slehar/fourier/fourier.html#filtering

2.https://blog.csdn.net/abcjennifer/article/details/7622228

3.http://blog.jobbole.com/94144/

4.https://blog.csdn.net/keith_bb/article/details/53389819

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

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

相关文章

图像处理中的通信原理——冈萨雷斯读书笔记(三)

法国数学家傅里叶男爵在1822年出版的《热分析理论》一书中指出,任何周期函数都可以表示为不同频率的正弦和或余弦和(每个正弦项/余弦项乘不同的系数)的形式,这其实就是无穷级数的一种:傅里叶级数。无穷级数的思想是通过…

腾讯俞栋:定义下一代智能人机交互,从目标、挑战到实现路径

来源:腾讯AI实验室语音识别及深度学习领域专家、腾讯AI Lab副主任及西雅图实验室负责人俞栋博士,在2018年腾讯全球合作伙伴大会上展示了腾讯AI正在推进的跨领域前沿研究:下一代的多模态智能人机交互。以下是有补充的演讲全文,介绍…

图像处理中的通信原理——冈萨雷斯读书笔记(四)

完美重建要求使用无限求和来内插,实践中,不得不寻求某种近似。在图像处理中,二维内插最普通的应用就是调整图像的大小。放大可看成是过取样,缩小是欠取样。无论是过取样还是欠取样,都需要内插,内插有最近邻…

unity3d游戏开发(一)——圈圈叉叉

参考:http://game.ceeger.com/forum/read.php?tid1719 ———————————————————开始————————————— 好吧,吹了那么多我们开始吧,先发个最终截图 当然,你觉得3个格子太少,你还可以扩展成任…

腾讯张正友:攻克可进化机器人,6个研究趋势与7大技术突破点

来源:腾讯AI实验室11月2日,机器人及多媒体技术专家、腾讯Robotics X实验室主任张正友博士,在2018年腾讯全球合作伙伴大会的人工智能分论坛上,展示了腾讯在机器人领域的思考。包括:腾讯将人工智能(AI&#x…

摩拜开锁方式

摩拜作为共享单车中发展得比较好的一个,最近又因为被美团收购和抛弃同龄人的文章上了新闻,我们从技术上看,它的解锁时候的通信方式是怎样的呢? 注意到摩拜的一款车车筐里面装了太阳能电池,所以能源问题容易解释。我们先…

前沿地带:从量子计算到量子互联网

来源:资本实验室当我们进入互联网时代,科技进步和社会发展就建立在了数据与计算能力的基础之上。庞大的数据量与快速的计算能力这两大基本因素决定着我们进入未来社会的速度,而在当前的各种新技术中,量子计算无疑是最具未来感的新…

千万级负载均衡架构设计

负载均衡 (Load Balancing) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 大型网站负载均衡的利器 全局负载均衡系统&#xf…

科学为什么重要?马化腾公开信引热议,透露企业未来发展方向

来源:世界科技创新论坛摘要:美国强大的源泉,不是因为它有原子弹,航空母舰,隐性飞机,或者芯片,而在于它牢牢地掌握着基础科学的最前沿。科学一点都马虎不得,没有捷径可走,…

吴恩达斯坦福大学机器学习 CS229 课程学习笔记(二)

终于要开始正式的学习了。看了第一节课最大的印象是Ng老师的优雅,儒雅,偏英式的发音(突然意识到他从小在伦敦长大)。配着字幕看的视频,但还是希望能锻炼一下自己的听力,也只有在自己看过一遍印象才深刻&…

当自动驾驶汽车撞过来的时候,你希望它如何判断?

来源:网易智能 摘要:据报道,当无人驾驶汽车在繁忙的街道上发生碰撞的时候,它该优先避免让谁受伤呢?它该杀死谁,而不杀死谁呢?麻省理工学院的一项研究表明,你的回答将取决于你来自哪里…

细数黑客攻击的七大战术

不计其数的黑客们游荡在因特网中来欺骗那些容易上当的用户。它们多年使用着重复的攻击手段,毫无创新地利用着我们懒惰、误判和一些犯二的行为。 不过每年,恶意软件研究人员总会遇到一些引人侧目的攻击手段。这些攻击手段在不断拓展恶意攻击的范围。新的攻…

人工智能黑暗面

来源:大数据文摘编译:DonFJ、蒋宝尚机器学习是现在大家都打了鸡血想用或者在用的技术。但是,你以为只有好人能用它吗?Too young too simple!接下来,我将揭秘AI技术黑暗的一面——犯罪份子和人工智能的孽缘。…

认识蚁群算法

好像是看罗胖的罗辑思维,看到过一种说法,越是准入门槛高的,难以取代的行业,所需的工具是越简单的。摄影师需要昂贵的镜头,而画家却只需要简单的纸笔,尽管照片比画逼真得多,但是却无法取代绘画的…

薛定谔的猫跳进了生物学界,化学家表示:没有我可能办不到

来源:原理摘要:在生物科学界流传着“物理学家累了就来生物界玩一玩”的调侃。确实,现今学科之间密不可分,生物学的发展对特定物理技术的需求也越大。但是这样化学家却不满意了?1943年,物理学家薛定谔在都柏…

图像配准之特征点匹配的思考

最近赶时髦,看了一些智能优化算法如蚁群算法,还有机器学习的一些东西,就想着怎么把这些先进的东西用在图像配准中。头脑风暴了一下,觉得在已经检测到两幅图像的特征点的基础上,就如何对它们进行匹配似乎有优化的空间。…

指针%p输出的一些认识

还是看源码发现的问题 static int import_lowe_features( char*filename, struct feature** features ) 这个函数的作用是将txt文件中的Lowe的特征点导入到feature结构体中。在这个函数中第二个参数是指向结构体的指针的指针。 f calloc( n, sizeof(struct feature) );//在内存…

全球智慧医疗产业发展现状

来源:无锡情报所摘要:全球智慧医疗市场主要集中在美国、欧洲、日本和中国,而产品生产主要集中在美国、欧洲和日本。 随着大数据、云计算、物联网和人工智能技术快速发展和普及,运用互联网应用平台提升医疗资源的使用效率、提高救治和服务水平…

2018AI和机器学习界的12个重大收购案

来源:网络大数据据IDC声称,到2018年,全球人工智能(AI)和认知系统支出将达到190亿美元,这比2017年的支出总额增加约54%。并购在不断发生。仅2017年就见证了几起大宗收购,比如雅虎被Verizon收购、苹果收购Shazam等。知名…

PCA对特征点描述子降维

降维在机器学习领域其实是很重要的一部分,因为在高维情形下回出现样本稀疏,计算距离、内积困难,是所有机器学习面临的共同问题,被称为维数灾难(Curse of dimensionality),而降维就是解决的一个办…