13#include <libcamera/base/span.h>
30 Polynomial(
double cx = 0.0,
double cy = 0.0,
double k0 = 0.0,
31 double k1 = 0.0,
double k2 = 0.0,
double k3 = 0.0,
33 : cx_(cx), cy_(cy), cnx_(0), cny_(0),
34 coefficients_({ k0, k1, k2, k3, k4 })
47 std::array<double, 5> coefficients_;
56 using PolynomialComponents = std::map<std::string, lsc::Polynomial, std::less<>>;
57 using PolynomialComponentsMap = std::map<unsigned int, PolynomialComponents>;
65 std::vector<double> xPos, std::vector<double> yPos)
override;
69 Span<const double> xPositions,
70 Span<const double> yPositions,
72 PolynomialComponentsMap lscData_;
Describe a rectangle's position and dimensions.
Definition geometry.h:247
Describe a two-dimensional size.
Definition geometry.h:51
A class representing a tree structure of values.
Definition value_node.h:27
Pure virtual base class for LSC algorithm implementations.
Definition lsc_base.h:35
std::map< unsigned int, Components > ComponentsMap
Associate a colour temperature to a LSC table.
Definition lsc_base.h:38
Radial Polynomial LSC algorithm implementation.
Definition lsc_polynomial.h:54
LscImplementation::ComponentsMap sampleForCrop(const Rectangle &cropRectangle, std::vector< double > xPos, std::vector< double > yPos) override
Re-sample the LSC components for cropRectangle.
Definition lsc_polynomial.cpp:198
int parseLscData(const ValueNode &sets, const LscDescriptor &descriptor) override
Parse polynomial LSC data.
Definition lsc_polynomial.cpp:135
Class for handling even polynomials used in lens shading correction.
Definition lsc_polynomial.h:28
Polynomial(double cx=0.0, double cy=0.0, double k0=0.0, double k1=0.0, double k2=0.0, double k3=0.0, double k4=0.0)
Construct a polynomial using the given coefficients.
Definition lsc_polynomial.h:30
double getM() const
Get the value m as described in the dng specification.
Definition lsc_polynomial.cpp:84
double sampleAtNormalizedPixelPos(double x, double y) const
Sample the polynomial at the given normalized pixel position.
Definition lsc_polynomial.cpp:62
void setReferenceImageSize(const Size &size)
Set the reference image size.
Definition lsc_polynomial.cpp:102
Data structures related to geometric objects.
Base types and definitions for LscImplementation class hierarchy.
Top-level libcamera namespace.
Definition backtrace.h:17
Describe the ISP LSC engine.
Definition lsc_base.h:27
Data structure to manage tree of values.