前面有幾篇博客主要介紹了光場和光場相機相關知識,以及重對焦效果和多視角效果的展現。算是本身學習光場過程的一種總結。git
此次貼上本身用OpenCV/C++編寫的重對焦算法實現(包含CPU版和CUDA GPU版),以及交互的Demo。放在個人開源中國碼雲上,鏈接在此:https://git.oschina.net/rxdj/refocus_LightFieldImg.git。算法
代碼的說明請參見readme。若有錯誤,請不吝賜教。工具
圖像是Lytro Illum二代相機拍攝並經過matlab光場工具包解碼獲得的RGB彩色圖,微透鏡座標也是matlab工具包中解碼白圖像時獲得的中間結果。學習
主要參考文獻爲:Tao M W, Hadap S, Malik J, et al. Depth from combining defocus and correspondence using light-field cameras[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 673-680. spa
該文獻中有開源Matlab源代碼,使用的是Lytro 一代相機拍攝的圖像。一代和二代相機數據不一樣在於微透鏡個數以及每個微透鏡後面的像素個數不同,對應修改代碼便可。.net