创建深度超过 8 位的图像会崩溃 visual studio

Creating image with depth over 8 bit crashes visual studio

我正在使用 Emgu CV 库来显示图像并在 C# 项目中对它们进行一些数学运算。 我正在尝试从文件系统中读取图片,如果我将图片的深度设置为 8 位,则可以正常工作。 一旦我想保存更大的图像,visual studio 就会在实例化新图像的地方崩溃(见代码)。崩溃意味着 UI 冻结并且 Windows 10 信息中心弹出一条消息,表示 visual studio 正在等待内部进程。

我尝试将图片的深度设置为32位(int)和16位(short)。这些类型显示了所描述的问题。 8 位(字节)没有说明任何问题。我正在使用的图像大小为 69x44 像素,位深度为 32 位(这是资源管理器向我显示的内容)。

private static readonly string imagePath = "C:/xxx/xxx/image.png";

var image1 = new Image<Gray, byte>( imagePath ); //works fine
var image2 = new Image<Gray, short>( imagePath ); //crashes visual studio
var image3 = new Image<Gray, int>( imagePath ); //crashes visual studio

我希望 image2 和 image3 与 image1 一样存储,因为我的文件系统上的图像具有正确的 bitdetph。

也许您有 32 位 Bgra 图像?这意味着每个像素有 4 个通道,每个通道使用 8 位。而 Bgra 代表蓝色、绿色、红色和阿尔法。这对于 png 图像来说是典型的,因为这种格式可以编码 alpha 通道。

尝试:

var image1 = new Image<Bgra, byte>( imagePath );