F2::Sensor manages the Aptina MT9P031 image sensor on the F2 Frankencamera. More...
#include <Sensor.h>
Public Member Functions | |
void | capture (const FCam::Shot &) |
Queue up the next shot. | |
void | capture (const Shot &) |
Overloaded capture for a F2::Shot. | |
void | capture (const std::vector< FCam::Shot > &) |
Queue up a burst of shots. | |
void | capture (const std::vector< Shot > &) |
Overloaded capture for a burst of F2::Shot. | |
void | stream (const FCam::Shot &) |
Set a shot to be captured when the sensor isn't busy capturing anything else. | |
void | stream (const Shot &) |
Overloaded stream for a F2::Shot. | |
void | stream (const std::vector< FCam::Shot > &) |
Set a burst to be captured whenever the sensor isn't busy capturing anything else. | |
void | stream (const std::vector< Shot > &) |
Overloaded stream for a burst of F2::Shot. | |
bool | streaming () |
Is there a shot or burst currently streaming? | |
void | stopStreaming () |
Stop the sensor from streaming a shot or burst set with stream. | |
void | start () |
Power up the sensor, image processor, and the FCam daemon This is done automatically when you call capture for the first time. | |
void | stop () |
Shut down the sensor, image processor, and the FCam daemon. | |
virtual int | maxExposure () const |
The maximum exposure time on the N900 is 1080842 us (just over a second) for small resolutions (height <= 960), and 2489140 us for larger resolutions (about 2.5 seconds). | |
virtual int | minExposure () const |
The minimum exposure time on the N900 is 38 us for small resolutions (height <= 960) and 66 us for larger resolutions. | |
virtual int | maxFrameTime () const |
The maximum frame time on the N900 is 1081250 us for small resolutions (just over a second), and 2490072 us for larger resolutions (about 2.5 seconds). | |
virtual int | minFrameTime () const |
The minimum frame time on the N900 is the 33414 us for smaller resolutions (height <= 960), and 77412 us for larger resolutions. | |
virtual float | maxGain () const |
The maximum gain on the N900 is 32, which can be considered ISO 3200. | |
virtual float | minGain () const |
The minimum supported gain is 1, which can be considered ISO 100. | |
Size | minImageSize () const |
minimum image 640x480 | |
Size | maxImageSize () const |
maximum image without black calibration areas is 2592x1944 | |
int | rollingShutterTime (const Shot &) const |
Overloaded version for F2::Shot. | |
int | rollingShutterTime (const FCam::Shot &) const |
The time difference between the first line exposing and the last line in microseconds, for given shot parameters. | |
int | framesPending () const |
How many frames are in the frame queue (i.e., how many times can you call getFrame before it blocks? | |
int | shotsPending () const |
How many shots are pending. | |
unsigned short | minRawValue () const |
The smallest value to expect when in raw mode. | |
unsigned short | maxRawValue () const |
The largest value to expect when in raw mode. | |
BayerPattern | bayerPattern () const |
Get the bayer pattern of this sensor when in raw mode. | |
const std::string & | manufacturer () const |
The camera's manufacturer. | |
const std::string & | model () const |
The camera's model. | |
void | rawToRGBColorMatrix (int kelvin, float *matrix) const |
Produce a 3x4 affine matrix that maps from sensor RGB to linear-luminance sRGB at the given white balance. | |
FCam::F2::Frame | getFrame () |
Get the next frame. | |
Static Public Member Functions | |
static Size | pixelArraySize () |
all pixels on the array, including black pixels: 2752x2004 | |
static Rect | activeArrayRect () |
The rect describing the active (imaging) pixel array, in the coordinate system used by F2::Shot::roiStartX/Y. | |
static Rect | pixelArrayRect () |
The rect describing the entire pixel array, including black pixels, in the coordinate system used by F2::Shot::roiStartX/Y. |
F2::Sensor manages the Aptina MT9P031 image sensor on the F2 Frankencamera.
Using F2-specific F2::Shot and F2::Frame classes with F2::Sensor exposes the additional functionality of the Aptina sensor relative to the FCam base requirements. This includes the ability to control the sensor region-of-interest on a per-frame basis.
Definition at line 24 of file Sensor.h.
void FCam::F2::Sensor::capture | ( | const FCam::Shot & | ) | [virtual] |
Queue up the next shot.
Makes a deep copy of the argument.
Implements FCam::Sensor.
Definition at line 37 of file Sensor.cpp.
void FCam::F2::Sensor::capture | ( | const std::vector< FCam::Shot > & | ) | [virtual] |
Queue up a burst of shots.
Makes a deep copy of the argument.
Implements FCam::Sensor.
Definition at line 58 of file Sensor.cpp.
void FCam::F2::Sensor::stream | ( | const FCam::Shot & | s | ) | [virtual] |
Set a shot to be captured when the sensor isn't busy capturing anything else.
Makes a deep copy of the argument.
Implements FCam::Sensor.
Definition at line 91 of file Sensor.cpp.
void FCam::F2::Sensor::stream | ( | const std::vector< FCam::Shot > & | ) | [virtual] |
Set a burst to be captured whenever the sensor isn't busy capturing anything else.
Makes a deep copy of the argument.
Implements FCam::Sensor.
Definition at line 111 of file Sensor.cpp.
void FCam::F2::Sensor::stopStreaming | ( | ) | [virtual] |
Stop the sensor from streaming a shot or burst set with stream.
The sensor will continue to run. To turn off the sensor completely see Sensor::stop
Implements FCam::Sensor.
Definition at line 140 of file Sensor.cpp.
void FCam::F2::Sensor::start | ( | ) | [virtual] |
Power up the sensor, image processor, and the FCam daemon This is done automatically when you call capture for the first time.
Implements FCam::Sensor.
Definition at line 25 of file Sensor.cpp.
void FCam::F2::Sensor::stop | ( | ) | [virtual] |
Shut down the sensor, image processor, and the FCam daemon.
Call this to save power and/or processing cycles while your program is doing something unrelated to taking pictures.
Implements FCam::Sensor.
Definition at line 31 of file Sensor.cpp.
virtual int FCam::F2::Sensor::maxExposure | ( | ) | const [inline, virtual] |
The maximum exposure time on the N900 is 1080842 us (just over a second) for small resolutions (height <= 960), and 2489140 us for larger resolutions (about 2.5 seconds).
Implements FCam::Sensor.
virtual int FCam::F2::Sensor::minExposure | ( | ) | const [inline, virtual] |
The minimum exposure time on the N900 is 38 us for small resolutions (height <= 960) and 66 us for larger resolutions.
Implements FCam::Sensor.
virtual int FCam::F2::Sensor::maxFrameTime | ( | ) | const [inline, virtual] |
The maximum frame time on the N900 is 1081250 us for small resolutions (just over a second), and 2490072 us for larger resolutions (about 2.5 seconds).
Implements FCam::Sensor.
virtual int FCam::F2::Sensor::minFrameTime | ( | ) | const [inline, virtual] |
The minimum frame time on the N900 is the 33414 us for smaller resolutions (height <= 960), and 77412 us for larger resolutions.
Implements FCam::Sensor.
virtual float FCam::F2::Sensor::maxGain | ( | ) | const [inline, virtual] |
The maximum gain on the N900 is 32, which can be considered ISO 3200.
Implements FCam::Sensor.
virtual float FCam::F2::Sensor::minGain | ( | ) | const [inline, virtual] |
The minimum supported gain is 1, which can be considered ISO 100.
Reimplemented from FCam::Sensor.
int FCam::F2::Sensor::rollingShutterTime | ( | const Shot & | s | ) | const |
Overloaded version for F2::Shot.
Definition at line 184 of file Sensor.cpp.
int FCam::F2::Sensor::rollingShutterTime | ( | const FCam::Shot & | ) | const [virtual] |
The time difference between the first line exposing and the last line in microseconds, for given shot parameters.
Implements FCam::Sensor.
Definition at line 190 of file Sensor.cpp.
int FCam::F2::Sensor::shotsPending | ( | ) | const [virtual] |
How many shots are pending.
This includes frames in the frame queue, shots currently in the pipeline, and shots in the capture queue. Stop streaming (stopStreaming) and get frames (getFrame) until this hits zero to completely drain the system.
Implements FCam::Sensor.
Definition at line 230 of file Sensor.cpp.
unsigned short FCam::F2::Sensor::minRawValue | ( | ) | const [virtual] |
The smallest value to expect when in raw mode.
Implements FCam::Sensor.
Definition at line 240 of file Sensor.cpp.
unsigned short FCam::F2::Sensor::maxRawValue | ( | ) | const [virtual] |
The largest value to expect when in raw mode.
Implements FCam::Sensor.
Definition at line 241 of file Sensor.cpp.
BayerPattern FCam::F2::Sensor::bayerPattern | ( | ) | const [virtual] |
Get the bayer pattern of this sensor when in raw mode.
Implements FCam::Sensor.
Definition at line 243 of file Sensor.cpp.
const std::string & FCam::F2::Sensor::manufacturer | ( | ) | const [virtual] |
The camera's manufacturer.
(e.g. Canon).
Implements FCam::Sensor.
Definition at line 245 of file Sensor.cpp.
const std::string & FCam::F2::Sensor::model | ( | ) | const [virtual] |
The camera's model.
Should also include manufacturer (e.g. Canon 400D).
Implements FCam::Sensor.
Definition at line 247 of file Sensor.cpp.
void FCam::F2::Sensor::rawToRGBColorMatrix | ( | int | kelvin, | |
float * | matrix | |||
) | const [virtual] |
Produce a 3x4 affine matrix that maps from sensor RGB to linear-luminance sRGB at the given white balance.
Given in row-major order.
Implements FCam::Sensor.
Definition at line 249 of file Sensor.cpp.
FCam::F2::Frame FCam::F2::Sensor::getFrame | ( | ) |
Get the next frame.
We promise that precisely one frame will come back per time capture is called. A reference-counted shared pointer object is returned, so you don't need to worry about deleting it.
Reimplemented from FCam::Sensor.
Definition at line 146 of file Sensor.cpp.