filtr górnoprzepustowy na obrazie RGB

0

Witam użytkowników
chciałbym zastosować filtracje górnoprzepustową na obrazie w środowisku J2ME, jednak nie do końca wiem jak.
Mianowicie poruszam się pętlą for po szerokości oraz wysokości zdjęcia, posiadam wyznaczone składowe RGB każdego piksela z macierzy 3x3 w tym zdjęciu i problem polega na tym,
że nie wiem jakie mam wykonać operacje na zdjęciu a właściwie na tych składowych żeby obraz został poddany filtracji.
Przy czym wiem że filtr górnoprzepustowy ma wyglądać następująco:
-1 -1 -1
-1 9 -1
-1 -1 -1
Proszę o jakieś podpowiedzi

0

Zakładam, że udało ci się pobrać grafikę, jako tabelę dwuwymiarową pixeli, skoro tak, to tylko jedziesz w pętli i mnożysz te pixele razy te wskazniki w macierzy dodajesz je do siebie i wynik jest pixelem w środku jeśli mnie pamieć nie myli.

0

Dla każdej składowej piksela stosujesz: wymnazanie wartosci skladowej piksela z otoczenia (czyli wlacznie z nim samym) przez odpowiednia wartosc z macierzy. Wyniki mnozen sumujesz i dzielisz przez 9, jesli sie nie myle.

0

Dokładnie - filtr stosujesz jak każdą inną maskę - środek maski (tam gdzie masz 9) ustawiasz pikselu rozpatrywanego obrazu liczysz piksel nowego obrazu: bierzesz wartość piksela środkowego pomnożonego przez 9 i odejmujesz wartosci wszystkich pikseli sąsiadujacych (bo wagi są -1). To jest wartosc Twojego piksela w nowym obrazie...ona w żaden sposób nie jest brana pod uwagę jak liczysz kolejny piksel starego obrazu. Zostanie oczywiście Ci krawędz obrazu bo tam oczywiście nie zastosujesz całej maski-dla calów inżynierskich odcinasz ją ale jak robisz coś jak filtr do "ludzi" to te piksele wychodzące po prostu odcinasz.

0

@[losowa nazwa] nie dzielisz przez 9. Maska jest estymatorem o wartości oczekiwanej zero czyli same działania +/- normalizują wynik.

0

@lipkerson: Zgodze się, że nie dzielę (w tym wypadku), bo suma wag z macierzy daje 1 (nie zero !), czyli to tak, jakbym dzielił przez 1. Mój błąd, że chciałem dzielić przez 9.

0

Macierz filtru górnoprzepustowego powinna być raczej taka:
-1 -1 -1
-1 8 -1
-1 -1 -1
Suma wyrazów ma być równa 0.

0

@bo

Nieprawda - to co Ty proponujesz to kulawy filtr uśredniający - jeżeli wszystkie piksele będe miały podobne wartosci to ten rozpatrywany zostanie "pociagniety" w dół do średniej w masce. To własnie ze on ma +1 czyli 9 czyli jego wartość jest ważniejszą i dla piku reszta pikseli go nie zniweluje tylko dostanie kopa do góry i będzie wyraźny - blizej bieli. To własnie jest filtr górnoprzepustowy.

0

Dzieki Wam wszystkim za pomoc, posiedziałem dziś i właśnie to zrobiłem. Chyba wszystko działa dobrze :)

0

Wklej zdjecie przed i po filtrowaniu to Ci powiem czy dobrze działa...oczywiście jak chcesz:)

0

ten filtr jest częścią większej całości programu... wcześniej wykonywana jest np. zmiana na skalę szarości danego obrazka, dlatego nie wiem czy z tego powodu nie będzie to trochę wpływało na Twoją ocenę

0

Ten filtr to mi wygląda na zwykłego blura. Jaki to ma związek z: http://pl.wikipedia.org/wiki/Filtr_g%C3%B3rnoprzepustowy ?

0

Elektronik się znalazł - ano mają mają...

http://pl.wikipedia.org/wiki/Filtracja_obraz%C3%B3w

Zjedz sobie na filtr górnoprzepustowy - potem się zastanów co on właściwie robi z wartościa piksela wyróżnionego w masce a potem samo Ci się nasunie.

0

Aaa dobra, przemyślałem sprawę i teraz to ma sens :P

Pomyliły mi się macierze, myślałem że to macierz od blura i mi się nie zgadzało.

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