gpt4 book ai didi

c++ - 在 OpenCv Mat 中限制值的最有效方法

转载 作者:可可西里 更新时间:2023-11-01 18:39:46 27 4
gpt4 key购买 nike

我有一个 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);
}

但我不确定它是否是最短的,或者拆分/合并是否有效。

最佳答案

尝试拆分,使用 cvThreshold 然后合并。您也可以使用 cvSetImageCOI 来避免 split 。我不确定阈值代码是否支持 COI。

您可能想要分析这两个版本并比较它们的性能。我感觉它会做同样的事情。

关于c++ - 在 OpenCv Mat 中限制值的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com