#include "aare/VarClusterFinder.hpp" #include "np_helper.hpp" // #include "aare/defs.hpp" // #include "aare/fClusterFileV2.hpp" #include // #include #include // #include #include #include // #include // #include namespace py = pybind11; using namespace::aare; void define_var_cluster_finder_bindings(py::module &m) { PYBIND11_NUMPY_DTYPE(VarClusterFinder::Hit, size, row, col, reserved, energy, max, rows, cols, enes); py::class_>(m, "VarClusterFinder") .def(py::init, double>()) .def("labeled", [](VarClusterFinder &self) { auto *ptr = new NDArray(self.labeled()); return return_image_data(ptr); }) .def("set_noiseMap", [](VarClusterFinder &self, py::array_t noise_map) { auto noise_map_span = make_view_2d(noise_map); self.set_noiseMap(noise_map_span); }) .def("set_peripheralThresholdFactor", &VarClusterFinder::set_peripheralThresholdFactor) .def("find_clusters", [](VarClusterFinder &self, py::array_t img) { auto view = make_view_2d(img); self.find_clusters(view); }) .def("find_clusters_X", [](VarClusterFinder &self, py::array_t img) { auto img_span = make_view_2d(img); self.find_clusters_X(img_span); }) .def("single_pass", [](VarClusterFinder &self, py::array_t img) { auto img_span = make_view_2d(img); self.single_pass(img_span); }) .def("hits", [](VarClusterFinder &self) { auto ptr = new std::vector::Hit>( self.steal_hits()); return return_vector(ptr); }) .def("clear_hits", [](VarClusterFinder &self) { self.clear_hits(); }) .def("steal_hits", [](VarClusterFinder &self) { auto ptr = new std::vector::Hit>( self.steal_hits()); return return_vector(ptr); }) .def("total_clusters", &VarClusterFinder::total_clusters); }