在python下实现了一个模型识别28,28的数字数据集,预处理如下
blob = cv2.dnn.blobFromImage(x, scalefactor=1.0/255.0, size=(28, 28), crop=False, swapRB=False)
input_blob = blob.reshape(-1, 28, 28, 1)
net.setInput(input_blob) # 设置模型输入
out = net.forward()
现在的问题是想在C中用opencvdnn部署,但是应该如何实现同样的预处理,C++中有等效于reshape的方法吗
Mat 好像有个reshape()成员函数,具体的你可以查一查API,是可以用的。
但是你的这个你确定没有问题吗?经过opencv的blob之后一般都是NCHW的输入,也就是你的blob是(batch,channel,28,28),如果你再执行reshape,你的就变成了CHWN了,你确定你的这输入正确?