6

我试图找出在安卓设备上的摄像头中是否有任何红外源。(即红外 LED)由于相机捕获红外光(我可以在预览/图片中看到 LED 亮起),我认为应该以某种方式找出相机当前是否正在捕获红外信号,但是作为 IR ' color' 以某种方式转换为可见颜色(紫色),这显然不像找出图片中是否有紫色那么容易,因为它可能是真正的紫色而不是红外线。
Android 参考资料告诉我,我可以获得不同图像格式(YCbCr、YUV 等)的图片,但这些格式似乎都没有多大帮助。现在我的想法是,以某种方式从相机中获取“原始”数据,其中仍然包括关于什么是红外线和什么不是红外线的信息,或者基本上将红外线转换为显然在后台自动发生的可见光转换。关于我如何实现这一目标的任何想法?

4

2 回答 2

1

好问题,如果我拿起 HI-FI 或电视的遥控器并按下音量上/下键,就可以获得 Nexus One 摄像头的红外光源:可见浅紫色闪烁。所以 Nexus One 有红外摄像头 :)

数码相机使用 CCD 和其他类似传感器来捕捉红外图像。尽管市场上所有的数码相机都对红外光敏感,但它们都配备了红外阻挡滤光片。主要原因是消费类相机设计用于捕捉可见光。但有时这些滤镜一起使用,会产生非常有趣的相机内效果,如假色、木纹效果等。要开始红外摄影,您只需要一台对红外光敏感的数码相机。可见光阻挡滤镜(例如 Wratten 89B 滤镜) 图像编辑软件,例如 Photoshop。 http://www.smashingmagazine.com/2009/01/11/40-incredible-near-infrared-photos/

我写了一个非常简单的在线广播播放器。与媒体播放器进行异步调用。一些设备正在播放一些没有,并且不同的模式。根据我对简单 Madia Player 的悲惨经历,您将不得不编写 5 个版本才能在一些设备上工作。Audio-Video 已添加、删除每个制造商的功能:三星、索尼爱立信、摩托罗拉,您只是想知道如果 Java 平台独立,为什么您的代码不能在该设备上运行...

我认为可以通过 NDK 从相机获取原始数据,但没有经过测试。

它提供了头文件和库,允许您在使用 C 或 C++ 编程时构建活动、处理用户输入、使用硬件传感器、访问应用程序资源等

http://developer.android.com/sdk/ndk/index.html

如果有人使用 SDK 找到解决方案并与 2 家不同的手机制造商合作,请告诉我!

于 2012-03-03T13:16:23.953 回答
0

我的朋友不依赖颜色代码在 android 中找出红外源的唯一方法

因为颜色空间只为可见光创建,所以即使发生在传感器内部作为 rgb 值注册的不可见光也没有用处

从逻辑上讲,颜色空间值仅对可见光有意义。 和色彩空间值并没有真正创建来表示我们可见范围之外的波长。

没有正确的方法可以将可见色彩空间值(例如 rgb yuv)解释为红外线,除非您知道确切的相机传感器详细信息白皮书并使用针对每个特定波长的多个高精度滤光片测试传感器,这对于应用程序来说太过分了。

为简单起见,请使用针对特定波长的外部外部红外滤光片,并移除手机或平板电脑摄像头内的滤光片,如果您可以通过其他方式进行物理修改,则使用已知型号的网络摄像头并移除传感器顶部的滤光片并使用外部滤光片保护传感器免受紫外线照射等。

于 2014-05-09T08:01:36.160 回答