Skip to content

Color uncertainty processing and visualization #161

@Askaniy

Description

@Askaniy

The resulting vector after convolution with color matching functions is highly correlated, particularly for red and green components. This means you can't work with the error propagation formula as before, you need a covariance matrix. Steps for replacing the standard deviation with the covariance matrix are taken in the separate branch.

Covariance matrices are rotated "uncertainty ellipsoids" in a color space (RGB space after all the transformations), and a triaxial ellipsoid is difficult to render in a traditional GUI application such as TCT. Especially if we need 1σ surface and the main color of the center at the same time.
The original Thomas Tarrants' suggestion was to show uncertainty on the chromaticity diagram. It could be done, but it has some problems. The most obvious one is the loss of brightness information.
My idea is to get eigenvectors of the color covariance matrix, then get 6 colors (2 opposing colors per a main axis of ellipsoid) that lie on the 1σ ellipsoid and render them like on the concept picture I drew in Krita:

Image

Colors are random and contrasting for clarity. The color preview is supposed to be generated with numpy. It's easier to arrange the arrays in the correct order for the first option than it is to develop the rendering formulas for the second option. However, the last option could be implemented later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    week-scaleIt will take days to resolve the issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions