LSST Applications g04e9c324dd+8c5ae1fdc5,g134cb467dc+1b3060144d,g18429d2f64+f642bf4753,g199a45376c+0ba108daf9,g1fd858c14a+2dcf163641,g262e1987ae+7b8c96d2ca,g29ae962dfc+3bd6ecb08a,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+53e1a9e7c5,g4595892280+fef73a337f,g47891489e3+2efcf17695,g4d44eb3520+642b70b07e,g53246c7159+8c5ae1fdc5,g67b6fd64d1+2efcf17695,g67fd3c3899+b70e05ef52,g74acd417e5+317eb4c7d4,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g89139ef638+2efcf17695,g8d7436a09f+3be3c13596,g8ea07a8fe4+9f5ccc88ac,g90f42f885a+a4e7b16d9b,g97be763408+ad77d7208f,g9dd6db0277+b70e05ef52,ga681d05dcb+a3f46e7fff,gabf8522325+735880ea63,gac2eed3f23+2efcf17695,gb89ab40317+2efcf17695,gbf99507273+8c5ae1fdc5,gd8ff7fe66e+b70e05ef52,gdab6d2f7ff+317eb4c7d4,gdc713202bf+b70e05ef52,gdfd2d52018+b10e285e0f,ge365c994fd+310e8507c4,ge410e46f29+2efcf17695,geaed405ab2+562b3308c0,gffca2db377+8c5ae1fdc5,w.2025.35
LSST Data Management Base Package
Loading...
Searching...
No Matches
lsst::afw::image::pixel Namespace Reference

Classes

class  BinaryExpr
 Class for representing binary operations. More...
 
class  BinaryExpr< ExprT1, double, ImageBinOp, MaskBinOp, VarianceBinOp >
 Partial specialization of BinaryExpr when ExprT2 is a double (i.e no mask/variance part) More...
 
struct  bitwise_or
 bitwise_or doesn't seem to be in std:: More...
 
struct  exprTraits
 A traits class to return the types of the image/mask/variance. More...
 
struct  exprTraits< double >
 A specialisation of exprTraits for double More...
 
struct  exprTraits< float >
 A specialisation of exprTraits for float More...
 
struct  exprTraits< int >
 A specialisation of exprTraits for int More...
 
struct  exprTraits< unsigned short >
 A specialisation of exprTraits for unsigned short More...
 
struct  is_specialization
 Template for (e1 + e2) More...
 
struct  is_specialization< Template< Args... >, Template >
 
struct  noop
 A noop functor (useful for e.g. masks and variances when changing the sign of the image) More...
 
class  Pixel
 A pixel of a MaskedImage. More...
 
struct  PixelTypeTraits
 Pixel type traits. More...
 
class  SinglePixel
 A single pixel of the same type as a MaskedImage. More...
 
class  UnaryExpr
 Class for representing Unary operations. More...
 
struct  variance_divides
 Calculate the variance when we divide two Pixels. More...
 
struct  variance_multiplies
 Calculate the variance when we multiply two Pixels. More...
 
struct  variance_plus
 Calculate the variance when we add (or subtract) two Pixels. More...
 

Typedefs

template<typename T1, typename T2>
using valid_operands = std::enable_if_t<valid_binary_operands<T1, T2>>
 

Functions

template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
SinglePixel< ImagePixelT, MaskPixelT, VariancePixelTmakeSinglePixel (ImagePixelT x, MaskPixelT m, VariancePixelT v)
 Return a SinglePixel.
 
template<typename ExprT1>
auto operator- (ExprT1 e1)
 Template for -e1.
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
auto operator+ (ExprT1 e1, ExprT2 e2)
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 & operator+= (ExprT1 &e1, ExprT2 const &e2)
 template for e1 += e2
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 plus (ExprT1 &lhs, ExprT2 const &rhs, float covariance)
 Like operator+(), but assume that covariance's 2*alpha*sqrt(vx*vy)
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::minus< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_plus< typename exprTraits< ExprT1 >::VariancePixelT > > operator- (ExprT1 e1, ExprT2 e2)
 Template to evaluate (e1 - e2)
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 operator-= (ExprT1 &e1, ExprT2 e2)
 Template to evaluate e1 -= e2.
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::multiplies< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_multiplies< typename exprTraits< ExprT1 >::VariancePixelT > > operator* (ExprT1 e1, ExprT2 e2)
 Template to evaluate (e1 * e2)
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 operator*= (ExprT1 &e1, ExprT2 e2)
 Template to evaluate e1 *= e2.
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::divides< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_divides< typename exprTraits< ExprT1 >::VariancePixelT > > operator/ (ExprT1 e1, ExprT2 e2)
 Template to evaluate (e1 / e2)
 
