首先简短的说两件事,一个是scorp近期介绍的Kodak 570,具有拍制全景图(panorama,可以把三张照片无缝隙拼接)的功能;还有就是微软最近介绍的Photosynth,广大网民争相拍手称好,说这才像是一个软件帝国的产品,这才让人相信可以和google一拼高下(同时由于还是Live旗下的产品,有期望应是可以在网上免费使用)等等,其功能就是以一大组照片为数据库来生成三维立体空间的视觉效果(可看上面网页提供的视频,或者这儿有live demo)。由于这两件事情,我对生成全景图有了极大的兴趣,并经过一段时间的搜索发现了自己缝制全景图的方法。当然,这完全离不开下面三个免费开源软件的协同工作: autopano-sift, hugin和enblend(这三个软件都同时提供windows和Linux的可执行程序,推荐使用。hugin的windows程序里已自带enblend,所以不用另装enblend)。
知道了方法只是一回事,具体实施其实是完全不一样的体验,尤其是如果选择的体系或者样品不好的话(相信各位同学对此都是深有感触的吧)。我这次作实验又选择了一个困难的体系:
、
。我本想这应该还是一件挺容易的事,只是把这两幅图有效的重合一下,完整的显现这个美丽的小岛。我都还直接用gimp把这两张图重叠了一下
。效果其实也还可以,只是中间有一条印痕。然后我们来看看上述三个软件来协作的效果吧。
先用autopano-sift比较两个图片生成有序的关键对照点文件,返回两张图片中的最相似点。例如这个
。这时会生成*.pto文件(含有相似点信息)和*.key文件(每张图片都生成相应关键点文件)。
然后用hugin读入上面生成的pto文件,就可以进行一些更关键的操作了
。 前面两个tab(images, camera and lens)用处不是很大,因为现在基本上都是数码相机,照片所存的exif信息会自动被读入。第三个tab(Control Points)显示的就如上面车的照片,因为autopano-sift已经为你计算好了相似点,所以就会显示出来;但同时你若不满意上述计算结果,你可以手动在加或减一些对照点。第四个tab(Optimizer),应该是关键所在,但大体来说就是根据对照点来优化最佳重合的方法。我个人感觉主要还是优化默认第一选择,然后则酌情而论,依次优化一下,不会带来更多变化就行(注意不要优化Everything(所有参数),除非两张图大约有50%以上可重叠)。结束了这一步可以先预览一下:小岛的-
, 车的-
。大家可以点击放大看一下,一定还是十分容易的能发现中间的裂痕。这道裂痕一直在我心中存在了整整一天就因为我选择了小岛来作我的第一个试验品。
还是先把重要的第三步说完吧,在我十分无奈的调试了无数参数,在windows和linux两台电脑上前后折腾都不能消去预览里的那条裂痕时,我想还是先把第三步给完成吧。那就是缝制一起了,这儿有些参数都是程序能自己计算所得的,记得摁那些”Calculate”键就行。但最重要的是,在输出这一栏,要务必选成tiff格式,然后勾上缓融合(需要enblend,但hugin的windows程序已自带),如图
。产生的结果是这样的
,其实这样看来也并没有了中间的裂痕,可是稍微仔细一下,就可以发现结合处小岛的前沿并没有缝合。这一结果使我非常沮丧,却同时又发现别人的介绍似乎都没这样的问题,显示的都是漂亮的缝合。我也作出了种种猜测,做了种种改良,却丝毫没有改观。比如我认为由于这两张照片不是同一时间连续拍的,相机的缩放比例保证不一样,人所站的地方也不一样,拍的大部分背景会动等等,我做了一些小尝试去克服,但都无功而返。最后我终于还是拿起相机去家门口新拍了两张照,拍的也主要都是不动的东西(房子、车),人也只是定点转动,然后来重做试验。可惜如前面预览里所见的,仍然有裂痕。我这回可不管三七二十一,知道别的参数调了也白调,优化之后直接输出,当然同时记得还是必须使上enblend的缓融合功能,结果就是这样了:
。一天的郁闷之情顿时全消
所以只要对这些软件稍有些接触,然后有好的样本(其实挺容易实现,只要拍之前想着回去要做全景图就行^_^),十分钟之内应该就能实现缝合。我们下周又计划去大瀑布玩,可以好好试试这一全景缝合功能了
另附三张图:
1.这是autopano-sift的windows界面
,建议Keypoint数选1300左右(内存512兆,当然也可以更多如果内存更大)。
2.还有就是hugin利用enblend缓融合的时候会自己跳出这个窗口
,不要紧张,随它去的
3.什么是Yaw-Pitch-Roll系统?看看这张图就明白了 ,hehe 
Comments 2
偶真是落后啊,偶现在还停留在用photoshop解决一切的原始社会呐~~
Posted 12 Aug 2006 at 10:00 am ¶呵呵,我也刚学的…
Posted 14 Aug 2006 at 9:14 pm ¶Post a Comment