如果想直接创建一个高维的Mat,本文以4-D的Mat为例,分别使用opencv高版本和低版本来进行示例:
方式1: cv::dnn::blobFromImages【dnn这个api是opencv4里面新增的,如果opencv版本低,可以看方式2】
cv::Mat trtInput = cv::dnn::blobFromImages(InputImgs,1.0,cv::Size(m_inputH,m_inputW), cv::Scalar(127.0,127.0,127.0),true,false);
输入的InputImgs是std::vector<cv::Mat>类型的变量,输出的trtInput是高维的Mat类型的变量【这里是4-D,NCHW】
该代码的含义就是将多张图像做了一些预处理,返回一个4通道的blob(blob可以简单理解为一个N维的数组,用于神经网络的输入)。
函数原型:
cv2.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]])
函数参数: