首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android相机图像上运行原型算法?

问如何在android相机图像上运行原型算法?
EN

Stack Overflow用户
提问于 2012-07-21 23:01:57
回答 1查看 511关注 0票数 1

我想到了一个安卓应用程序,它依赖于我实时处理来自手机摄像头的图像(想想字透镜必须做的事情)。我想用Python在静态图像上运行我的算法原型,但我希望静态图像与通常从Android手机摄像头接收的格式相匹配(我不想为RGB制定一个可行的算法,然后找到Android的相机API给你HSV字节数组)。两个问题:

  1. 格式是什么?(或者至少是最常见的,因为Android的硬件是不同的)
  2. 如何在Linux上将jpg测试映像转换成这种格式?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-22 00:16:18

所有安卓摄像头都需要支持两种YUV格式,即NV21和YV12 (参见setPreviewFormat文档),用于setPreviewCallback支持的应用程序绑定回调。

有些设备可能支持其他格式(RGB、YUYV2等),但这两种格式是强制性的,所以最好选择其中一种。YV12有更高的效率机会,尽管这取决于所讨论的硬件。

至于第二种,您可能可以使用一些实用程序(如ImageMagick )进行颜色转换,但关于这些格式的另一点是,它们是针对色度(颜色)平面进行次采样的;NV21和YV12在两个维度中都将颜色格式降低了2倍。例如,如果图像大小为640x480,则Y(亮度)通道将为640x480,但U和V通道都只有320x240。您可能需要自己进行次采样,因为大多数映像库不公开这种格式(JPEG图像通常以类似的亚采样YUV格式存储,但大多数库在提供数据之前转换回完整的RGB格式)。

编辑:附加说明

或者,如果您的算法在GPU上运行良好,您可以使用setPreviewTexture路径出相机,这使您可以在GPU着色器中处理图像数据。在这种情况下,数据将始终是RGB,访问作为一个纹理在GLSL着色器与OpenGL 2.0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11596501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档