50 ndarray::Array<float, 2, 2> badPixelArray = ndarray::allocate(badSpanSet->getArea(), 3);
51 badSpanSet->applyFunctor(
52 [](
geom::Point2I pt,
float &
x,
float &
y,
float &valueOut,
float valueIn) {
57 ndFlat(badPixelArray[ndarray::view()(0)].shallow()),
58 ndFlat(badPixelArray[ndarray::view()(1)].shallow()),
59 ndFlat(badPixelArray[ndarray::view()(2)].shallow()),
62 auto allSpanSet = badSpanSet->dilated(buffer, afw::geom::Stencil::BOX);
63 auto goodSpanSet = allSpanSet->intersectNot(*badSpanSet);
64 goodSpanSet = goodSpanSet->clippedTo(mimage.
getBBox());
69 ndarray::Array<float, 2, 2> goodPixelArray = ndarray::allocate(goodSpanSet->getArea(), 3);
70 goodSpanSet->applyFunctor(
71 [](
geom::Point2I pt,
float &
x,
float &
y,
float &valueOut,
float valueIn) {
76 ndFlat(goodPixelArray[ndarray::view()(0)].shallow()),
77 ndFlat(goodPixelArray[ndarray::view()(1)].shallow()),
78 ndFlat(goodPixelArray[ndarray::view()(2)].shallow()),
static std::pair< ndarray::Array< float, 2, 2 >, ndarray::Array< float, 2, 2 > > findGoodPixelsAroundBadPixels(afw::image::MaskedImage< PixelT, afw::image::MaskPixel, afw::image::VariancePixel > const &mimage, std::vector< std::string > const &maskPlanes, int const buffer)
Find the positions of bad pixels as defined by the masks, and also find the location and pixel value ...