利用开源软件 Hugin 实现照片的景深合成

利用开源软件 Hugin 实现照片的景深合成

本文主要参考了下面的文章:http://macrocam.blogspot.jp/2013/09/using-hugin-for-focus-stacking.html

根据我自己的理解做了少量的增删。首先感谢原作者。

Hugin 是一个很出名的全景照片拼接软件。但其实除了全景拼接功能外, hugin 还提供了一系列的命令行工具,可以用来操纵和融合多张图像,实现高动态图像(HDR)、景深合成(Focus Stacking)等各种高级功能。本文就来介绍一下如何用 hugin 做景深合成。

下面先来介绍一下什么是景深合成。我们知道拍照时视场中的景物只有在一定的远近范围内才是清楚的,这个清楚的范围的大小用景深来描述,景深越大就能使更多的不同远近的景物同时清晰。景深这个参数是镜头本身的特性,并且与镜头的光圈值是有直接关系的。简单的说就是光圈越大,景深越浅。虽然我们可以通过减小光圈来增大景深,但光圈太小进入镜头的光线就会很少,曝光时间就要增加,并且光圈不能无限的减小下去。

为了获得大景深的图像,就产生了景深合成这个技术。简单地说就是拍摄对焦在不同距离的一系列图片,然后将这些图片合成为一张远近都清楚的图片。这种景深合成技术在显微图像应用领域非常的有用,因为随着显微镜的放大倍数的提高,景深会变得非常的浅。对于常用的 50x 物镜拍出的照片,景深只有 1—2 um。这时只要样本有一点高度的起伏就没法全都拍摄清楚。

景深合成英文是 Focus stacking,也有人称之为 macro stacking、focal plane merging、 z-stacking 和 focus blending 。

景深合成主要用到如下两个命令行工具:

  • align_image_stack.exe

    这个工具用来将多幅图像对准。如果我们的图像已经是对准了的,这步也可以省略。比如我们拍照时用了三脚架,或者拍摄显微图像时图像没有左右移动。

  • enfuse.exe

    用来将多张图像融合在一起。这个工具具有非常多的命令行选项,可以实现相当多的图像融合方法,自然也包括景深合成所需的图像融合方法。enfuse 其实是一个单独的开源软件,被 hugin 包含进来了。

"align_image_stack.exe" -a "align_" -m -v t1.jpg t2.jpg
  • “-a” 参数告诉 align_image_stack 我们要为输出的图像指定一个前缀。不指定的话生成的图片会覆盖原始图片。
  • “-v” 是输出更多信息,这对于我们理解 align 过程发生了什么事情有些用,当然如果并不关心这些,可以不加这个选项。
  • “-m” 对除第一幅图像以外的其他图像进行适当的缩放,如果不加这个选项就只考虑平移和旋转。

除此之外,还有些选项也很有用。

* “-x” 对齐时考虑这些图像间 x 方向的平移,如果我们已知图像间只有这种平移,那么加这个选项会极大的提高处理速度。

* “-y” 对齐时考虑这些图像间 y 方向的平移。

* “-i” 对齐时考虑这些图像间 x、y 方向的平移。

* “-d” 对齐时考虑图像的径向畸变,径向畸变最常见的类型是桶形畸变 (Barrel distortion)和枕形畸变(Pincushion distortion)。

* “-e” 图片是鱼眼镜头拍摄的时用这个选项。

下面我们来看看 t1.jpg 和 t2.jpg。

t1.jpg 是对焦对在了后面的音箱上。前面两个药瓶都是模糊的。

t2.jpg 是对焦对在了最前面的药瓶上。这两幅图之间没有缩放或平移。所以输出的结果与原始图片没什么区别。

图像对其之后就是对这些图像进行融合了。

"enfuse.exe" -o "result.jpeg" --compression=100 --contrast-weight=1.00 --exposure-weight=0.00 --saturation-weight=0.00 --contrast-window-size=5 --hard-mask --gray-projector=luminance align_0000.tif align_0001.tif

这里面大多数的命令行参数都在我的上篇博客里有介绍,这里值介绍那些没介绍过的。

  • “–contrast-window-size=5” 用来设置窗口大小,只能是奇数值,通常取为 5 或 7 。
  • “–hard-mask” 这个选项通常只用于景深合成上,表明合成时不做平均处理,与之相对的是 “–soft-mask”。
  • “–gray-projector” 如何计算图片各个像素的亮度信息,默认情况是去 RGB 三个值的平均值。”luminance” 表示用 CIE 转换公式: Y = 0.3R + 0.59G + 0.11B

下面来看看融合之后的结果。

可以看出融合之后的图片中后面的音箱和前面的药瓶都是清晰的。中间那个药瓶还是模糊的,这说明我们原始的图片太少了,如果多一张中间清楚的图片合成的效果会更好。

至此,景深合成的基本方法就介绍完了,enfuse 软件功能很强大,还有许多其他的选项,这里没法一一介绍,感兴趣的同学可以读 enfuse 的帮助文档。

