mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 15:23:05 +04:00
Merge pull request #25709 from dkurt:wrap_addLayer
* Wrap dnn addLayer * Add typing stubs
This commit is contained in:
@@ -71,6 +71,22 @@ PyObject* pyopencv_from(const dnn::LayerParams& lp)
|
||||
return dict;
|
||||
}
|
||||
|
||||
template<>
|
||||
bool pyopencv_to(PyObject *o, dnn::LayerParams &lp, const ArgInfo& info)
|
||||
{
|
||||
CV_Assert(PyDict_Check(o));
|
||||
PyObject *key, *value;
|
||||
Py_ssize_t pos = 0;
|
||||
std::string keyName;
|
||||
while (PyDict_Next(o, &pos, &key, &value)) {
|
||||
getUnicodeString(key, keyName);
|
||||
dnn::DictValue dv;
|
||||
pyopencv_to(value, dv, info);
|
||||
lp.set(keyName, dv);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
template<>
|
||||
PyObject* pyopencv_from(const std::vector<dnn::Target> &t)
|
||||
{
|
||||
|
||||
@@ -480,5 +480,21 @@ class dnn_test(NewOpenCVTests):
|
||||
params.scalefactor = 2.0
|
||||
self.assertEqual(params.scalefactor, (2.0, 0.0, 0.0, 0.0))
|
||||
|
||||
def test_net_builder(self):
|
||||
net = cv.dnn.Net()
|
||||
params = {
|
||||
"kernel_w": 3,
|
||||
"kernel_h": 3,
|
||||
"stride_w": 3,
|
||||
"stride_h": 3,
|
||||
"pool": "max",
|
||||
}
|
||||
net.addLayerToPrev("pool", "Pooling", cv.CV_32F, params)
|
||||
|
||||
inp = np.random.standard_normal([1, 2, 9, 12]).astype(np.float32)
|
||||
net.setInput(inp)
|
||||
out = net.forward()
|
||||
self.assertEqual(out.shape, (1, 2, 3, 4))
|
||||
|
||||
if __name__ == '__main__':
|
||||
NewOpenCVTests.bootstrap()
|
||||
|
||||
Reference in New Issue
Block a user