从Android摄像头图像过滤红外源

时间:2022-05-07 21:21:57

I'm trying to find out if there is any infrared source in view of the camera on an android device. (Namely a infrared LED) Since the camera captures infrared light (I can see the LEDs light up in the preview/pictures) I thought it should be somehow possible to find out if the camera is currently capturing infrared signals, but as the IR 'color' is somehow translated to visible colors (purple like), it's apparently not as easy as just finding out if there is any purple in the picture as it might be real purple not infrared.
The Android reference tells me I can get the picture in different image formats (YCbCr, YUV ,...) but none of these formats seem to be of much help. Now my idea is, to somehow get the "original" data from the camera, that still includes the information on what is infrared and what not or to basicaly revert the infrared to visible light conversion that apparently happens automatically in the background. Any idea on how I might achive that?

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

2 个解决方案

#1


1  

Good question, If I take the remote control for HI-FI or TV and I press the Volume up / down, than I can get the IR light source for the Nexus One camera: it is visible a light purple color flashing. So the Nexus One has IR camera :)

好问题,如果我使用遥控器进行HI-FI或电视,我按下音量调高/调低,我可以获得Nexus One摄像机的红外光源:可见浅紫色闪烁。所以Nexus One有红外摄像头:)

Digital cameras use CCD and other similar sensors to capture infrared images. Although all digital cameras available on the market are sensitive to infrared light, they are equipped with infrared-blocking filters. The main reason for this is that consumer cameras are designed to capture visible light. But sometimes these filters are used together, giving very interesting in-camera effects like false color, wood effects etc. To start with infrared photography, all you need to have is A digital camera that is sensitive to infrared light. A visible-light blocking filter (e.g. a Wratten 89B filter) Image-editing software, such as Photoshop. http://www.smashingmagazine.com/2009/01/11/40-incredible-near-infrared-photos/

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

I wrote a very-very simple online radio player. Has an asynchronous call with Media Player. Some devices are playing some not, and different mode. From my sad experience with the simple Madia Player you will have to write like 5 versions to get working in a few devices. Audio-Video has added, removed features from each manufacturer: Samsung, Sony Ericsson, Motorola and you just wonder why doesn't work your code on THAT device if is platform independent Java...

我写了一个非常简单的在线广播播放器。与Media Player进行异步调用。有些设备正在播放一些不同的模式。根据我对简单的Madia Player的悲惨经历,您必须编写5个版本才能在一些设备上工作。音频视频添加,删除了每个制造商的功能:三星,索尼爱立信,摩托罗拉,你只是想知道为什么不能在你的设备上使用你的代码,如果是平*立的Java ...

I think to get the original data from camera it would be possible via NDK, but didn't tested.

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

It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++

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

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

If somebody found a solution using SDK and working with 2 different phone manufacturers please let me know!

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

#2


0  

My friend only way to find out infrared source in android not relying on color codes

我的朋友只能在android中找出红外光源而不依赖于颜色代码

because color spaces are only created for visible lights so no use for invisible light registered inside the sensor as a rgb value even though it happened

因为颜色空间仅为可见光创建,所以即使发生了rgb值,也不能将传感器内部注册的不可见光用作rgb值

logically color space values are only meaningful for visible light. and color space values are not really created to represent the wavelengths out of our visible range.

逻辑上,颜色空间值仅对可见光有意义。并未真正创建颜色空间值来表示超出可见范围的波长。

there is no correct way to interpret visible color space values such as rgb yuv as infrared unless you know the exact camera sensor detail white papers and tested the sensor with multiple highly accurate filters for each specific wavelengths this is so over kill for and app.

没有正确的方法来解释可见的颜色空间值,例如rgb yuv作为红外线,除非你知道确切的相机传感器细节白皮书并且测试了传感器,每个特定波长都有多个高度精确的滤波器。