template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 operator/= (ExprT1 &e1, ExprT2 e2)
 Template to evaluate e1 /= e2.
 
template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
std::ostreamoperator<< (std::ostream &os, SinglePixel< ImagePixelT, MaskPixelT, VariancePixelT > const &v)
 Print a SinglePixel.
 
template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
std::ostreamoperator<< (std::ostream &os, Pixel< ImagePixelT, MaskPixelT, VariancePixelT > const &v)
 Print a Pixel.
 
template<typename ExprT1, typename ExprT2, typename BinOp, typename MaskBinOp, typename VarBinOp>
std::ostreamoperator<< (std::ostream &os, BinaryExpr< ExprT1, ExprT2, BinOp, MaskBinOp, VarBinOp > const &v)
 Evaluate and print a BinaryExpr.
 
 PYBIND11_MODULE (_pixel, mod)
 

Variables

template<typename T>
constexpr bool is_valid_operand
 
template<typename T1, typename T2>
constexpr bool valid_binary_operands = is_valid_operand<T1> && is_valid_operand<T2>
 

Typedef Documentation

◆ valid_operands

template<typename T1, typename T2>
using lsst::afw::image::pixel::valid_operands = std::enable_if_t<valid_binary_operands<T1, T2>>

Definition at line 518 of file Pixel.h.

Function Documentation

◆ makeSinglePixel()

template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
SinglePixel< ImagePixelT, MaskPixelT, VariancePixelT > lsst::afw::image::pixel::makeSinglePixel ( ImagePixelT x,
MaskPixelT m,
VariancePixelT v )

Return a SinglePixel.

