Мне нужно преобразовать изображение в черно-белое, полученное с помощью мобильной камеры.
Я прочитал вопросы и ответы, связанные с преобразованием изображения в черно-белое, но предоставленное решение мне не поможет.
Ниже мое изображение, которое я сделал.
Поэтому я должен сохранить вышеуказанное изображение в папке своего приложения, преобразовав его в черно-белое в соответствии с требованиями.
Я пробовал ниже коды C #, но это дает мне неполное изображение.
Код 1
Bitmap bmp = new Bitmap(@"c:\test.jpg");
Bitmap bw = bmp.Clone(new Rectangle(0, 0, bmp.Width, bmp.Height),
PixelFormat.Format8bppIndexed);
Код 2
Bitmap bmp = new Bitmap(@"c:\test.jpg");
int width = bmp.Width;
int height = bmp.Height;
int[] arr = new int[225];
int i = 0;
Color p;
//Grayscale
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
p = bmp.GetPixel(x, y);
int a = p.A;
int r = p.R;
int g = p.G;
int b = p.B;
int avg = (r + g + b) / 3;
avg = avg < 128 ? 0 : 255; // Converting gray pixels to either pure black or pure white
bmp.SetPixel(x, y, Color.FromArgb(a, avg, avg, avg));
}
}
Но оба кода преобразуют исходное изображение, как показано ниже.
Это может быть связано с затенением при захвате изображения с помощью мобильного телефона.
Пожалуйста, дайте мне знать, как я могу преобразовать это изображение в черно-белое без потери изображения.
Есть ли какая-нибудь библиотека, которая мне поможет?