32 void loadpy(std::string
const & pypath);
35 std::vector<cv::Mat>
process(cv::Mat
const & img,
bool swaprb, std::vector<vsi_nn_tensor_attr_t>
const & attrs,
36 std::vector<cv::Rect> & crops);
59 LINFO(
"Loaded " << pypath);
67 std::vector<vsi_nn_tensor_attr_t>
const & attrs,
68 std::vector<cv::Rect> & crops)
71 boost::python::list alist;
78 if (boost::python::len(ret) != 2)
79 throw std::invalid_argument(
"Expected two return lists for blobs,crops but received " +
84 #define CROPERR "PreProcessorPython::process: crops should be ( (x,y), (w,h) )"
87 boost::python::list cl = boost::python::extract<boost::python::list>(ret[1]);
88 for (ssize_t i = 0; i < boost::python::len(cl); ++i)
90 boost::python::tuple tup = boost::python::extract<boost::python::tuple>(cl[i]);
91 if (boost::python::len(tup) != 2)
throw std::runtime_error(
CROPERR);
92 boost::python::tuple xy = boost::python::extract<boost::python::tuple>(tup[0]);
93 if (boost::python::len(xy) != 2)
throw std::runtime_error(
CROPERR);
94 boost::python::tuple wh = boost::python::extract<boost::python::tuple>(tup[1]);
95 if (boost::python::len(wh) != 2)
throw std::runtime_error(
CROPERR);
97 float x = boost::python::extract<float>(xy[0]);
98 float y = boost::python::extract<float>(xy[1]);
99 float w = boost::python::extract<float>(wh[0]);
100 float h = boost::python::extract<float>(wh[1]);
101 crops.emplace_back(cv::Rect(x, y, w,
h));
105 boost::python::list ml = boost::python::extract<boost::python::list>(ret[0]);
106 return jevois::python::pyListToVec<cv::Mat>(ml);
112 bool overlay,
bool idle)
133 PythonWrapper::pyinst().attr(
"report")(boost::python::object(), boost::ref(helperpy), overlay, idle);
137 PythonWrapper::pyinst().attr(
"report")(boost::python::object(), boost::python::object(), overlay, idle);
150 itsImpl = addSubComponent<jevois::dnn::PreProcessorPythonImpl>(
"pypre");
164 itsImpl->freeze(doit);
169 JEVOIS_UNUSED_PARAM(param), std::string
const & newval)
171 if (newval.empty() ==
false) itsImpl->loadpy(newval);
176 std::vector<vsi_nn_tensor_attr_t>
const & attrs,
177 std::vector<cv::Rect> & crops)
178 {
return itsImpl->process(img, swaprb, attrs, crops); }
183 { itsImpl->report(mod, outimg, helper, overlay, idle); }