1

我正在尝试在 C# 中自己做一些 ocr。我最初来自 Java,这是我第一个使用 C# 的“项目”

所以我知道,如何制作不同的 ColorMatrizes 以在应用程序中绘制处理过的位图。我也有这些,但我想使用处理后的图片来更好地分析图片。

这些是我获取 ImageAttribute 的方法

public static ImageAttributes ToGrayscale(Bitmap b)
public static ImageAttributes ToNegative(Bitmap b)
public static ImageAttributes ToSepia(Bitmap b)
public static ImageAttributes SetBrightness(Bitmap b, float Brightness)
public static ImageAttributes SetContrast(Bitmap b, float Contrast)

这是我的画法

Graphics g = this.CreateGraphics();
g.DrawImage(bmp,new Rectangle(0, 0, bmp.Width, bmp.Height), 
            0, 0, bmp.Width, bmp.Height, 
            GraphicsUnit.Pixel, ImageAnalysis.ToGrayscale(bmp));
g.Dispose(); 

这就是我要的:

FindLines( setConrast(toGrayscale(bmp),200) )

但我发现没有办法将更改永久保存到位图对象。也许有人以前这样做过并且可以帮助我

4

1 回答 1

3

而不是用这个绘制到屏幕上

Graphics g = this.CreateGraphics();

您创建一个新位图,然后使用像这样获得的 Graphics 对象在该位图上绘制

Bitmap bmpNew = new Bitmap( width, height );
Graphics g = Graphics.FromBitmap( bmpNew );
于 2009-02-15T18:29:51.817 回答