如何在 Linux 中生成全景照片

如果你是一位狂热的摄影爱好者,那么你的摄影集中可能会有一些令人叹为观止的全景摄影作品。事实上,制作这些照片既不需要专业的摄影技术,也不需要什么特别的设备,利用一些照片合并软件(在线或者是离线,桌面设备或者移动设备)就可以将两幅或者多幅有重叠部分的照片轻松合成一幅全景照片。

这篇教程里,我将会解释 如何在 Linux 中完成全景照片的合并工作。在这儿,我将会使用一款叫做 Hugin 的照片合并软件。

Hugin 是一款开源(GPLv2)并可以免费使用的照片合并工具。它目前支持多个平台,包括 Linux,Windows,OS X 和 FreeBSD。 尽管作为一款开源软件,但是不论在功能上还是质量上,Hugin 都丝毫不逊色于商业软件。相反,Hugin 非常强大,不仅可以用来创建360度全景照片,还支持多种高级测光修正和优化。

在 Linux 中安装 Hugin

在 Debian,Ubuntu 或者 Linux Mint 中安装 Hugin:

$ sudo apt-get install hugin

在 Fedora 中安装 Hugin:

$ sudo yum install hugin

启动 Hugin

我们使用命令来启动Hugin。

$ hugin

在这儿(Assistant页),我们要做的第一件事就是导入我们想要合并的照片。我们先来点击Load images 按钮,然后导入(两张或者多张)图片。当然了,这些照片应该需要相互有一些重叠的部分(我们这里载入了三张)。

第一次照片合并

在导入照片之后,点击 Align 按钮来开始我们的第一次合并

为了正确合并照片,Hugin 将会在一个单独的窗口中启动合并助手,用来分析照片之间的关键点(控制点)。分析完毕之后,呈现在你眼前的将会是一幅全景照片的预览图。

接下来让我们切换回 Hugin 的主窗口。在 Align 按钮的下方,你将会看见照片合并的状态(比如控制点的数量,错误情况)。当然,还会有合并好坏的相关提示。

如果合并提示显示 bad 或者 really bad,你可以继续按照下面的办法来进行排列的调整。

添加或者删除控制点

在主窗口中,进入 Control Points 标签页。在这儿,Hugin 展现在组合照片中常用的的控制点。我们看到,在左右面板中展现了一对照片,上面的一些同色的小方盒表示的是常用的控制点。你可以手动来添加或者删除这些控制点。这些控制点匹配的越精确,我们得到的合并质量也就越高。除此之外,如果这些控制点分散得比较均匀,得到的效果将会更好。

使用顶部中间的左右箭头按钮来找到拥有最少控制点的两幅照片。如这样的两幅照片,我们可以试图按照下面的办法来手动增加控制点。

首先我们点击左边照片中的某个点,然后再来点击右边照片中对应的点。Hugin 将会试图自动调整。接下来,我们继续点击底部的 Add 按钮来添加匹配对。重复上面的操作来添加更多的控制点。

其他优化

我们可以试图进行重新优化,比如点击工具栏中的 Re-optimize 按钮,或者去 Optimizer 标签中重新调整之前的优化。

接下来回到 Hugin 主窗口中的 Assistant 标签,再次点击 Align 按钮来看看是否能得到一个更棒的结果。

倘若合并的全景照片的水平线参差不齐,我们可以试图将它拉直。首先点击工具栏上的 Preview panorama 按钮。

然后点击预览窗口中的 Straighten 按钮。

一旦你对合并的结果感到满意,你可以继续将它导出为图片文件。只需要到 Hugin 主窗口中 Sticher 标签页里进行下面的操作:

调整画布大小,剪切数量。当然,还需要选择输出格式(比如 TIFF,JPEG,PNG)。最后,点击 Stitch!按钮来完成。

之后会有提示保存当前项目文件(*.pto),设定保存好输出的文件名即可。

导出过程可能会需要花费几秒钟的时间。

本文题图是我利用 Hugin 的实验输出结果。画面中是墨西哥坎昆迷人海滩的全景。:-)

 原文发布时间为:2014-01-13

本文来自合作伙伴“Linux中国”

时间: 2024-08-04 07:41:37

如何在 Linux 中生成全景照片的相关文章

如何在 Linux 中产生、加密或解密随机密码

