diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt index 62ec379bd..950d7998d 100644 --- a/modules/dnn/CMakeLists.txt +++ b/modules/dnn/CMakeLists.txt @@ -9,7 +9,7 @@ if(${PROTOBUF_FOUND} AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE}) file(GLOB PROTO_FILES src/*.proto) PROTOBUF_GENERATE_CPP(PROTO_HDRS PROTO_SRCS ${PROTO_FILES}) set(HAVE_PROTOBUF ON) - add_definitions(-DHAVE_PROTOBUF 1) + add_definitions(-DHAVE_PROTOBUF=1) else() message(STATUS "PROTOBUF not found. Caffe import function will be disabled.") set(HAVE_PROTOBUF OFF) @@ -19,9 +19,9 @@ endif() endmacro(_dnn_find_protobuf) if(BUILD_opencv_core)#build as OpenCV module -_dnn_find_protobuf() set(the_description "Deep neural network module. It allows to load models and to make forward pass") set(OPENCV_MODULE_IS_PART_OF_WORLD OFF) +_dnn_find_protobuf() ocv_add_module(dnn opencv_imgproc opencv_core opencv_highgui WRAP python matlab) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses) diff --git a/modules/dnn/include/opencv2/dnn/dict.hpp b/modules/dnn/include/opencv2/dnn/dict.hpp index b44af2501..25a87522f 100644 --- a/modules/dnn/include/opencv2/dnn/dict.hpp +++ b/modules/dnn/include/opencv2/dnn/dict.hpp @@ -43,7 +43,7 @@ private: void release(); }; -class Dict +class CV_EXPORTS Dict { //TODO: maybe this mechanism was realized somewhere in OpenCV? typedef std::map _Dict; diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index a67b5319d..3f8b1f20d 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -145,9 +145,8 @@ struct LayerOutId struct LayerData { LayerData() {} - LayerData(const String &_name, const String &_type, LayerParams &_params = LayerParams()) - : name(_name), type(_type), params(_params) - {} + LayerData(const String &_name, const String &_type, LayerParams &_params) + : name(_name), type(_type), params(_params) {} String name; String type; @@ -179,7 +178,8 @@ struct Net::Impl { Impl() { - layers.insert(make_pair(0, LayerData("_input", "_input"))); + LayerParams paramsEmpty; + layers.insert(make_pair(0, LayerData("_input", "_noType", paramsEmpty))); lastLayerId = 1; netWasAllocated = false; } @@ -218,9 +218,12 @@ struct Net::Impl if (v.isString()) return getLayerId(v.get()); else if (v.isInt()) - int id = v.get(); + return v.get(); else + { CV_Assert(v.isString() || v.isInt()); + return -1; + } } LayerData& getLayerData(const DictValue &v)