Podstawy zadanie - Przetwarzanie sygnałów - Bitmap

0

Czy ktoś zrobiłby to zadanie? I wytłumaczył?

Na czarno-białym obrazie, zamień czarne
piksele na białe (i odwrotnie).

0

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.

0
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();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1