Contenido principal

OpticalThroughput

R2026b

Optical throughput data for rendered chart

Since R2026b

Description

Add-On Required: This feature requires the Optical Design and Simulation Library for Image Processing Toolbox add-on.

An OpticalThroughput object stores the optical throughput efficiency data of an optical system for a rendered test chart scene.

Creation

You cannot create an OpticalThroughput object directly. Access the object by extracting the OpticalThroughput property of a SimulatedESFRChart or SimulatedColorCheckerChart object.

Properties

expand all

This property is read-only.

Optical throughput efficiency data, represented as an H-by-W-by-numWavelengths numeric array. Each element of the array contains the dimensionless optical throughput efficiency of the system in the range [0,1] for a scene under uniform E illuminant irradiance. Typical values range from 0.1 to 0.0001, and 1 represents the theoretical lossless limit.

The array stores values starting from the (+x, −y) sensor corner. For optical systems that invert the image, displaying the array as an image produces an upright representation of the scene.

Tip

Throughput values exclude the sensor pixel area. To compute the effective collection area, in units of m2, multiply the throughput values by the sensor area specified by the PixelArea property of the ImageSensor object. To compute the per‑pixel spectral radiant power, in units of W/nm, multiply the throughput values by the scene irradiance, in units of W/m2/nm, and the pixel area.

Data Types: double

This property is read-only.

Spectral wavelength bins, represented as a 1-by-numWavelengths numeric vector. Each element corresponds to the center wavelength, in nanometers, of a spectral bin in the third dimension of the Throughput array.

Data Types: double

This property is read-only.

Image sensor used for rendering, represented as an ImageSensor object. This object stores the geometrical layout of the physical pixels, such as sensor size and pixel size.

Examples

collapse all

Create an optical system that contains a double Gauss lens using the createDoubleGauss helper function. The function is attached to this example as a supporting file.

opsys = createDoubleGauss;

Add an image sensor to the optical system, and focus the optical system.

addImageSensor(opsys)
focus(opsys)

Render a ColorChecker test chart through the focused optical system.

chart = renderChart(opsys);

Display the simulated ColorChecker test chart with ROI annotations overlaid on the chart.

displayChart(chart)

To assess the light‑collection efficiency across the field for this optical system, display the optical throughput data.

chart.OpticalThroughput
ans = 
  OpticalThroughput with properties:

     Throughput: [720×1280×36 double]
    Wavelengths: [380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 610 620 630 640 650 660 670 680 690 700 710 720 730]
       Detector: [1×1 optics.detector.ImageSensor]

Algorithms

The function computes the optical throughput as:

Throughput = (1π)RTΩexitcos(θ)

where:

  • R — Scene spectral reflectance at ray intersection, in the range of (0, 1).

  • 1π — Lambertian normalization constant (projected solid angle of hemisphere).

  • T — System spectral transmittance, accounting for Fresnel losses, absorption, and other transmission losses.

  • cos(θ) — Tilt factor originating from the ray angle of incidence at the sensor.

  • Ωexit — Exit pupil solid angle as seen from the pixel location.

Version History

Introduced in R2026b