如何在 Linux 中产生.加密或解密随机密码 我们一直积极地提供有关 Linux 技巧的系列文章,如果你错过了这个系列的最新文章,你或许可以去访问下面的链接. Linux 中 5 个有趣的命令行技巧 在这篇文章中,我们将分享一些有趣 Linux 技巧,内容是有关如何产生随机密码以及加密或解密这些经过加盐或没有加盐处理的密码. 安全是数字时代中的一个主要话题.在电脑,email,云端,手机,文档和其他的场合中,我们都会使用到密码.众所周知,选择密码的基本原则是 "易记,难猜".考虑过使

如何在Linux中列出通过RPM或者DEB包安装的文件

你是否想要了解安装包中各个文件在 Linux 系统中安装(位于)的位置?我们将在本文介绍如何列出文件的来源,或存在于某个特定包或者一组软件包中的文件. 这篇文章可以帮你轻松地找到重要的软件包文件,如配置文件.帮助文档等.我们来看看找出文件在哪个包中或者从哪个包中安装的几个方法: 如何列出 Linux 中全部已安装软件包的文件 你可以使用 repoquery 命令,它是 yum-utils 的一部分,用来列出给定的软件包在 CentOS/RHEL 系统上安装的文件. 要安装并使用 yum-util

逝去的纪念:如何在Linux中同步微软 OneDrive

逝去的纪念:如何在Linux中同步微软 OneDrive [编者注]:本文译文完成之后不久,OneDrive 就成了中国人的昨日黄花了.编者想了想,还是发出来罢,仅以此文纪念我们逝去的这个.那个.以及这些和那些.也许若干年后我们回忆起来,我们曾经有过那么多那些,而当时却挑三拣四,没有珍惜,如果再给我一次机会-- OneDrive(以前称为SkyDrive)是微软的一个广受欢迎的云存储产品.目前OneDrive为每一个新注册用户提供7GB免费存储空间.正如你所想,OneDrive与微软其他软件产品

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

如何在Linux中压缩及解压缩.bz2文件

对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用. 另一方面,解压文件意味着将文件中的数据恢复到初始状态. Linux 中有几个文件压缩和解压缩工具,比如gzip.7-zip.Lrzip.PeaZip 等等. 本篇教程中,我们将介绍如何在 Linux 中使用 bzip2 工具压缩及解压缩.bz2文件. bzip2 是一个非常有名的压缩工具,并且在大多数主流 Linux 发行版上都有,你可以在你的发行版上用合适的命令来安装它

Linux 有问必答:如何在Linux 中修复“fatal error: x264.h: No such file or directo

Linux 有问必答:如何在Linux 中修复"fatal error: x264.h: No such file or directo 提问: 我想在Linux中从源码编译视频编码程序.到那时,在编译时,我遇到了一个错误"fatal error: x264.h: No such file or directory",我该如何修复? 下面的编译错误错明你系统中没有x264开发库文件. fatal error: x264.h: No such file or directory

Linux 有问必答:如何在Linux中修复“fatal error: lame/lame.h: No such file or dir

Linux 有问必答:如何在Linux中修复"fatal error: lame/lame.h: No such file or dir 提问: 我尝试着在Linux中编译视频编码器,但是编译提示出错:"fatal error: lame/lame.h: No such file or directory", 我该如何修复这个错误? 下面的编译错误说明你的系统没有安装LAME库和它的开发文件. fatal error: lame/lame.h: No such file or

如何在 Linux 中根据国家位置来阻断网络流量

如何在 Linux 中根据国家位置来阻断网络流量 作为一名维护 Linux 生产服务器的系统管理员,你可能会遇到这样一些情形:你需要根据地理位置,选择性地阻断或允许网络流量通过. 例如你正经历一次由注册在某个特定国家的 IP 发起的 DoS 攻击:或者基于安全考虑,你想阻止来自未知国家的 SSH 登录请求:又或者你的公司对某些在线视频有分销权,它要求只能在特定的国家内合法发行:抑或是由于公司的政策,你需要阻止某个本地主机将文件上传至任意一个非美国的远程云端存储. 所有的上述情形都需要设置防火墙,

如何在 Linux 中使用 Alpine 在命令行里访问 Gmail

如何在 Linux 中使用 Alpine 在命令行里访问 Gmail 假如你是一个命令行爱好者,我很确信你会使用这个强大的工作环境来执行哪怕是一项日常任务的工具,并为之欢呼,例如从 安排日程 . 管理财务 到 获取 Facebook .Twitter等任务.(LCTT 译注:阅读本文的另一个前提是,假如你还能访问 Gmail 或者知道 Gmail 是什么的话.) 在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,为此,我们将使用