所以我可能会遗漏一些内容,但似乎迭代cv::UMat
的唯一方法是首先将其转换为cv::Mat
。这是真的?我需要编写许多函数来操作单个像素。我已经对我的代码进行了很多模板化,但由于我必须做的所有切换,事情变得有点复杂。如果我不必在整个地方拨打mat.getMat(flag)
,那会更好。
谢谢!
例如,我实施了累积总和:
cv::Mat CumSum(const cv::Mat& histogram) {
cv::Mat cumsum =
cv::Mat::zeros(histogram.rows, histogram.cols, histogram.type());
cumsum.at<float>(0) = (histogram.at<float>(0));
for (int i = 1; i < histogram.total(); ++i) {
cumsum.at<float>(i) = cumsum.at<float>(i - 1) + histogram.at<float>(i);
}
return cumsum;
}
at<type>
不存在cv::UMat
所以我被迫使用函数重载而不是模板化输入类型。