Camera Systems - ISET/isetcam GitHub Wiki
The combined camera object
Every Core Pipeline example so far builds the optical
image, sensor, and image processor as three separate structures. ISETCam
also provides a camera object that bundles all three so a complete
system can be created, computed, and queried with one set of calls —
useful when you want to sweep a lens or sensor parameter and see the
effect on the final rendered image without managing each stage by hand.
scene = sceneCreate;
camera = cameraCreate; % Default oi + sensor + ip
camera = cameraCompute(camera,scene); % Runs oi -> sensor -> ip
cameraWindow(camera,'ip'); % View any stage: 'oi'|'sensor'|'ip'
sRGB = cameraGet(camera,'ip data srgb'); % Pull out the rendered image
% Change a parameter and recompute
camera = cameraSet(camera,'optics fnumber',16);
camera = cameraCompute(camera,scene);
cameraCreate also accepts 'current' (use the currently selected oi,
sensor, and ip), 'ideal' (a diffraction-limited, noise-free sensor with
XYZ filters, useful as a reference), and 'monochrome'. cameraCompute
can restart the calculation partway through — cameraCompute(camera,'oi')
or cameraCompute(camera,'sensor') — so you can, for example, hold the
optical image fixed while sweeping sensor or image-processing parameters
without recomputing the optics each time.
Recommended tutorials and examples
- First camera simulation —
t_cameraIntroductionwalks through the camera object directly, including the parameter-sweep pattern above;t_SystemSimulateandt_introduction2ISETbuild the same pipeline from the individual objects for comparison. - Sensors and camera systems —
t_cameraNoise,t_cameraAntiAliasing, andt_cameraComputeuse the camera object to study specific system-level effects.
Related FISE concepts
The online Foundations of Image Systems Engineering (FISE) develops full-system camera design trade-offs as conceptual background.
Experimental and historical camera-system tools
A few other camera-system surfaces exist in the repository but are not part of the current recommended workflow:
- cp-toolbox — a computational-photography class
hierarchy (
cpCamera,cpBurstCamera,cpIP, ...) for burst and bracketed capture. Its own page has said since at least 2024 that it would move to a separate repository "this summer"; thecp/directory is still part of ISETCam with no commits since August 2024, so treat it as experimental and unmaintained rather than a supported starting point. - Camera Design Window — describes an
experimental
ieCameraDesigner.mlappGUI. That file could not be found in the current source tree; verify it still exists before relying on this page.
Both are left in place as historical reference rather than removed,
per this wiki's convention of preserving context instead of silently
deleting pages — but neither should be presented to a new user as a
current recommended path. If you want full-pipeline simulation today, use
the camera object above.