1
0
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:
Dmitry Kurtaev
2024-06-07 20:39:44 +03:00
committed by GitHub
parent bef5a87680
commit 3700f9e1e9
4 changed files with 41 additions and 2 deletions
+16
View File
@@ -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)
{
+16
View File
@@ -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()