日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

漫谈计算摄像学 (二):利用光场实现“先拍照后对焦”

發(fā)布時(shí)間:2024/1/17 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 漫谈计算摄像学 (二):利用光场实现“先拍照后对焦” 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文和該系列均以搬運(yùn)至知乎:?https://zhuanlan.zhihu.com/p/24983091

在上一篇直觀理解光場(chǎng)中,談到了光場(chǎng)的基本概念、3D性質(zhì)、實(shí)際應(yīng)用中的采集辦法和插值求任意光線的辦法。這一篇繼續(xù)上一篇的基礎(chǔ)上給出利用光場(chǎng)實(shí)現(xiàn)“先拍照后聚焦”的原理和基本步驟。

對(duì)焦與光路

首先,什么是對(duì)焦呢,我們先簡(jiǎn)單回顧一下中學(xué)物理。

先看左圖,物體端的對(duì)焦面就是最上方的平面,從這個(gè)平面上的每一點(diǎn)發(fā)出的光線最后都匯聚在另一端的像平面上,一個(gè)典型的光路如加粗的四色直線所示。如果希望物體端的焦面移動(dòng)到和原焦面到透鏡之間的位置,可以看到光線仍然是那些光線,但是聚焦到像面的光線組合就不再是之前的光線了,比如右圖里,加粗的光線除了紅線以外,黑綠藍(lán)三色的光線都不再是原來(lái)的那幾根。對(duì)應(yīng)對(duì)焦的基本光路,再回來(lái)看光場(chǎng),根據(jù)上一篇文章中介紹過(guò)的光場(chǎng)的基本原理,很自然的,我們會(huì)想到,只要把在一個(gè)物平面上發(fā)出的光線所對(duì)應(yīng)的像素疊加在一起,不就實(shí)現(xiàn)了重聚焦了嗎?事實(shí)上這就是最簡(jiǎn)單的基于光場(chǎng)的重聚焦算法,叫Shift-and-Add[1]。

先拍照后對(duì)焦的算法

還是借助上一篇文章中的配圖來(lái)講解Shift-and-Add算法:

如左圖所示,在原始的采集位置上,藍(lán)色光線在兩幅采集到的圖像里分別對(duì)應(yīng)于不同的位置,所以如果要對(duì)焦于藍(lán)色的方塊,則需要將他們的相對(duì)位移消除,這一步就是Shift,然后在把兩個(gè)像素的平均值求出作為對(duì)焦后的新圖像的像素值,則得到了對(duì)焦于藍(lán)色方塊的圖像。同樣道理,對(duì)于更遠(yuǎn)的綠色三角,則進(jìn)行更大距離的位移來(lái)消除對(duì)應(yīng)像素之間的相對(duì)距離,然后疊加得到新的對(duì)焦于綠色三角的圖像。需要注意的是,如上面的小圖所示,移動(dòng)疊加之后,邊緣部分總是有些像素是不重合的,所以或多或少都會(huì)形成瑕疵。

具體到上篇文章里手機(jī)拍的照片例子,就是按照每張照片采樣位置相對(duì)于中心位置進(jìn)行等比例的移動(dòng),就可以得到在不同物平面上重聚焦的圖像,比如我們選取9個(gè)采樣點(diǎn)的中心點(diǎn)作為中心位置的話,將其他8個(gè)采樣點(diǎn)放置到不同位置上,就對(duì)應(yīng)得到不同的重聚焦圖片:

綠圈位置對(duì)應(yīng)圖像:

藍(lán)圈位置對(duì)應(yīng)圖像:

