diff --git a/modules/dnn/src/onnx/onnx_graph_simplifier.cpp b/modules/dnn/src/onnx/onnx_graph_simplifier.cpp index 30c0b26ead..cde1a78ffe 100644 --- a/modules/dnn/src/onnx/onnx_graph_simplifier.cpp +++ b/modules/dnn/src/onnx/onnx_graph_simplifier.cpp @@ -547,6 +547,19 @@ Mat getMatFromTensor(opencv_onnx::TensorProto& tensor_proto) CV_Assert(!field.empty()); Mat(sizes, CV_64FC1, (void*)field.data()).convertTo(blob, CV_32FC1); } + else if (datatype == opencv_onnx::TensorProto_DataType_INT32) + { + if (!tensor_proto.int32_data().empty()) + { + const ::google::protobuf::RepeatedField field = tensor_proto.int32_data(); + Mat(sizes, CV_32SC1, (void*)field.data()).copyTo(blob); + } + else + { + char* val = const_cast(tensor_proto.raw_data().c_str()); + Mat(sizes, CV_32SC1, val).copyTo(blob); + } + } else if (datatype == opencv_onnx::TensorProto_DataType_INT64) { blob.create(sizes, CV_32SC1);