Как я могу изменить растровое изображение и использовать его позже без сохранения или рисования - PullRequest
1 голос
/ 15 февраля 2009

Я пытаюсь сделать некоторые ocr самостоятельно в C #. Я изначально пришел с 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) )

Но я не нашел способа сохранить изменения на постоянной основе в растровом объекте. Может быть, кто-то делал это раньше и может помочь мне

1 Ответ

3 голосов
/ 15 февраля 2009

Вместо рисования на экране с этим

Graphics g = this.CreateGraphics();

Вы создаете новое растровое изображение, а затем рисуете на этом растровом изображении, используя графический объект, полученный следующим образом

Bitmap bmpNew = new Bitmap( width, height );
Graphics g = Graphics.FromBitmap( bmpNew );
...