Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development


Thank you for visiting the BlackBerry Support Community Forums.

BlackBerry will be closing the BlackBerry Support Community Forums Device Forums on April 1st (Developers, see below)

BlackBerry remains committed to providing excellent customer support to our customers. We are delighted to direct you to the CrackBerry Forums, a well-established and thorough support channel, for continued BlackBerry support. Please visit http://forums.crackberry.com or http://crackberry.com/ask. You can also continue to visit BlackBerry Support or the BlackBerry Knowledge Base for official support options available for your BlackBerry Smartphone.

"When we launched CrackBerry.com 10 years ago, we set out to make it a fun and useful destination where BlackBerry Smartphone owners could share their excitement and learn to unleash the full potential of their BlackBerry. A decade later, the CrackBerry community is as active and passionate as ever and I know our knowledgeable members and volunteers will be excited to welcome and assist more BlackBerry owners with their questions."

- Kevin Michaluk, Founder, CrackBerry.com

Developers, for more information about the BlackBerry Developer Community please review Join the Conversation on the BlackBerry Developer Community Forums found on Inside BlackBerry.


Reply
New Developer
Posts: 2
Registered: ‎10-20-2008
My Device: Not Specified

Low(er) level camera infromation

I am trying to use the phone camera to measure light levels.  To do this I need to get a reliable sense of the exposure time used to take a picture and I don't think the ambient light sensor is going to be reliable for our use.  

 

I don't see anything useful in the EXIF data from the saved jpegs.  Does anyone know of any way to access the CMOS charge time from the CCD or any analog that would help?

 

If not, does anyone have a pointer to accessing the ambient light sensor data? 

BlackBerry Development Advisor
Posts: 15,889
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: Low(er) level camera infromation

Neither of these settings are exposed in the BlackBerry API set.
Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.
Developer
Posts: 1,415
Registered: ‎07-30-2008
My Device: Not Specified

Re: Low(er) level camera infromation

[ Edited ]

If you just need some relative idea of exposure time, or amount of light relative to image needs, then you could probably

use dark current as a measure of exposure time.

 

If you have any reference pixels, those known to be "dark" such as may exist around periphery or other places,

you can measure the signal here but you need a few other things to figure out how much help this will be.

First, it would be important to check DC restoration and various auto-compensation things in signal chain, can you even get a scaled absolute charge count?( You may still be able to make noise measurements on many samples and get some idea but this gets

more and more tenuous as you have more things to kludge). If so, the next correction may be termperature. The signal charge would be proportional to time but also expoentially dependent on temperature, IIRC doubling every 5-10 degree change( this depends on the activation energy of the dominant process). RIM has a

battery temperature API which may give you some idea of the situation.

 

Essentially, you are looking for some contribution to the signal that is independent of light and depedent on time. Dark current fits the criteria but normally "they" try to remove this.

 

Message Edited by marchywka on 10-26-2008 10:49 AM
New Developer
Posts: 2
Registered: ‎10-20-2008
My Device: Not Specified

Re: Low(er) level camera infromation

As far as I can tell all the camera API gives you is access to a post-processed, color-balanced RGB image -- no access to raw voltages or sensor metadata.  I've been tinkering with histogram analysis to see if there are reliable variations in black level / white level, saturation, etc. but haven't found anything solid yet.  

 

One way you could get there is by rotating the phone at a known constant velocity while taking a picture of a high-contrast edge a known distance from the phone.  By calculating the width of the blur on that edge you could approximate the exposure time.  But that's not exactly user-friendly.

Developer
Posts: 1,415
Registered: ‎07-30-2008
My Device: Not Specified

Re: Low(er) level camera infromation

If they leave any known-black pixels in for reference that would help but, like most automated junk, they

probably throw out as much useful information as they can. LOL.If you are already playing with histograms, consider

the astronomy literature and this in particular.

Luckily, they can't change certain things like the photoelectric effect even if Einstein never understood billing plans

for MMS and picture email. So, if you can manage to get repetitive exposures of nominally the same image, you may be

able to plot a signal versus noise plot ( "photon transfer curve")

 

http://astro.union.rpi.edu/documents/CCD%20Image%20Sensor%20Noise%20Sources.pdf

 

That plateau in the "black" area should be at the integrated dark current which will very with exposure time and temperature.

Quite a kluge as you need at least two images at your reference exposure time ( lol) and your unknown time. The digital

junk can't "fix" things like dynamic range loss in the imager as dark current becomes appreciable at long times. For a cooled

imager, this could be negligible at exposure times of interest so it may not even matter much.

  

 

New Developer
Posts: 6
Registered: ‎11-01-2009
My Device: Not Specified

Re: Low(er) level camera infromation

Hi, is it possible to get images out of my 8320 before any noise-reduction is performed on them?

 

If not raw sensor data than at least a bitmap pre noise-reduction?

 

I'm considering developing my own app in netbeans/ubuntu to do this and I was just wondering if anyone has already done that here, or what's a good way to go about it.

 

thanks