所有教程由网友发布,仅供参考,请谨慎采纳。科创不对教程的科学性、准确性、可靠性负责。
条纹摄影2022版:用傅里叶变换消除条纹
三水合番2022/01/27原创 研究了个寂寞
关键词
条纹摄影FFT

三年前发过一篇帖子,讲怎么用条纹摄影拍摄热气流(https://www.kechuang.org/t/83365)。这个做法比较麻烦的一点是,它需要两张照片:一张没有热气流的照片,和一张有热气流的照片,而且这两张照片要严格对齐,实际操作起来出乎意料的困难。所以当时就希望只用一张照片,实现类似的效果。在那篇帖子的3楼,我提过一个朴素的设想:

没有太具体的想法。感觉上条纹这种东西很有规律性,所以可以用软件生成一组条纹,通过平移旋转,以及轻微扭曲等,和照片里的条纹重叠在一起(比如相关性最高之类的)然后再取差值,也许还可以加一些滤波算法,把条纹带来的高频抖动给去掉。

但是当时没想出来具体的实现方式,所以也就没搞。直到两个月前,又重新看到了这个设想,才突然发现:

“用软件生成一组条纹”,这个条纹不就是傅里叶变换的基函数吗

条纹的平移就是在改基函数的相位;轻微扭曲的条纹相当于一个有一定带宽的信号;“相关性”对应傅里叶变换中那个积分的值,也就是频域的幅度;而“取差值”,其实就是把某些频率分量的幅度设为0。

这样这个设想实现起来就很简单了,只需要找一个2维fft的库,用傅里叶变换把原照片变到频域,然后找到其中幅度最大的信号,把它的值改成0,再用逆变换把它变回普通的照片就行了。

上一篇帖子 里那张打火机的照片为例,具体操作是这样的:

①把热气流所在的部分截下来,只保留条纹。不能直接用原照片。

IMG.jpg


②把它变换到频域。直流信号在这张图片的正中心。左右两个最亮的点应该就是图片里的条纹。

freqCentNorm.png


③把幅度最大的一部分给改成零。具体操作是把幅度最大的 0.01% 数据给改成零。另外幅度最小的90%也被设成零了,能让噪声小点(不过效果不明显)。

DropValPlot.png


④把改完的频域数据变回照片

DropValIfft.png


⑤送到photoshop里调一下曲线,让热气流更明显一些,然后就结束了。

DropValIfft ps.png Snipaste_2022-01-26_18-17-38.png

这个效果确实比之前差很多。不过之前要用两张照片,现在这个只需要一张。如果要处理视频的话,这个方法的好处是,摄像头本身可以动,手持相机也可以用这个办法。相对的,如果是视频两帧相减的办法,则需要相机固定得很好才行。


另外前面提到“不能直接用原照片”,因为直接用的话效果是下面这样的。这是因为照片中没有条纹的区域,会产生大量的宽带的频域信号。此时,前面那种简单的把0.01%的频域数据改成零的操作,会在照片中引入大量周期性的波动,导致啥都看不清。也许可以用小波变换来解决这个问题。

DropValIfft ps99.9.png


具体的代码是用python写的

attachment icon Schlieren.html 0.00KB HTML 22次下载

重点是下面这句,那个99.99改一下对效果影响比较大。

DropVal[
    np.logical_or(
        (np.abs(DropVal) > np.percentile(np.abs(DropVal),99.99)),
        (np.abs(DropVal) < np.percentile(np.abs(DropVal),90)))
     ] = 0


来自:综合交流区 / 科创茶话计算机科学 / 软件综合严肃内容:教程/课程
11
 
9
Kana
6个月18天前
1楼

似乎可以理解为图像信号的“超外差”:以条纹为载波,把低频的图像信号搬移到载波频率周围。

印象里有个类似的科学问题是:利用结构光照明,实现显微图像突破衍射极限的超分辨率重建。这里有一篇文章可供参考:

周兴, 但旦, 千佳,等. 结构光照明显微中的超分辨图像重建研究[J]. 光学学报, 2017, 37(3):12.

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gll
6个月18天前 修改于 6个月18天前
2楼

输出有种调幅信号的感觉


引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
6个月18天前
3楼

周期性波动应该是振铃,原因应该是你没加窗

引用
评论
3
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
RodTech
6个月17天前
4楼

楼主可以看下phase retrieval的一些技巧


9693D60F-E4F6-4BA4-8751-7E7E605263B2.jpeg 16A51E69-FC3A-4C0B-8117-8DED20512F0F.png

引用
评论
5
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
170050051624
6个月17天前
5楼

条纹的傅里叶变换应该是类似周期方波的傅里叶变换吧?这样后期把对应频率的赋值置0后还是会留下不少谐波分量的,可能会影响显示效果。所以生成一个亮度正弦变换的条纹会不会处理后效果更好?

引用
评论
3
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gll
6个月17天前 修改于 6个月17天前
6楼

用相位谱会不会更好点

一部分信息应该包含在相位的改变上

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
WernerPleischner
6个月17天前 修改于 6个月17天前
7楼

这个条纹的波数可能不是单值的,因为相机成像过程中会引入一定的畸变,引起谱上的展宽。


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
splmonster
6个月16天前
8楼

我觉得可以直接利用摩尔纹拍摄,在屏幕上显示极细的网格,然后用相机拍摄,调整到摩尔纹最清晰的时候,放入热源,这样甚至可以录制视频

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gll
6个月16天前
9楼
引用WernerPleischner发表于7楼的内容
这个条纹的波数可能不是单值的,因为相机成像过程中会引入一定的畸变,引起谱上的展宽。

大概就是频谱显像边界,相移显像内部

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
iamapighhh
1个月4天前
11楼

感谢楼主的帖子,给我开始研究的一点动作。后来我发现了,这个技术他们叫background Schlieren

思路和楼主是一致的。

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
加入关注取消关注
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
建议修改
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}