LSST Applications g0fba68d861+05a5e06e50,g1fd858c14a+904f1f4196,g2c84ff76c0+247cd845a2,g2c9e612ef2+f5117f1d55,g35bb328faa+fcb1d3bbc8,g4af146b050+123c2f4d45,g4d2262a081+a9e7a6e053,g4e0f332c67+c58e4b632d,g53246c7159+fcb1d3bbc8,g5a012ec0e7+ac98094cfc,g60b5630c4e+f5117f1d55,g67b6fd64d1+dd0349c22b,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g87b7deb4dc+2a1aa4536a,g8852436030+d21aad2af4,g89139ef638+dd0349c22b,g8d6b6b353c+f5117f1d55,g9125e01d80+fcb1d3bbc8,g989de1cb63+dd0349c22b,g9f33ca652e+0a580a37dd,g9f7030ddb1+ae84e0d5a5,ga2b97cdc51+f5117f1d55,gabe3b4be73+1e0a283bba,gb1101e3267+1d994e7598,gb58c049af0+f03b321e39,gb89ab40317+dd0349c22b,gcca6a94b71+4ed007ada1,gcf25f946ba+d21aad2af4,gd315a588df+9d9c5ccff1,gd6cbbdb0b4+75aa4b1db4,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+6fce216140,ge278dab8ac+c61fbefdff,ge410e46f29+dd0349c22b,ge82c20c137+e12a08b75a,gf67bdafdda+dd0349c22b,v28.0.2.rc1
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.