LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
_offsetImage.cc
Go to the documentation of this file.
1/*
2 * LSST Data Management System
3 * Copyright 2008-2016 AURA/LSST.
4 *
5 * This product includes software developed by the
6 * LSST Project (http://www.lsst.org/).
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the LSST License Statement and
19 * the GNU General Public License along with this program. If not,
20 * see <https://www.lsstcorp.org/LegalNotices/>.
21 */
22
23#include <pybind11/pybind11.h>
24#include <lsst/utils/python.h>
25
27#include "lsst/afw/image/Mask.h"
29
30namespace py = pybind11;
31
32using namespace py::literals;
33
34namespace lsst {
35namespace afw {
36namespace math {
37
38namespace {
39template <typename ImageT>
40static void declareOffsetImage(lsst::utils::python::WrapperCollection &wrappers) {
41 wrappers.wrap([](auto &mod) {
42 mod.def("offsetImage", offsetImage<ImageT>, "image"_a, "dx"_a, "dy"_a, "algorithmName"_a = "lanczos5",
43 "buffer"_a = 0);
44 });
45}
46
47template <typename ImageT>
48static void declareRotateImageBy90(lsst::utils::python::WrapperCollection &wrappers) {
49 wrappers.wrap(
50 [](auto &mod) { mod.def("rotateImageBy90", rotateImageBy90<ImageT>, "image"_a, "nQuarter"_a); });
51}
52
53template <typename ImageT>
54static void declareFlipImage(lsst::utils::python::WrapperCollection &wrappers) {
55 wrappers.wrap(
56 [](auto &mod) { mod.def("flipImage", flipImage<ImageT>, "inImage"_a, "flipLR"_a, "flipTB"_a); });
57}
58
59template <typename ImageT>
60static void declareBinImage(lsst::utils::python::WrapperCollection &wrappers) {
61 wrappers.wrap([](auto &mod) {
62 mod.def("binImage",
63 (std::shared_ptr<ImageT>(*)(ImageT const &, int const, int const,
64 lsst::afw::math::Property const))binImage<ImageT>,
65 "inImage"_a, "binX"_a, "binY"_a, "flags"_a = lsst::afw::math::MEAN);
66 mod.def("binImage",
67 (std::shared_ptr<ImageT>(*)(ImageT const &, int const,
68 lsst::afw::math::Property const))binImage<ImageT>,
69 "inImage"_a, "binsize"_a, "flags"_a = lsst::afw::math::MEAN);
70 });
71}
72} // namespace
73
74void wrapOffsetImage(lsst::utils::python::WrapperCollection &wrappers) {
75 using MaskPixel = lsst::afw::image::MaskPixel;
76 wrappers.addSignatureDependency("lsst.afw.image");
77
78 declareOffsetImage<lsst::afw::image::Image<int>>(wrappers);
79 declareOffsetImage<lsst::afw::image::Image<float>>(wrappers);
80 declareOffsetImage<lsst::afw::image::Image<double>>(wrappers);
81 declareOffsetImage<lsst::afw::image::MaskedImage<int>>(wrappers);
82 declareOffsetImage<lsst::afw::image::MaskedImage<float>>(wrappers);
83 declareOffsetImage<lsst::afw::image::MaskedImage<double>>(wrappers);
84
85 declareRotateImageBy90<lsst::afw::image::Image<std::uint16_t>>(wrappers);
86 declareRotateImageBy90<lsst::afw::image::Image<int>>(wrappers);
87 declareRotateImageBy90<lsst::afw::image::Image<float>>(wrappers);
88 declareRotateImageBy90<lsst::afw::image::Image<double>>(wrappers);
89 declareRotateImageBy90<lsst::afw::image::MaskedImage<std::uint16_t>>(wrappers);
90 declareRotateImageBy90<lsst::afw::image::MaskedImage<int>>(wrappers);
91 declareRotateImageBy90<lsst::afw::image::MaskedImage<float>>(wrappers);
92 declareRotateImageBy90<lsst::afw::image::MaskedImage<double>>(wrappers);
93 declareRotateImageBy90<lsst::afw::image::Mask<MaskPixel>>(wrappers);
94
95 declareFlipImage<lsst::afw::image::Image<std::uint16_t>>(wrappers);
96 declareFlipImage<lsst::afw::image::Image<int>>(wrappers);
97 declareFlipImage<lsst::afw::image::Image<float>>(wrappers);
98 declareFlipImage<lsst::afw::image::Image<double>>(wrappers);
99 declareFlipImage<lsst::afw::image::MaskedImage<std::uint16_t>>(wrappers);
100 declareFlipImage<lsst::afw::image::MaskedImage<int>>(wrappers);
101 declareFlipImage<lsst::afw::image::MaskedImage<float>>(wrappers);
102 declareFlipImage<lsst::afw::image::MaskedImage<double>>(wrappers);
103 declareFlipImage<lsst::afw::image::Mask<MaskPixel>>(wrappers);
104
105 declareBinImage<lsst::afw::image::Image<std::uint16_t>>(wrappers);
106 declareBinImage<lsst::afw::image::Image<int>>(wrappers);
107 declareBinImage<lsst::afw::image::Image<float>>(wrappers);
108 declareBinImage<lsst::afw::image::Image<double>>(wrappers);
109 declareBinImage<lsst::afw::image::MaskedImage<std::uint16_t>>(wrappers);
110 declareBinImage<lsst::afw::image::MaskedImage<int>>(wrappers);
111 declareBinImage<lsst::afw::image::MaskedImage<float>>(wrappers);
112 declareBinImage<lsst::afw::image::MaskedImage<double>>(wrappers);
113}
114} // namespace math
115} // namespace afw
116} // namespace lsst
std::int32_t MaskPixel
default type for Masks and MaskedImage Masks
Property
control what is calculated
Definition Statistics.h:53
@ MEAN
estimate sample mean
Definition Statistics.h:57
void wrapOffsetImage(lsst::utils::python::WrapperCollection &)