qq_41747698 2021-08-17 08:58 采纳率: 75%
浏览 152
已结题

如何在C++中实现python的np.reshape

在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的方法吗

  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2021-08-17 09:05
    关注

    Mat 好像有个reshape()成员函数,具体的你可以查一查API,是可以用的。
    但是你的这个你确定没有问题吗?经过opencv的blob之后一般都是NCHW的输入,也就是你的blob是(batch,channel,28,28),如果你再执行reshape,你的就变成了CHWN了,你确定你的这输入正确?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 已采纳回答 8月17日
  • 创建了问题 8月17日