ToB企服应用市场:ToB评测及商务社交产业平台
标题:
在C++中,浮点型数据(float型)向uchar(unsigned char)强制类型转换是一种什
[打印本页]
作者:
数据人与超自然意识
时间:
2022-6-25 08:30
标题:
在C++中,浮点型数据(float型)向uchar(unsigned char)强制类型转换是一种什
C++中,浮点型数据(float型)向uchar(unsigned char)强制类型转换是一种什么样的结果?
用实际的例子测试一下就行了。
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
uchar a1 = 255;
int level = 8;
float scale = level / 256.0;
double b1 = a1*scale;
uchar b2 = (uchar)b1;
uchar b3 = a1*scale;
return 0;
}
复制代码
运行结果如下:
从中可以看出,不管是运行自动转换出的结果b3,还是强制类型转换出的结果b2,都是对浮点数7.96875向下取整的结果。
所以结论就是:在C++中,浮点型数据(float型)向uchar(unsigned char)强制类型转换是一种向下取整的运算。相当于很多语言或库中的floor()函数的效果。
再上一个Mat类矩阵的转换例子。
代码中用到的图像下载链接:
https://pan.baidu.com/s/1CUMBBuLcjWjF5icX_eXrzg?pwd=nqu2
[code]#include #include using namespace cv;int main(){ Mat gray = imread("F:/material/images/2022/2022-06/0-255_level.bmp",0); if (gray.empty()) { std::cout
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4