【发布时间】:2011-09-26 09:08:08
【问题描述】:
我有一个 OpenCv Mat 将用于按像素重新映射,称为 remap,它具有 CV_32FC2 元素。
其中一些元素可能超出了重映射的允许范围。所以我需要将它们夹在Point2f(0, 0) 和Point2f(w, h) 之间。用 OpenCv 2.x 完成此任务的最短或最有效的方法是什么?
这里有一个解决方案:
void clamp(Mat& mat, Point2f lowerBound, Point2f upperBound) {
vector<Mat> matc;
split(mat, matc);
min(max(matc[0], lowerBound.x), upperBound.x, matc[0]);
min(max(matc[1], lowerBound.y), upperBound.y, matc[1]);
merge(matc, mat);
}
但我不确定它是否最短,或者拆分/合并是否有效。
【问题讨论】:
标签: c++ opencv image-processing clamp