OpenCV中MATLAB fix()
的等效功能是什么?我曾在谷歌搜索过四舍五入,但我无法得到正确答案。
答案 0 :(得分:1)
使用单个操作无法在OpenCV中执行此操作(因为没有C / C ++ std
数学函数可以执行此操作。)
你需要做相同的:
return (0 < n) ? std::floor(n) : std::ceil(n);
您可以使用cv::compare(...,CMP_GT)
以及cv::ceil()
和cv::floor()
在OpenCV中执行此操作。
C ++ 11添加了等效函数std::trunc()
。
答案 1 :(得分:0)
对于更简单的解决方案,在C ++中,转换为int
或long
。
float x;
std::cout<< (int) x;
..如果你能安全地忘记那些不适合的数字。
如果是数组(如Matlab的fit
),请与上面的std::transform
或std::for_each
一起使用。
编辑:此外,GNU的libc
有trunc()
,有些人可能会觉得更合适。