Emgucv 打开 tif 16bpp 灰度文件,但将强度降低到 8bpp

Emgucv opens tif 16bpp greyscale file but scales intensity down to 8bpp

我正在使用 C# winforms 中的应用程序工作,它需要处理一些以 16bpp 灰度 .tif 文件形式提供的图像。 我正在使用 emgucv 打开文件并获取像素数组,但我发现实际上像素的强度按比例缩小到 8bpp。

我使用 Gimp v2.10.10 创建了一个最小示例图像来重现此图像。使用此代码:

string a = @"White.tif";

Image<Gray, UInt16> imgSinProcesar = new Image<Gray, UInt16>(a);

this.Text = "Color: " + imgSinProcesar.GetAverage().Intensity;

Link 到示例文件: https://drive.google.com/open?id=14UQ4efP8lnkwA3kg6XFMxan1OF_Skvoc 我使用的 img 是全彩色的,强度为 65535。然而,计算出的平均值是 255,我在调试中检查每个像素的强度也是 255。

这是正常行为吗?我真的需要 16 位精度来正确完成必要的任务。

谢谢。

认为这是由于某些自动转换造成的。尝试以这种方式加载图像。

CvInvoke.Imread(a, Emgu.CV.CvEnum.ImreadModes.AnyDepth);

这将 return 一个 Mat 对象,但如果你需要一个 Image 对象,你可以使用 .ToImage<Gray, UInt16>().