|
template<typename PixelT > |
int | applyLookupTable (afw::image::Image< PixelT > &image, ndarray::Array< PixelT, 1, 1 > const &table, PixelT indOffset) |
| Add the values in a lookup table to an image, e.g. More...
|
|
template<typename PixelT > |
size_t | maskNans (afw::image::MaskedImage< PixelT > const &mi, afw::image::MaskPixel maskVal, afw::image::MaskPixel allow=0) |
| Mask NANs in an image. More...
|
|
template<typename ImagePixelT , typename FunctionT > |
void | fitOverscanImage (std::shared_ptr< lsst::afw::math::Function1< FunctionT > > &overscanFunction, lsst::afw::image::MaskedImage< ImagePixelT > const &overscan, double ssize=1., int sigma=1) |
|
| PYBIND11_MODULE (applyLookupTable, mod) |
|
| PYBIND11_MODULE (isr, mod) |
|
template int | applyLookupTable< float > (afw::image::Image< float > &, ndarray::Array< float, 1, 1 > const &, float) |
|
template int | applyLookupTable< double > (afw::image::Image< double > &, ndarray::Array< double, 1, 1 > const &, double) |
|
std::string | between (std::string &s, char ldelim, char rdelim) |
|
template void | fitOverscanImage (std::shared_ptr< afw::math::Function1< double > > &overscanFunction, afw::image::MaskedImage< float > const &overscan, double ssize, int sigma) |
|
template void | fitOverscanImage (std::shared_ptr< afw::math::Function1< double > > &overscanFunction, afw::image::MaskedImage< double > const &overscan, double ssize, int sigma) |
|
template size_t | maskNans< float > (afw::image::MaskedImage< float > const &, afw::image::MaskPixel, afw::image::MaskPixel) |
|
template size_t | maskNans< double > (afw::image::MaskedImage< double > const &, afw::image::MaskPixel, afw::image::MaskPixel) |
|
template<typename PixelT >
int lsst::ip::isr::applyLookupTable |
( |
afw::image::Image< PixelT > & |
image, |
|
|
ndarray::Array< PixelT, 1, 1 > const & |
table, |
|
|
PixelT |
indOffset |
|
) |
| |
Add the values in a lookup table to an image, e.g.
for non-linearity correction
The algorithm is as follows: numOutOfRange = 0 For each i,j of the image: lookupInd = int(indOffset + image[i,j]) if lookupInd not in range [0, table.size() - 1]: set lookupInd to nearest edge and increment numOutOfRange image[i,j] += table[lookupInd] return numOutOfRange
- Parameters
-
[in,out] | image | image to which to add the values; modified in place |
[in] | table | lookup table |
[in] | indOffset | scalar added to image value before truncating to lookup column |
- Returns
- the number of pixels whose values were out of range
Definition at line 35 of file applyLookupTable.cc.
40 if (table.size() == 0u) {
42 pex::exceptions::LengthError,
43 "Lookup table has zero size."
46 int numOutOfRange = 0;
47 int const maxLookupCol = table.size() - 1;
48 for (
int col = 0, imHeight =
image.getHeight();
col < imHeight; ++
col) {
50 int lookupCol = indOffset + *imPtr;
54 }
else if (lookupCol > maxLookupCol) {
55 lookupCol = maxLookupCol;
58 *imPtr += table[lookupCol];
template<typename ImagePixelT , typename FunctionT >
geom::Box2I bbox = geom::Box2I( geom::Point2I(0, y), geom::Point2I(0, width) ); The above was how this was defined before ticket #1556. As I understand it the following is the new way to do this
geom::Box2I bbox = geom::Box2I( geom::Point2I(0, y), geom::Point2I(0, width) ); The above was how this was defined before ticket #1556. As I understand it the following is the new way to do this
Definition at line 53 of file Isr.cc.
59 typedef afw::image::MaskedImage<ImagePixelT> MaskedImage;
63 const int width = overscan.
getWidth();
71 for (
int y = 0;
y < height; ++
y) {
79 MaskedImage mi = MaskedImage(overscan,
bbox);
97 overscanFunction->setParameters(fitResults.parameterList);