OpenCV 数组操作与稀疏矩阵使用指南
1. 数据类型转换与饱和转换
在 OpenCV 中, cv::saturate_cast<>() 函数允许你指定要将参数转换的类型。例如:
uchar& Vxy = m0.at<uchar>( y, x );
Vxy = cv::saturate_cast<uchar>((Vxy-128)*2 + 128);
在这个示例代码中,我们首先将变量 Vxy 赋值为 8 位数组 m0 中某个元素的引用。接着,从该数组元素中减去 128,将结果乘以 2 进行缩放,再加上 128。通常的 C 算术规则会将 Vxy - 128 赋值为一个 32 位有符号整数,然后进行整数乘法和加法运算。然而,如果 Vxy 的原始值为 10,那么 Vxy - 128 将为 -118,表达式的值将为 -108。这个数字无法存储在 8 位无符号变量 Vxy 中,此时 cv::saturate_cast<uchar>() 函数就会发挥作用,它会将 -108 转换为 0。
2. cv::Mat 类的更多操作
除了之前介绍的成员函数, cv::Mat 类还有一些其他实用的方法,如下表所示:
| 示例 | 描述 |
| — |
超级会员免费看
订阅专栏 解锁全文
1262

被折叠的 条评论
为什么被折叠?



