opencv学习日常之“Saturation Casting“转换saturate_cast<>()

来源:互联网 发布:网络礼仪的基本原则 编辑:程序博客网 时间:2024/05/05 10:26

“Saturation Casting“转换saturate_cast<>()

在opencv中,对计算式进行计算的时候经常会出现值溢出(上溢出或下溢出),尤其是对无符号数值进行加减操作时。opencv中使用Saturation Casting“转换很好的解决这个问题,使用saturate_cast<>(),opencv对数组或矩阵进行代数运算或其他操作时,会自动检测underflows and overflows,当结果上溢出时就会用最大的可用值代替,当下溢出时就会用最小的可用值代替。

saturate_cast<>():<>中放转换后的数据类型。()中是计算式
例如:

uchar& Vxy = m0.at<uchar>( y, x );Vxy = cv::saturate_cast<uchar>((Vxy-128)*2 + 128);}

假如Vxy=10,则(Vxy-128)*2 + 128的结果为-108,通过转换后Vxy=0

1 0
原创粉丝点击