opencv 如何将任意通道Tensor转换为开放的dnn blob?

yyhrrdl8  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(114)

我正在使用opencv dnn来推断onnx模型,我发现dnn::blobFromImage可以将图像传输到blob作为dnn::Net的输入,但是否有任何方法将任意形状Tensor(例如(1,8,256,256)而不是3个通道)传输到blob来推断?

ct3nt3jp

ct3nt3jp1#

似乎没有什么特别的功能。只是构造了这个Mat:

int arr[4] = {64, 8, 21, 3};
    Mat kp(4, arr, CV_32FC1, Scalar::all(0));
    cout << r.size() << endl;
    for (int b = 0; b < r.size(); b++)
    {
        for (int c = 0; c < r[b].size(); c++)
        {
            for (int h = 0; h < r[b][c].size(); h++)
            {
                for (int w = 0; w < r[b][c][h].size(); w++)
                {
                    kp.ptr<float>(b, c, h)[w] = r[b][c][h][w].asFloat();
                }
            }
        }
    }

相关问题