前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ToF相机从Camera2 API中获取DEPTH16格式深度图[通俗易懂]

ToF相机从Camera2 API中获取DEPTH16格式深度图[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-25 14:51:04
1.1K0
发布2022-08-25 14:51:04
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

ToF相机工作原理:

ToF相机给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲往回的飞行时间来得到目标距离。ToF相机可以同时得到整幅图像的深度(距离)信息。   深度图通常是灰度图,其中的每个值代表光反射表面和相机的距离。灰度图水平垂直坐标对应像素点位置,该位置的灰度值对应的是该像素距离摄像头的距离。所以深度图中的每个像素可以表示空间中一个点的三维坐标。如果光源被吸收或者未收到反射信号则呈现黑色。

从Camera2API中获取DEPTH16格式的深度信息

ImageFormat.DEPTH16: Android密集深度图像格式。每个深度值是16位。16位由置信度值和实际测距测量组成。置信度是该样本正确性的估计值。它被编码在样本的3个最高效有效位中,其值0表示100%置信度,值1表示0%置信度,值2表示1/7,值3表示2/7. 剩下的13位就是表示每个像素的深度值。 获取深度信息流程:打开深度ToF相机—->给ImageReader设置长宽和格式ImageFormat.DEPTH16。在回调接口onImageAvailabe中拿到image数据。

代码语言:javascript
复制
  private int[] getDepth(Image image){
          ShortBuffer shortDepthBuffer=image.gePlanes()[0].getBuffer().asShortBuffer();
          int[] arr=new int[WIDTH*HEIGHT];
          for(int y=0;y<HEIGHT;y++){
               for(int x=0;x<WIDTH;x++){
                  int index=y*WIDTH+x;
                  short depth=shortDepthBuffer.get(indxe);
                  int newValue=extractRange(depthSample,0.1);
                  arr[index]=newVaule;
                  }
                }
           }

private int extractRange(short sample,float confidenceFilter){
     //2字节后13位保存深度信息
      int depthRange=(short)(sample&0x1FFF);
      //2字节的前3位保存置信度值
      int depthConfidence=(short)((sample>>13) & 0x7);
      //其值0表示100%置信度,值1表示0%置信度,值2表示1/7,值3表示2/7.
      //转换成我们熟悉点的表示方式 0~~1
      float depthPercentage=depthConfidence==0?1.f:(depthConfidence-1)/7.f;
      return depthPercentage>confidenceFilter?depthRange:0;
      }

获取到的距离信息归一化位0~255的像素值,最后转为RGB Bitmap,然后显示出来,基本可以看到物体的轮廓。

写在最后的话

代码语言:javascript
复制
今天是五一,放假,有时间可以写写博客,刚好可以对自己学习的东西有个整理~~~

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142697.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ToF相机工作原理:
  • 从Camera2API中获取DEPTH16格式的深度信息
  • 写在最后的话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档