如何将ARKit深度数据(CVPixelBuffer)转换为16位灰度PNG图像文件?

发布于 2025-01-11 06:38:58 字数 1270 浏览 4 评论 0原文

根据Apple官方示例,我做了一些尝试。这是我的代码:

CGImage 扩展

//ARSessionDelegate
func session(_ session: ARSession, didUpdate frame: ARFrame) {
    let depthMap = frame.sceneDepth.depthMap
    let ciImage = CIImage(cvPixelBuffer: depthMap)
    let cgImage = CIContext().createCGImage(ciImage, from: ciImage.extent)
    let grayscaleCGImage = cgImage.toGrayscale() //CGImage extension
    let image = UIImage(cgImage: grayscaleCGImage)
    let data = image.pngData()
    
    //Save data to iPhone as "example.png" PNG file...
    //Get "example.png" PNG file from iPhone, copy PNG file to MacOS...
}

然后在 MacOS 终端中,我运行此代码 sips -g all example.png,我从终端获得以下信息:

  pixelWidth: 256
  pixelHeight: 192
  typeIdentifier: public.png
  format: png
  formatOptions: default
  dpiWidth: 72.000
  dpiHeight: 72.000
  samplesPerPixel: 1
  bitsPerSample: 8
  hasAlpha: no
  space: Gray

The bitsPerSample is 8,但我想要它到为16。有人可以帮助我吗?多谢!

According to Apple's official example, I made some attempts. This is my codes:

CGImage extension

//ARSessionDelegate
func session(_ session: ARSession, didUpdate frame: ARFrame) {
    let depthMap = frame.sceneDepth.depthMap
    let ciImage = CIImage(cvPixelBuffer: depthMap)
    let cgImage = CIContext().createCGImage(ciImage, from: ciImage.extent)
    let grayscaleCGImage = cgImage.toGrayscale() //CGImage extension
    let image = UIImage(cgImage: grayscaleCGImage)
    let data = image.pngData()
    
    //Save data to iPhone as "example.png" PNG file...
    //Get "example.png" PNG file from iPhone, copy PNG file to MacOS...
}

Then in MacOS terminal, I run this codes sips -g all example.png, I get the following information from terminal:

  pixelWidth: 256
  pixelHeight: 192
  typeIdentifier: public.png
  format: png
  formatOptions: default
  dpiWidth: 72.000
  dpiHeight: 72.000
  samplesPerPixel: 1
  bitsPerSample: 8
  hasAlpha: no
  space: Gray

The bitsPerSample is 8, But I want it to be 16. Can someone help me? Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文