创建深度超过 8 位的图像会使 Visual Studio 崩溃

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


我尝试将图片的深度设置为 32 位(int)和 16 位(短)。这些类型显示了所描述的问题。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。


杨魅力
浏览 106回答 1
1回答

哆啦的时光机

也许你有一个 32 位 Bgra 图像?这意味着每个像素有 4 个通道,每个通道使用 8 位。Bgra 代表蓝色、绿色、红色和阿尔法。这对于 png 图像来说是典型的,因为这种格式可以编码一个 alpha 通道。尝试:var&nbsp;image1&nbsp;=&nbsp;new&nbsp;Image<Bgra,&nbsp;byte>(&nbsp;imagePath&nbsp;);
打开App,查看更多内容
随时随地看视频慕课网APP