Czy ktoś zrobiłby to zadanie? I wytłumaczył?
Na czarno-białym obrazie, zamień czarne
piksele na białe (i odwrotnie).
Czy ktoś zrobiłby to zadanie? I wytłumaczył?
Na czarno-białym obrazie, zamień czarne
piksele na białe (i odwrotnie).
Zrobić nikt za ciebie nie zrobi. Obraz to tablica dwu wymiarowa jeśli mówimy o obrazie w skali szarości lub binarnym. Teraz pytanie czy masz binarny czyli dwa kolory biel i czerń czy skala szarości? Musisz wczytać obraz jako tablicę a następnie dla:
a) obrazu binarnego zmienić 0 na 1 i odwrotnie 1 na 0
b) obrazu w skali szarości zrobić negację czyli dla 8 bitowego obrazu zmienić wartość pikseli według wzoru: |x-255| gdzie x to wartość piksela w obrazie
Generalnie polecam raczej jakieś skryptowe środowisko niż C# bo w C# jest troch więcej zabawy :) matlab, python się nadadzą do tego.
using System.Drawing; // musisz dodać do tego referencje, jeżeli robisz to jako console app.
static Bitmap replacePixel(Bitmap input, Color oldColor, Color newColor)
{
if (input==null) { return null;}
Bitmap temporary = new Bitmap(input.Width, input.Height);
for (int i = 0; i < input.Width; i++)
{
for (int j = 0; j < input.Height; j++)
{
Color current = input.GetPixel(i,j);
if (current == oldColor)
{
temporary.SetPixel(i, j, newColor);
}
else
{
temporary.SetPixel(i, j, current);
}
}
}
return temporary;
}
static void Main(string[] args)
{
Bitmap inputImage = (Bitmap)Image.FromFile(@"C:\test\input.jpg");
Color oldColor = Color.FromArgb(255, 255, 255);
Color newColor = Color.FromArgb(0, 0, 0);
Bitmap output = replacePixel(inputImage , oldColor, newColor);
output.Save(@"C:\test\output.jpg");
inputImage.Dispose();
output.Dispose();
}