代码之家  ›  专栏  ›  技术社区  ›  TomH

openCV Mat N维整形

  •  0
  • TomH  · 技术社区  · 6 年前

    我有一个cv::Mat Mat从dnn::blobFromImage返回,大小为1x3x600x450。(img是BGR,无alpha通道)

    cv::Mat mat = dnn::blobFromImage(img);
    cout << mat.size() << endl; // 1x3x600x450
    

    模拟量是多少numpy.重塑要把它改成3x600x450?

    在python中,如果我断言垫子形状[0]==1,然后使用numpy.重塑我会做一些像

    mat = mat.reshape((mat.shape[1], mat.shape[2], mat.shape[3]))
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   TomH    6 年前

    根据丹在上述评论中的回答,这是我的看法:

    cv::Mat mat = dnn::blobFromImage(img);
    cout << mat.size() << endl; // 1x3x600x450
    
    int sz[] = {mat.size[1], mat.size[2], mat.size[3]}; 
    Mat newmat(3, sz, mat.type(), mat.ptr<float>(0));
    cout << newmat.size() << endl; // 3x600x450