Czesc!
Czy ktos wie jak napisac taki program, który wyswietla wybraną przez uzykownika mape bitową oraz rezultat zastosowania do niej filtru konwolucyjnego?Uzytkownik moze ustalac rozmiar jadra konwolucji oraz wartosc filtru i podzielnika. Program pozwala takze wybrac ustawienia spoposrod predefiniowanych kilku typowych rodzajow filmu.
Byloby milo jakby ktos wiedzial jak sie do tego zabrac, bo ja na razie noga z programowania ;)
Dzieki :)
0
0
Tak, ja wiem jak sie do tego zabrać...
- Wczytać bitmape do tablicy dwuwyiarowej (jeśli nie wiesz jak: Google prawde Ci powie)
- Wczytac filtr tez do tablicy dwywymiarowej np. 3x3.
- Zastosowac na bitmapie filtr konwolucyjny, tj. stworzyc w pamieci pusta bitmape o tych samych rozmiarach i przejchac filtrem po oryginalnej zapisujac wyniki w drugiej.
Idea:
int Podzielnik = ...;
for (int X = 1; X < SzerokoscBitmapy - 1; X++)
for (int Y = 1; Y < WysokoscBitmapy - 1; Y++) {
int Suma = 0;
for (int I = -1; I <= 1; I++)
for (int J = -1; J <= 1; J++)
Suma += Bitmapa[X + I][Y + J] * Filtr[I + 1][J + 1];
Suma /= Podzielnik;
KopiaBitmapy[X][Y] = Suma;
}
Trzeba by jeszcze dodac zabezpieczenie przed przekroczeniem zakresu 0-255. Oczywiscie filtr stosujesz na kazdym kanale RGB osobno, jesli masz bitmape kolorowa.
0
Dzieki wielkie, wiem juz dalej o co chodzi :)
Miło było i pozdrawiam!!!