景深合成的一些小技巧:

  • 光照,减小一点曝光量,让照片暗一点更容易获得满意的合成图片。
  • 光源,尽量用漫反射光源照明。
  • 镜头,尽量选用畸变小的镜头,这样软件更容易对其图片。
  • 要有耐心,我们例子中只用了两张照片合成,但这只是个例子,真实情况下需要的图片笔者多的多。通常,我们需要几十张图片才能合成一幅满意的景深合成照片。
时间: 2024-12-28 15:18:02

利用开源软件 Hugin 实现照片的景深合成的相关文章

利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)

续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如何利用freeradius,以及结合Daloradius进行VPN的 Web 管理.先让freeradius做个自述吧. 一.Radius 介绍 远端用户拨入验证服务(RADIUS, Remote Authentication Dial In User Service)是一个AAA协议,意思就是同时

利用开源软件搭建JAVA工程CI&CD自动化工具链

JAVA传统项目交付流程的问题 开发和运维间环境有明显差异 代码缺乏统一质量度量 客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上BUG修复 打造工具链 ● 源码管理Gitlab● 持续集成Jenkins● 代码扫描SonarQube● 接口测试PostMan+NewMan● 制品管理ArtifactoryOSS版本(仅支持Maven)● 自动部署Ansible GitLab安装 vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=

利用开源软件打造自己的全功能远程工具

我们在开始之前,需要准备3个开源软件工具: Xming      开源的X服务器 winscp    开源的sftp/scp工具 mRemoteNG   开源的多协议远程连接工具 这3个工具组合,可以实现几乎一切远程连接和文件传输的需求. 这里主要介绍2个常用功能的配置: 1,启用图型界面转发 在mRemote的putty配置中打开X11的转发即可,启动Xming后,在终端有关X的窗口会自动转发到windows桌面上. 2,集成winscp实现远程与本地的文件互相传输. winscp并未直接在m

利用开源软件自建WAF系统--OpenResty+unixhot

目录 介绍 安装Openresty 修改nginx.conf 部署WAF 测试WAF 简介:利用OpenResty+unixhot自建WAF系统 介绍 ??OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.Web 服务和动态网关. ??OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从

开源软件与知识产权

目录 1.      软件与知识产权... 2 1.1.      引言... 2 1.2.      著作权法与软件... 3 2.      开源软件概述... 3 2.1.      自由软件运动... 3 2.2.      开源软件的发展... 4 2.3.      开源软件涉及的主要权益... 4 2.3.1.       著作权... 4 2.3.2.       专利权... 4 2.3.3.       商标权... 5 2.4.      开源软件的优势与劣势... 5 3

开源软件之七宗罪以及背后的阴谋

开源软件之七宗罪以及背后的阴谋 jopen 2012-10-29 11:31:22 ? 发布 摘要:我们每天使用着大量的开源软件,我们歌颂她赞美她.当有人站出来说一句开源不好 肯定会激起N多人站出来批评.然后给你列举出N多开源的好处和闭源的坏处. 我们每天使用着大量的开源软件,我们歌颂她赞美她.当有人站出来说一句开源不好 肯定会激起N多人站出来批评.然后给你列举出N多开源的好处和闭源的坏处. 首先我不反对开源,本文只是无聊时候的自己一点思考.想喷的各位请看完再喷.谢谢 自从开源运动发起以后.各种

100款开源软件

不知道这些你就OUT了!100款开源软件 好的软件可以极大提高工作效率,完成一些不可能完成工作.然而我们也常常为选择哪款软件而头疼,本次为大家推出的100款软件都是经过整理分类的,而且最重要的是100款软件都是开源免费且使用于Linux环境下,大部分都可以直接从官网上下载使用.如果你完全没有接触过以下我介绍的这100款软件,我只能说一句你OUT了! 图:100款软件分类图 接下来将要介绍的100款开源应用程序,是我花了很多时间为大家整理的,这些软件对大家来说是很有用的.我希望通过这100款软件告

开源软件收集

http://www.7-zip.org/7-Zip 4.16 Beta : 文件压缩工具,可与Windows资源管理器集成http://a-note.sourceforge.net/A Note 4.2.1 : 可在Windows桌面放置便笺,并可提供闹钟提醒功能http://www.xs4all.nl/~edienskeAbakt 0.9 : 能够以压缩方式对文档进行备份http://www.abisource.com/Abiword 2.27 : Windows写字板的替代程序,功能有所加

以后可以研究的49个开源软件

音频工具 1. Audacity 这个跨平台的录音.音频编辑器由于其运行的速度快.操作简单易用而得了高分,主要的功能包括封装编辑.混音.还有内置的特效,支持的格式有WAV, AIFF, Ogg, MP3. 2. Linux MultiMedia Studio 想想你用什么成为一个音乐创作者?LMMS让你在自己电脑上制作音乐,包括音频信号耦合,混响和合成,改编样本等等. 3. Jajuk 如果你在网上down了很多音乐,拥有一个庞大音乐库但是忘记了分类怎么办?Jajuk就是为你设计的,这个软件提供