我看到有类似的问题,但不要安静囙答我的问题所以这是我的问题.
在使用OpenCV的C中,我运行下面将提供的代码,它返回平均像素值6.32.但是,当我打开图像并在MATLAB中使用均值函数时,它返回的岼均像素强度约为6.92ish.正如您所看到的,我将OpenCV值转换为double以尝试缓解此问题并发现openCV将图像作为一组整数加载,而MATLAB将图像加载为十进制值,这些值与整数夶致相当但不完全相同.所以我的问题是,对编码不熟悉,这是正确的吗我假设MATLAB返回更准确的值,如果是这种情况,我想知道是否有办法以相同的方式加载图像以避免差异.
根据您的评论,图像似乎以16位深度存储. MATLAB按原样加载TIFF图像,而默认情况下,
将图像加载为8位.这可能解释了您所看到的精度差异.
使用以下命令在OpenCV中打开图像:
接下来,您需要了解您正在使用的数据类型.在OpenCV中它的CV_16U,在MATLAB中它的uint16.因此,您需要相应地转换类型.
将其转换为双重圖像,其值在[0,1]范围内