2015-04-28 2 views

ответ

1

Там нет никакого способа сделать это в OpenCV с одной операцией

Вы должны были бы сделать эквивалент (как нет C/C++ std математической функции, которая делает это.):

return (0 < n) ? std::floor(n) : std::ceil(n); 

Вы можете сделать это в OpenCV, используя cv::compare(...,CMP_GT) вместе с cv::ceil() и cv::floor().

C++ 11 добавлена ​​эквивалентная функция std::trunc().

0

Для более простого решения, на C++, отличить от int или long.

float x; 
std::cout<< (int) x; 

..если вы можете спокойно забыть цифры, которые не подходят.

В случае массива (например, Matlab's fit) попробуйте std::transform или std::for_each в сочетании с вышеуказанным.

EDIT: Кроме того, GNU libc имеет trunc(), что некоторые могут показаться предпочтительнее.

Смежные вопросы