// 常用工具 #ifndef __COMMON_UTILITY_H__ #define __COMMON_UTILITY_H__ #include using namespace cv; using namespace cv::dnn; namespace migraphxSamples { enum DataLayout { DNN_LAYOUT_UNKNOWN = 0, DNN_LAYOUT_ND = 1, //!< OpenCV data layout for 2D data. DNN_LAYOUT_NCHW = 2, //!< OpenCV data layout for 4D data. DNN_LAYOUT_NCDHW = 3, //!< OpenCV data layout for 5D data. DNN_LAYOUT_NHWC = 4, //!< Tensorflow-like data layout for 4D data. DNN_LAYOUT_NDHWC = 5, //!< Tensorflow-like data layout for 5D data. DNN_LAYOUT_PLANAR = 6, //!< Tensorflow-like data layout, it should only be used at tf or tflite model parsing. }; enum ImagePaddingMode { DNN_PMODE_NULL = 0, // !< Default. Resize to required input size without extra processing. DNN_PMODE_CROP_CENTER = 1, // !< Image will be cropped after resize. DNN_PMODE_LETTERBOX = 2, // !< Resize image to the desired size while preserving the aspect // ratio of original image. }; struct Image2BlobParams { Image2BlobParams() : scalefactor(Scalar::all(1.0)), size(Size()), mean(Scalar()), swapRB(false), ddepth(CV_32F), datalayout(DNN_LAYOUT_NCHW), paddingmode(DNN_PMODE_NULL) { } Image2BlobParams(const Scalar& scalefactor_, const Size& size_, const Scalar& mean_, bool swapRB_, int ddepth_, DataLayout datalayout_, ImagePaddingMode mode_) : scalefactor(scalefactor_), size(size_), mean(mean_), swapRB(swapRB_), ddepth(ddepth_), datalayout(datalayout_), paddingmode(mode_) { } Scalar scalefactor; //!< scalefactor multiplier for input image values. Size size; //!< Spatial size for output image. Scalar mean; //!< Scalar with mean values which are subtracted from channels. bool swapRB; //!< Flag which indicates that swap first and last channels int ddepth; //!< Depth of output blob. Choose CV_32F or CV_8U. DataLayout datalayout; //!< Order of output dimensions. Choose DNN_LAYOUT_NCHW or DNN_LAYOUT_NHWC. ImagePaddingMode paddingmode; //!< Image padding mode. @see ImagePaddingMode. }; void blobFromImagesWithParams(InputArrayOfArrays images_, OutputArray blob_, const Image2BlobParams& param); } // namespace migraphxSamples #endif