就這么簡(jiǎn)單。那么,Lytro中的算法是不是Shift-and-Add呢?答案是否定的,Lytro的算法是把平移-疊加這種空域的算法放到了頻域執(zhí)行。基于的原理叫做中心切片定理,這里只簡(jiǎn)單提兩句,中心切片定理是二維的,不過(guò)其基本原理可以拓展到任意維度,Lytro中用的是其在4維時(shí)的應(yīng)用。簡(jiǎn)單來(lái)說(shuō)就是把4維的光場(chǎng)進(jìn)行傅里葉變換之后,在4D的傅里葉空間內(nèi),不同位置的重聚焦圖片分別對(duì)應(yīng)一個(gè)穿過(guò)中心的不同角度的二維傅里葉空間的插值切片的逆傅里葉變換。所以本質(zhì)上而言,這種辦法和Shift-and-Add沒(méi)有區(qū)別,只不過(guò)是把線性操作換到了頻域空間。shift-and-Add每次產(chǎn)生新的重聚焦圖片時(shí)都需要用到所有采集的光場(chǎng)信息,算法復(fù)雜度是\(O\left( {{n}^{4}} \right)\)。而如果是從變換后4D數(shù)據(jù)里產(chǎn)生新的重聚焦圖片,則分為兩步:1) 求插值得到2D的傅里葉空間切片,復(fù)雜度是\(O\left( {{n}^{2}} \right)\);2) 二維傅里葉逆變換,復(fù)雜度是\(O\left( {{n}^{2}}\log n \right)\),當(dāng)然為了得到4D的傅里葉變換還有一步初始化計(jì)算,復(fù)雜度是\(O\left( {{n}^{4}}\log n \right)\)。所以在已經(jīng)有了采集到的4D數(shù)據(jù)需要不斷生成新的重聚焦圖片的場(chǎng)景下,在頻域的重聚焦算法時(shí)間上更經(jīng)濟(jì)一些。更多關(guān)于頻域重聚焦算法的詳細(xì),有興趣的朋友可以參考[1]。

另外特別要提的一點(diǎn)是,在這種Shift-and-Add框架下的重聚焦算法,和實(shí)際相機(jī)成像的圖片是有區(qū)別的。原因就是第一節(jié)中對(duì)焦與光路部分。可以看到在凸透鏡光路中,不同位置上對(duì)焦的光線是互相不平行的,而Shift-and-Add算法下,所有光線都被認(rèn)為是“平行”移動(dòng)的,所以在重聚焦后的照片中,虛化的部分圖像是不一樣的,然而這種差距對(duì)于人眼來(lái)說(shuō),其實(shí)也沒(méi)那么大差別。

插值法去重影

可能有的朋友看到這里已經(jīng)發(fā)現(xiàn)了,雖然重聚焦是完成了,可是重對(duì)焦后圖像的質(zhì)量并不好,比如上一節(jié)中對(duì)焦在Dell標(biāo)志上的一張:

花朵的部分有很明顯的重影,和用相機(jī)鏡頭照出來(lái)的顯然不一樣。通過(guò)前面部分的原理講解,這個(gè)原因也是很顯然的:因?yàn)橹挥?個(gè)采樣點(diǎn),在移動(dòng)-疊加的過(guò)程中,不同圖像對(duì)應(yīng)像素的移動(dòng)超過(guò)了一個(gè)像素,則疊加后的圖像就會(huì)出現(xiàn)這種類似于重影的瑕疵。其實(shí)這個(gè)問(wèn)題解決起來(lái)也很簡(jiǎn)單,記得在上篇文章中,已經(jīng)講過(guò)如何通過(guò)插值得到虛擬位置采樣的圖像,所以很自然地,我們只要通過(guò)插值,讓采樣點(diǎn)更密,密到每一個(gè)采樣點(diǎn)和相鄰采樣點(diǎn)的圖像上的對(duì)應(yīng)像素的位移都小于或接近一個(gè)像素,那么視覺(jué)上這種重影的現(xiàn)象就可以消除了。得到的結(jié)果如下:

最后來(lái)個(gè)連續(xù)變焦的動(dòng)圖:

光圈的模擬

許多人在用傳統(tǒng)相機(jī)拍攝“虛化”照片時(shí)喜歡通過(guò)調(diào)整光圈來(lái)控制虛化的程度。這在基于光場(chǎng)的重聚焦中也是可以模擬的,道理很簡(jiǎn)單,就是將采樣的范圍調(diào)整就可以了。還是用上一篇文章中的例子,比如用所有的采樣點(diǎn)(包括插值得到的):

得到的圖像:

而如果只采用中間一小部分的采樣點(diǎn)的話,相當(dāng)于小光圈:

則得到虛化程度比較低的圖片:

[1] R. Ng, "Digital Light Field Photography," PhD thesis, Stanford University, Stanford, CA (2006)

轉(zhuǎn)載于:https://www.cnblogs.com/frombeijingwithlove/p/4238608.html

總結(jié)

以上是生活随笔為你收集整理的漫谈计算摄像学 (二):利用光场实现“先拍照后对焦”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。