int getTotalNumberOfChannels(InputArrayOfArrays src) { CV_Assert(src.isMat() || src.isUMat() || src.isMatVector() || src.isUMatVector()); if (src.isMat() || src.isUMat()) { return src.channels(); } else if (src.isMatVector()) { int cnNum = 0; const vector<Mat>& srcv = *static_cast<const vector<Mat>*>(src.getObj()); for (unsigned i = 0; i < srcv.size(); i++) cnNum += srcv[i].channels(); return cnNum; } else if (src.isUMatVector()) { int cnNum = 0; const vector<UMat>& srcv = *static_cast<const vector<UMat>*>(src.getObj()); for (unsigned i = 0; i < srcv.size(); i++) cnNum += srcv[i].channels(); return cnNum; } else { return 0; } }