void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape) { shape.clear(); if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width()) { shape.push_back(pbBlob.num()); shape.push_back(pbBlob.channels()); shape.push_back(pbBlob.height()); shape.push_back(pbBlob.width()); } else if (pbBlob.has_shape()) { const caffe::BlobShape &_shape = pbBlob.shape(); for (int i = 0; i < _shape.dim_size(); i++) shape.push_back((int)_shape.dim(i)); } else shape.resize(1, 1); // Is a scalar. }
void Mat_to_MatShape(cv::Mat& mat, MatShape& matshape) { matshape.clear(); CHECK_MAT(mat.type()==CV_32SC1 && mat.cols==1); matshape = (MatShape) mat; }