system.drawing Image 转 Image<bgr,byte>
时间: 2024-10-20 09:03:31 浏览: 28
C# EmguCV 数据类型转换
在System.Drawing命名空间中,如果你有一个`Image`对象,并想将其转换为另一种颜色模式,如BGR(通常用于OpenCV的图像格式),你可以通过创建一个新的`Bitmap`对象并设置其颜色模式来实现。以下是示例代码:
```csharp
using System.Drawing.Imaging;
// 假设你有一个Image对象叫做sourceImage
Image sourceImage = ...
// 首先获取原图像的宽度和高度
int width = sourceImage.Width;
int height = sourceImage.Height;
// 创建一个新的Bitmap对象,指定宽度、高度和颜色格式(PixelFormat.Format24bppRgb,对应BGR)
Bitmap bgrImage = new Bitmap(width, height, PixelFormat.Format24bppRgb);
// 然后创建Graphics对象,并从sourceImage绘制到bgrImage,自动调整颜色模式
Graphics graphics = Graphics.FromImage(bgrImage);
graphics.DrawImage(sourceImage, 0, 0, width, height);
// bgrImage现在是一个BGR格式的Image对象
Image<Byte,Bgr,Byte> bgrImageAsType = bgrImage.ToBitmap<Byte,Bgr,Byte>(); // 注意这里使用ToBitmap方法将Bitmap转换为所需的类型
阅读全文