to keep things simple use external external infrared filter for specific wavelengths and remove the filter inside the phone or tablet camera if you can physically modify other way around use known model of web cam and remove the filter on top of the sensor and use external filters to protect the sensor from UV light and so on.

保持简单使用外部红外滤光片用于特定波长并移除手机或平板电脑相机内部的滤光片如果您可以使用已知型号的网络摄像头进行物理修改,并移除传感器顶部的滤光片并使用外部滤光片保护传感器免受紫外线等的伤害。

#1


1  

Good question, If I take the remote control for HI-FI or TV and I press the Volume up / down, than I can get the IR light source for the Nexus One camera: it is visible a light purple color flashing. So the Nexus One has IR camera :)

好问题,如果我使用遥控器进行HI-FI或电视,我按下音量调高/调低,我可以获得Nexus One摄像机的红外光源:可见浅紫色闪烁。所以Nexus One有红外摄像头:)

Digital cameras use CCD and other similar sensors to capture infrared images. Although all digital cameras available on the market are sensitive to infrared light, they are equipped with infrared-blocking filters. The main reason for this is that consumer cameras are designed to capture visible light. But sometimes these filters are used together, giving very interesting in-camera effects like false color, wood effects etc. To start with infrared photography, all you need to have is A digital camera that is sensitive to infrared light. A visible-light blocking filter (e.g. a Wratten 89B filter) Image-editing software, such as Photoshop. http://www.smashingmagazine.com/2009/01/11/40-incredible-near-infrared-photos/

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

I wrote a very-very simple online radio player. Has an asynchronous call with Media Player. Some devices are playing some not, and different mode. From my sad experience with the simple Madia Player you will have to write like 5 versions to get working in a few devices. Audio-Video has added, removed features from each manufacturer: Samsung, Sony Ericsson, Motorola and you just wonder why doesn't work your code on THAT device if is platform independent Java...

我写了一个非常简单的在线广播播放器。与Media Player进行异步调用。有些设备正在播放一些不同的模式。根据我对简单的Madia Player的悲惨经历,您必须编写5个版本才能在一些设备上工作。音频视频添加,删除了每个制造商的功能:三星,索尼爱立信,摩托罗拉,你只是想知道为什么不能在你的设备上使用你的代码,如果是平*立的Java ...

I think to get the original data from camera it would be possible via NDK, but didn't tested.

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

It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++

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

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

If somebody found a solution using SDK and working with 2 different phone manufacturers please let me know!

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

#2


0  

My friend only way to find out infrared source in android not relying on color codes

我的朋友只能在android中找出红外光源而不依赖于颜色代码

because color spaces are only created for visible lights so no use for invisible light registered inside the sensor as a rgb value even though it happened

因为颜色空间仅为可见光创建,所以即使发生了rgb值,也不能将传感器内部注册的不可见光用作rgb值

logically color space values are only meaningful for visible light. and color space values are not really created to represent the wavelengths out of our visible range.

逻辑上,颜色空间值仅对可见光有意义。并未真正创建颜色空间值来表示超出可见范围的波长。

there is no correct way to interpret visible color space values such as rgb yuv as infrared unless you know the exact camera sensor detail white papers and tested the sensor with multiple highly accurate filters for each specific wavelengths this is so over kill for and app.

没有正确的方法来解释可见的颜色空间值,例如rgb yuv作为红外线,除非你知道确切的相机传感器细节白皮书并且测试了传感器,每个特定波长都有多个高度精确的滤波器。

to keep things simple use external external infrared filter for specific wavelengths and remove the filter inside the phone or tablet camera if you can physically modify other way around use known model of web cam and remove the filter on top of the sensor and use external filters to protect the sensor from UV light and so on.

保持简单使用外部红外滤光片用于特定波长并移除手机或平板电脑相机内部的滤光片如果您可以使用已知型号的网络摄像头进行物理修改,并移除传感器顶部的滤光片并使用外部滤光片保护传感器免受紫外线等的伤害。