我正在使用 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 finevar image2 = new Image<Gray, short>( imagePath ); //crashes visual studiovar image3 = new Image<Gray, int>( imagePath ); //crashes visual studio我希望 image2 和 image3 和 image1 一样被存储,因为我的文件系统上的图像具有正确的 bitdetph。
1 回答

哆啦的时光机
TA贡献1779条经验 获得超6个赞
也许你有一个 32 位 Bgra 图像?这意味着每个像素有 4 个通道,每个通道使用 8 位。Bgra 代表蓝色、绿色、红色和阿尔法。这对于 png 图像来说是典型的,因为这种格式可以编码一个 alpha 通道。
尝试:
var image1 = new Image<Bgra, byte>( imagePath );
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消