android - 有没有办法访问在 ARCore 中已知 3D 坐标的点的 RGB 值?
问题描述
一旦我知道点云的 3D 坐标,我就会尝试提取 RGB 颜色信息。
为了获得点云,我使用了以下功能:-
PointCloud pointCloud = frame.acquirePointCloud();
得到点云后,我遍历缓冲区
FloatBuffer points_buffer = pointCloud.getPoints();
while(points_buffer.hasRemaining())
{
float x = points_buffer.get();
float y = points_buffer.get();
float z = points_buffer.get();
float confidence = points_buffer.get();
}
我能够提取点的坐标,并且我需要将有关该点的颜色(RGB 值)的信息连同它一起存储。
我一直在尝试通过以下方法来做到这一点: -
1)使用以下方法保存每帧中的图像:-
Image m_img = frame.acquireCameraImage();
2)然后使用以下方法将 3D 坐标转换为屏幕坐标:-
将 3D 世界(arcore 锚点/姿势)转换为其对应的 2D 屏幕坐标
对于姿势,我使用 x,y,z 坐标进行平移,使用身份四元数进行旋转。
然后我打算查找位图中的值。
但是,我面临以下问题。
1 ) 捕获的图像是YUV_420_888 格式,我将其转换为ARGB_888 格式的位图失败。
2) 上述坐标转换链接有时会给出 x 坐标的负值。
给定 ARCore 中的 3D 坐标,有没有更好的方法来提取 RGB 值?
解决方案
推荐阅读
- c# - 如何在 Unity 中访问子对象中的车轮对撞机
- python - 筛算法的时间复杂度
- python - pygame中的文本框
- r - 为什么在控制台中成功运行的代码在 Rmarkdown 块中返回“错误:不完整的表达式”?
- python - Django Rest Framework + psycopg2:InterfaceError:游标已关闭
- python - 如何在 python 中 sha256 原始位?
- python - RuntimeError:字典在迭代期间使用 defaultdict() 改变了大小
- java - 如何根据按下的次数改变按钮的外观?
- python - 无法通过 nipype 进行 FLIRT 注册(google colab)
- node.js - 如何在 Next.js 的 API 路由中获取 URL 查询字符串?