This function is useful as function overloading will choose the correct return type (cf. std::make_pair()

Definition at line 134 of file Pixel.h.

135 {
137}
A single pixel of the same type as a MaskedImage.
Definition Pixel.h:73

◆ operator*()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::multiplies< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_multiplies< typename exprTraits< ExprT1 >::VariancePixelT > > lsst::afw::image::pixel::operator* ( ExprT1 e1,
ExprT2 e2 )

Template to evaluate (e1 * e2)

Definition at line 584 of file Pixel.h.

◆ operator*=()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 lsst::afw::image::pixel::operator*= ( ExprT1 & e1,
ExprT2 e2 )

◆ operator+()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
auto lsst::afw::image::pixel::operator+ ( ExprT1 e1,
ExprT2 e2 )

◆ operator+=()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 & lsst::afw::image::pixel::operator+= ( ExprT1 & e1,
ExprT2 const & e2 )

◆ operator-() [1/2]

template<typename ExprT1>
auto lsst::afw::image::pixel::operator- ( ExprT1 e1)

Template for -e1.

Definition at line 494 of file Pixel.h.

494 {
498}
Class for representing Unary operations.
Definition Pixel.h:393
A noop functor (useful for e.g. masks and variances when changing the sign of the image)
Definition Pixel.h:331

◆ operator-() [2/2]

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::minus< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_plus< typename exprTraits< ExprT1 >::VariancePixelT > > lsst::afw::image::pixel::operator- ( ExprT1 e1,
ExprT2 e2 )

◆ operator-=()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 lsst::afw::image::pixel::operator-= ( ExprT1 & e1,
ExprT2 e2 )

◆ operator/()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
BinaryExpr< ExprT1, ExprT2, std::divides< typename exprTraits< ExprT1 >::ImagePixelT >, bitwise_or< typename exprTraits< ExprT1 >::MaskPixelT >, variance_divides< typename exprTraits< ExprT1 >::VariancePixelT > > lsst::afw::image::pixel::operator/ ( ExprT1 e1,
ExprT2 e2 )

Template to evaluate (e1 / e2)

Definition at line 605 of file Pixel.h.

◆ operator/=()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 lsst::afw::image::pixel::operator/= ( ExprT1 & e1,
ExprT2 e2 )

◆ operator<<() [1/3]

template<typename ExprT1, typename ExprT2, typename BinOp, typename MaskBinOp, typename VarBinOp>
std::ostream & lsst::afw::image::pixel::operator<< ( std::ostream & os,
BinaryExpr< ExprT1, ExprT2, BinOp, MaskBinOp, VarBinOp > const & v )

Evaluate and print a BinaryExpr.

Definition at line 634 of file Pixel.h.

634 {
635 return os << "(" << v.image() << ", " << v.mask() << ", " << v.variance() << ")";
636}
ImagePixelT image() const
evaluate the image part of the expression
Definition Pixel.h:437
VariancePixelT variance() const
evaluate the variance part of the expression
Definition Pixel.h:443
MaskPixelT mask() const
evaluate the mask part of the expression
Definition Pixel.h:440

◆ operator<<() [2/3]

template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
std::ostream & lsst::afw::image::pixel::operator<< ( std::ostream & os,
Pixel< ImagePixelT, MaskPixelT, VariancePixelT > const & v )

Print a Pixel.

Definition at line 628 of file Pixel.h.

628 {
629 return os << "(" << v.image() << ", " << v.mask() << ", " << v.variance() << ")";
630}
MaskPixelT mask() const
Return the mask part of a Pixel.
Definition Pixel.h:207
ImagePixelT image() const
Return the image part of a Pixel.
Definition Pixel.h:205
VariancePixelT variance() const
Return the variance part of a Pixel.
Definition Pixel.h:209

◆ operator<<() [3/3]

template<typename ImagePixelT, typename MaskPixelT, typename VariancePixelT>
std::ostream & lsst::afw::image::pixel::operator<< ( std::ostream & os,
SinglePixel< ImagePixelT, MaskPixelT, VariancePixelT > const & v )

Print a SinglePixel.

Definition at line 622 of file Pixel.h.

622 {
623 return os << "(" << v.image() << ", " << v.mask() << ", " << v.variance() << ")";
624}
VariancePixelT variance() const
Definition Pixel.h:96
ImagePixelT image() const
Definition Pixel.h:94

◆ plus()

template<typename ExprT1, typename ExprT2, typename = valid_operands<ExprT1, ExprT2>>
ExprT1 lsst::afw::image::pixel::plus ( ExprT1 & lhs,
ExprT2 const & rhs,
float covariance )
inline

Like operator+(), but assume that covariance's 2*alpha*sqrt(vx*vy)

Parameters
lhsLeft hand value
rhsRight hand value
covarianceAssume that covariance is 2*alpha*sqrt(vx*vy) (if variances are known)

Definition at line 549 of file Pixel.h.

553 {
554 return doPlus(lhs, rhs, covariance, typename std::is_arithmetic<ExprT1>::type());
555}

◆ PYBIND11_MODULE()

lsst::afw::image::pixel::PYBIND11_MODULE ( _pixel ,
mod  )

Definition at line 65 of file _pixel.cc.

65 {
66 lsst::cpputils::python::WrapperCollection wrappers(mod, "lsst.afw.image.pixel");
67 declareSinglePixel<float>(wrappers, "SinglePixelF");
68 declareSinglePixel<double>(wrappers, "SinglePixelD");
69 declareSinglePixel<int>(wrappers, "SinglePixelI");
70 declareSinglePixel<std::uint16_t>(wrappers, "SinglePixelU");
71 declareSinglePixel<std::uint64_t>(wrappers, "SinglePixelL");
72 wrappers.finish();
73}
A helper class for subdividing pybind11 module across multiple translation units (i....
Definition python.h:242

Variable Documentation

◆ is_valid_operand

template<typename T>
bool lsst::afw::image::pixel::is_valid_operand
inlineconstexpr
Initial value:
std::is_floating_point_v<T> ||
is_specialization<T, Pixel>{}

Definition at line 509 of file Pixel.h.

511 {} ||
512 is_specialization<T, SinglePixel>{} ||
513 is_specialization<T, Pixel>{};

◆ valid_binary_operands

template<typename T1, typename T2>
bool lsst::afw::image::pixel::valid_binary_operands = is_valid_operand<T1> && is_valid_operand<T2>
constexpr

Definition at line 515 of file Pixel.h.