光场相机重聚焦--焦点堆栈深度估计法
光场相机重聚焦原理介绍及代码解析
光场相机重聚焦–焦点堆栈深度估计法
全部代码下载地址:
https://download.csdn.net/download/weixin_38285131/10441175
上一篇博客中介绍了光场相机重聚焦算法原理介绍,对光场图像进行重聚焦可以聚焦在不同的深度处,使位于不同深度物体清晰,因此,我们可以对光场图像进行重聚焦,然后进行深度估计。
焦点堆栈深度估计法原理介绍
计算焦点堆栈每一个像素的梯度,然后对每张图像梯度图像进行均值滤波,然后计算三个通道梯度值的平方和取均值,再开根号,即为该张图像的梯度值,焦点堆栈的同一位置像素梯度最大则说明该深度时该像素最清晰,也就是说该深度面上的物体最清晰,记录该深度的索引值。
焦点堆栈
焦点堆栈就是聚焦在不用平面处的一系列图像
因此,对光场原始图像进行256次重聚焦,这一系列重聚焦图像就称之为焦点堆栈。
梯度
梯度的概念可以自己了解一下
步骤:计算整副图像的梯度值,然后做均值滤波,每个通道梯度的平方去均值再开根号,为该图像的梯度值。
X方向梯度:
Y方向梯度:
该像素点梯度:
这里用到了Matlab的gradient函数,自己了解一下
梯度计算代码:
function img_gradient = DEFOCUS_ANALYSIS(img)//%img为double类型grad_map = abs(gradient(IM_Refoc_alpha)) ;%梯度计算
h= fspecial('average',[5,5]) ;%定义一个均值滤波器
shear_std_map = imfilter(grad_map,h,'symmetric') ;%对梯度进行均值滤波
shear_std_map = ((shear_std_map(:,:,1).^2 ...%梯度图三个通道的平方相加取平均值 然后开根号,就是其梯度值+shear_std_map(:,:,2).^2 ...+shear_std_map(:,:,3).^2)/3).^(1/2) ;img_gradient = shear_std_map ;%img_gradient就是这个图像梯度值,为[m,n]大小的单通道图像
end
放一张梯度图:
原图如下:
比较亮的地方就说明该张图片在整个焦点堆栈中梯度值较大,最清晰
结果展示
我们利用上一篇博客中的256层重聚焦生成的焦点堆栈进行深度估计
部分焦点堆栈展示:
关于索引值
比如第一个像素,在焦点堆栈中的第25张图像中梯度值最大,那么该点的索引值即为25,我们对整幅图像m*n个像素计算其索引值,256层重聚焦,因此索引值应该∈(0,256)
索引图像
部分索引值
然后可以根据焦距,像距和物距公式计算深度,1/U+1/V=1/F,alpha*F就是V,alpha为上一篇博客中讲到的
这种方法估计深度比较粗糙,而且在纹理重复和边界估计不准确,需要进行优化,比如MRF优化等
参考:
1.论文Depth from Combining Defocus and Correspondence Using Light-Field Cameras-W.Tao
2.Panoramic Reconstruction from Multiple Light-Field Images-Buyukalp,Yasin
光场相机重聚焦--焦点堆栈深度估计法相关推荐
- 光场相机重聚焦原理介绍及代码解析
光场相机重聚焦原理介绍及代码解析 光场相机重聚焦–焦点堆栈深度估计法 全部代码下载地址: https://download.csdn.net/download/weixin_38285131/1044 ...
- matlab光场成像,光场相机重聚焦原理③——Matlab光场工具包使用重聚焦及多视角效...
光场相机重聚焦原理③--Matlab光场工具包使用重聚焦及多视角效 光场相机重聚焦原理③--Matlab光场工具包使用.重聚焦及多视角效果展示 目录 1.从相机里导出白图像(White Images) ...
- 光场相机重聚焦原理之——光场的参数化表征
转自https://www.cnblogs.com/riddick/p/6725273.html 博主最近在搞光场相机方面的研究啦,好了废话不多说,开始! 1. 一些前言废话 首先,来一下光场的基本 ...
- 光场相机重聚焦原理①——光场的参数化表征
1. 一些前言废话 首先,来一下光场的基本概念,来自百度百科.光场(light field):就是指光在每一个方向通过每一个点的光量.从概念里,你至少可以得到两点信息:1.光场包含光的方向:2.光场 ...
- 光场相机重聚焦原理③——Matlab光场工具包使用、重聚焦及多视角效果展示
目录 1.从相机里导出白图像(White Images): 2.处理白图像: 3.利用白图像对光场文件进行解码得到rawImage: 4.对rawImage进行去马赛克操作(demosaic): 5. ...
- 光场相机重聚焦原理②——Lytro Illum记录光场
目录 1.光场相机内部如何记录光线的方向? 2.Lytro illum中光场如何参数化表示? 3.Lytro illum如何实现重聚焦? 上一节中大概讲述了光场相机和光场的参数化表示,这一节就说一下光 ...
- 光场相机重聚焦之二——Lytro Illum记录光场
转自https://www.cnblogs.com/riddick/p/6731130.html 上一节中大概讲述了光场相机和光场的参数化表示,这一节就说一下光场相机内部是如何记录光场以及实现重聚焦的 ...
- Lytro 光场相机重对焦C++实现以及CUDA实现
前面有几篇博客主要介绍了光场和光场相机相关知识,以及重对焦效果和多视角效果的展示.算是自己学习光场过程的一种总结. 这次贴上自己用OpenCV/C++编写的重对焦算法实现(包含CPU版和CUDA GP ...
- CVPR 2021 Oral | 室内动态场景中的相机重定位
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 关键词:动态场景,相机重定位 导 读 本文是对发表于计算机视觉和模式识别领域的顶级会议 CVPR 2 ...
最新文章
- SQL Server 中 sysobjects表
- 驳斥苹果“诊断后门论”,声援扎德尔斯基
- css浮动+应用(瀑布流效果的实现)
- 教你从零开始搭建一款前端脚手架工具
- linux的for循环怎么写,Linux命令:for循环写法总结
- 2019计算机国二操作题,2019年3月计算机二级C++操作练习题及答案(十二)
- cygwin使用笔记
- 讨论一个比较有意思的业务需求
- 题目1080:进制转换(任意进制直接转换方法)
- wex5 导入mysql_wex5 sqllite本地数据库的运用
- Matlab入门:界面认识
- 调频去加重 matlab,调频广播中预加重和去加重问题的讨论.doc
- 如何在南方CASS中内插高程点
- 家藏四库图书系列书目(经典)
- 接口自动化-Cookie、Session、Token鉴定解决方案
- 江苏大学计算机学院换届,关于计算机学院各支部选举结果的批复
- u盘服务器安装win7系统,服务器u盘安装win7系统
- MarkdownPad2 插入数学公式Mathjax
- 无法连接虚拟设备 ide1:0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
- 2019联想创新科技大会:“端边云网智”一切就绪
热门文章
- 【SGU 448】Controlled Tournament(状态压缩动态规划)
- 已知坐标用matlab画图,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,每......
- TP-wr703N TTL刷机以及刷u-boot/breed教程记录
- 警告毕业生 面试让交培训费的都是骗子 千万别上当
- python画圣诞树【方块圣诞树、线条圣诞树、豪华圣诞树】
- 解决Win10系统由于INF文件失效导致安卓MTP驱动安装失败的问题
- pdfminer __init__() got an unexpected keyword argument ‘codec‘解决方案
- lamp mysql什么意思_什么是lampapache+mysql+php
- 域服务器 文件服务器,域服务器文件服务器
- 每天5分钟玩转Kubernetes | Cluster IP底层实现