logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Filtr medianowy dla obrazów kolorowych [Mathcad]

gook 20 Cze 2008 09:01 2500 1
REKLAMA
  • #1 5267127
    gook
    Poziom 11  
    Witam , potrzebuje filtru medianowego dla obrazów kolorowych najlepiej w formacie Mathcad'a. Proszę o odpowiedź czy ktoś takowy plik posaida.
  • REKLAMA
  • #2 5292891
    shg
    Poziom 35  
    Nie mam, ale mogę podpowiedzieć, jak zrobić.
    Zakładam że obraz przechowywany jest w trzech macierzach o identycznych rozmiarach, odpowiednio dla każdej składowej R, G i B. Można też inaczej, np. trójelementowy wektor macierzy, czy jedna macierz z wektorami RGB.
    Na początek trzeba stworzyć macierze w których przechowywany będzie obraz przetworzony, rozmiary takie same jak źródła.
    Potem w pętli dla każdej z macierzy R, G i B "wyciągasz" sobie "podmacierz" (funkcja submatrix()) z macierzy źródłowej. Powinna ona wyglądać tak, że jej środkowym elementem jest aktualnie przetwarzany punkt i do tego jeszcze punkty go otaczające. Przetwarzasz kolejne punkty, obojętnie, czy wierszami, czy kolumnami.
    Problemem jest praca przy krawędziach, trzeba wtedy ograniczyć zakres z którego będzie wycinana "podmacierz" do współrzędnych obrazu.
    Nie pamiętam, czy MathCAD posiada jakąś funkcję sortowania macierzy, jeżeli tak, to należy jej użyć, jeżeli nie, to napisać własną i przy jej pomocy posortować podmacierz, z której następnie pobiera się środkowy punkt i wkleja do macierzy docelowej.

    Co do samej idei wygląda to tak, jakbyś przesuwał prostokąt (najczęściej kwadrat) o rozmiarach większych niż 1x1 nad każdym punktem obrazu źródłowego, liczył medianę ze wszystkich punktów znajdujących się wewnątrz prostokąta i wartość tej mediany wstawiał w obraz docelowy w punt o współrzędnych takich jak pozycja środka prostokąta w obrazie źródłowym.
REKLAMA