Friday 3 November 2017

Przenoszenie średnio w matlab


Prostym (doraźnym) sposobem jest po prostu wziąć średnią ważoną (przestrajaną przez alfa) w każdym punkcie z sąsiadami: lub jej odmianą. Tak, aby być bardziej wyrafinowanym, możesz najpierw przekształcić dane, a następnie odciąć wysokie częstotliwości. Coś takiego: wycina najwyższe 20 częstotliwości. Zachowaj ostrożność, aby je wyciąć symetrycznie, w przeciwnym razie przekształcenie odwrotne nie jest już rzeczywiste. Musisz dokładnie wybrać częstotliwość odcięcia dla odpowiedniego poziomu wygładzania. Jest to bardzo prosty rodzaj filtrowania (filtrowanie w dziedzinie częstotliwości w dziedzinie częstotliwości), więc możesz spróbować łagodnie tłumić wysokie częstotliwości rzędu, jeśli zniekształcenie jest nie do przyjęcia. odpowiedziało 4 października 09 o 9:16 FFT nie jest złym pomysłem, ale jego prawdopodobnie przesada tutaj. Uruchamianie lub przesuwanie średnich daje ogólnie słabe wyniki i powinno się ich unikać na cokolwiek oprócz późnej pracy domowej (i białego szumu). Używam filtrowania Savitzky'ego-Golay (w Matlab sgolayfilt (.)). Daje to najlepsze wyniki, czego szukasz - niektóre lokalne wygładzanie przy zachowaniu kształtu krzywej. Ten samouczek omawia sposób użycia MATLAB do przetwarzania obrazu. Przyjmuje się pewną znajomość MATLAB (powinieneś wiedzieć, jak używać macierzy i pisać plik M). Pomocne jest posiadanie narzędzia MATLAB Image Processing Toolbox, ale na szczęście do większości operacji nie są potrzebne skrzynki narzędziowe. Polecenia wymagające narzędzia Image Toolbox są oznaczone przybornikiem obrazu. Reprezentacja obrazu W programie MATLAB dostępnych jest pięć typów obrazów. Skala szarości. Obraz w skali szarości M pikseli wysokości i N pikseli szerokości jest reprezentowany jako macierz podwójnego typu danych o rozmiarze MN. Wartości elementów (np. MyImage (m, n)) oznaczają piksele w skali szarości w 0,1 przy 0 kolorach i 1 kolorze białym. Truecolor RGB. Prawdziwy obraz czerwono-zielono-niebieski (RGB) jest reprezentowany jako trójwymiarowa podwójna macierz M N3. Każdy piksel ma czerwone, zielone i niebieskie elementy wzdłuż trzeciego wymiaru z wartościami w skali 0,1, na przykład komponenty kolorów piksela (m, n) to Moje obrazki (m, n, 1) czerwone, Moje obrazki (m, n, 2) zielony, MyImage (m, n, 3) niebieski. Indeksowane. Indeksowane (z paletą) obrazy są reprezentowane przez macierz indeksu wielkości M N i matrycę kolorów o wielkości K 3. Barwista przechowuje wszystkie kolory używane w obrazie, a matryca indeksu reprezentuje piksele, odnosząc się do kolorów w mapie kolorów. Na przykład, jeśli 22-ty kolor to magenta MyColormap (22, :) 1,0,1. następnie MyImage (m, n) 22 jest pikselem w kolorze magenta. Binarny. Obraz binarny jest reprezentowany przez macierz logiczną M N, gdzie wartości pikseli wynoszą 1 (prawda) lub 0 (fałsz).uint8. Ten typ wykorzystuje mniej pamięci, a niektóre operacje są obliczane szybciej niż w przypadku podwójnych typów. Dla uproszczenia ten samouczek nie omawia dalej uint8. Skala szarości jest zazwyczaj preferowanym formatem przetwarzania obrazu. W przypadkach wymagających koloru, kolorowy obraz RGB może zostać rozłożony i potraktowany jako trzy osobne obrazy w skali szarości. Zindeksowane obrazy muszą zostać przekonwertowane na skalę szarości lub RGB dla większości operacji. Poniżej przedstawiono niektóre typowe manipulacje i konwersje. Kilka poleceń wymaga narzędzia Image Toolbox i jest oznaczone przybornikiem Image Toolbox. Czytanie i zapisywanie plików graficznych MATLAB może odczytywać i zapisywać obrazy za pomocą poleceń imread i imwrite. Mimo że obsługiwana jest duża liczba formatów plików, niektóre nie. Użyj imformatów, aby zobaczyć, co obsługuje twoja instalacja: Podczas odczytu obrazów niefortunnym problemem jest to, że imread zwraca dane obrazu w typie uint8, które muszą zostać przekonwertowane na podwójne i przeskalowane przed użyciem. Dlatego zamiast bezpośrednio wywoływać funkcję imread, używam następującej funkcji M-pliku do odczytu i konwersji obrazów: Kliknij prawym przyciskiem myszy i zapisz getimage. m, aby użyć tej funkcji M. Jeśli obraz baboon. png znajduje się w bieżącym katalogu (lub gdzieś w ścieżce wyszukiwania MATLAB), możesz go odczytać za pomocą funkcji MyImage getimage (baboon. png). Możesz także użyć ścieżek częściowych, na przykład jeśli obraz jest w bieżącym katalogu gtimages z getimage (imagesbaboon. png). Aby napisać obraz w skali szarości lub RGB, używaj Uważaj, że MyImage jest podwójną macierzą z elementami o nieprawidłowym skalowaniu 0.1if, zapisany plik prawdopodobnie pozostanie pusty. Podczas pisania plików graficznych bardzo polecam używanie formatu pliku PNG. Ten format jest niezawodny, ponieważ jest bezstratny, obsługuje truecolor RGB i kompresuje całkiem nieźle. Korzystaj z innych formatów z rozwagą. Podstawowe operacje Poniżej przedstawiono podstawowe operacje na obrazie w skali szarości u. Polecenia wymagające narzędzia Image Toolbox są oznaczone przybornikiem obrazu. (Uwaga: dla dowolnej tablicy składnia u (:) oznacza rozwinięcie u do wektora kolumnowego, np. Jeśli u 1,50,2, to u (:) wynosi 1052.) Na przykład moc sygnału obrazu jest używana w stosunek sygnału do szumu (SNR) i szczytowy stosunek sygnału do szumu (PSNR). Biorąc pod uwagę czysty obraz zanieczyszczony i zanieczyszczony hałasem u Należy zachować ostrożność przy normie. zachowanie jest normą (v) na wektorach v oblicza sqrt (suma (v.2)). ale norma (A) na macierzy A oblicza indukowaną normę macierzy L2, więc norma (A) na pewno nie jest sqrt (suma (A (:) .2)). Łatwo jest jednak użyć normy (A), gdzie powinna być normą (A (:)). Filtry liniowe Filtrowanie liniowe jest podstawową techniką przetwarzania sygnałów. Aby krótko przedstawić, filtr liniowy jest operacją, w której przy każdym pikselach x m, n obrazu, funkcja liniowa jest oceniana na pikselu i jej sąsiadach w celu obliczenia nowej wartości pikselowej y m, n. Filtr liniowy w dwóch wymiarach ma ogólną postać, w której x jest wejściem, y jest wyjściem, a h jest odpowiedzią impulsową filtra. Różne wybory h prowadzą do filtrów, które wygładzają, wyostrzają i wykrywają krawędzie, by wymienić tylko kilka zastosowań. Prawa strona powyższego równania jest zwięzła jako h x i nazywana jest splotem h i x. Filtrowanie w domenie przestrzennej W MATLAB z konw .2 zaimplementowano dwuwymiarowe filtrowanie liniowe. Niestety, conv2 może obsługiwać filtrowanie w pobliżu granic obrazu przez zerowe wypełnianie, co oznacza, że ​​wyniki filtrowania są zazwyczaj nieodpowiednie dla pikseli w pobliżu granicy. Aby obejść ten problem, możemy wstawić obraz wejściowy i użyć poprawnej opcji podczas wywoływania conv2. Następująca funkcja M to robi. Kliknij prawym przyciskiem myszy i zapisz conv2padded. m, aby użyć tej funkcji M. Oto kilka przykładów: Mówi się, że filtr 2D h ma być rozdzielny, jeśli można go wyrazić jako zewnętrzny produkt dwóch filtrów 1 i 1 h1 i h2. to znaczy h h1 (:) h2 (:). Szybciej jest przechodzić h1 i h2 niż h. jak to jest zrobione powyżej dla okna średniej ruchomej i filtra gaussowskiego. W rzeczywistości, filtry Sobel hx i hy są również separowalne, co to jest filtrowanie w domenie hier i h2. Filtrowanie w domenie przestrzennej z conv2 jest z łatwością kosztowną operacją. W przypadku filtra KK na obrazie MN, konw. Kosztuje dodatki i multiplikacje O (MNK 2) lub O (N 4) z założeniem M N K. W przypadku dużych filtrów filtrowanie w domenie Fouriera jest szybsze, ponieważ koszt obliczeniowy jest zredukowany do O (N 2 log N). Używając właściwości multiplikacji splotu transformaty Fouriera, splot jest obliczany równoważnie przez Wynik jest równoważny conv2padded (x, h) z wyjątkiem blisko granicy, gdzie powyższe obliczenia wykorzystują okresowe rozszerzenie granicy. Filtrowanie oparte na fourierach może być również wykonane z symetrycznym rozszerzeniem granicznym, odzwierciedlając dane wejściowe w każdym kierunku: (Uwaga: jeszcze bardziej wydajną metodą jest filtrowanie nakładające się na FFT. Monitorowanie przetwarzania sygnału implementuje nakładanie FFT w jednym wymiarze w widoku zfft .) Filtry nieliniowe Filtr nieliniowy to operacja, w której każdy filtrowany piksel ym, n jest nieliniową funkcją xm, n i jej sąsiadów. Poniżej krótko omówimy kilka rodzajów nieliniowych filtrów. Zamawianie filtrów statystycznych Jeśli posiadasz Przybornik Obrazu, możesz uporządkować filtry statystyczne za pomocą ordfilt2 i medfilt2. Filtr statystyk zamówień sortuje wartości pikseli w sąsiedztwie i wybiera k-tą największą wartość. Filtry min, max i mediany są przypadkami specjalnymi. Filtry morfologiczne Jeśli masz Przybornik Obrazu, bwmorph realizuje różne operacje morfologiczne na obrazach binarnych, takich jak erozja, poszerzenie, otwieranie, zamykanie i szkielet. Dostępne są również polecenia dotyczące morfologii obrazów w skali szarości: imerode. imdilate i imtophat. pośród innych. Zbuduj własny filtr Czasami chcemy użyć nowego filtra, którego MATLAB nie ma. Poniższy kod jest szablonem do implementacji filtrów. (Uwaga: częstym błędnym stwierdzeniem jest to, że pętle w MATLAB są powolne i należy ich unikać. To było kiedyś prawdziwe, z powrotem w MATLAB 5 i wcześniejszych, ale pętle we współczesnych wersjach są dość szybkie.) Na przykład, średni filtr z przycięciem alfa ignoruje d 2 najniższe i d 2 najwyższe wartości w oknie i uśrednia pozostałe (2 r 1) 2 d wartości. Filtr stanowi równowagę pomiędzy filtrem medianowym a filtrem średnim. Średni filtr w formacie alfa może być zaimplementowany w szablonie. Jak w innym przykładzie, filtr dwustronny toSlideshare używa plików cookie w celu poprawy funkcjonalności i wydajności oraz zapewnienia odpowiednich reklam. Kontynuując przeglądanie witryny, zgadzasz się na wykorzystanie plików cookie w tej witrynie. Zobacz naszą Umowę użytkownika i Politykę prywatności. Slideshare wykorzystuje pliki cookie w celu poprawy funkcjonalności i wydajności oraz zapewnienia odpowiednich reklam. Kontynuując przeglądanie witryny, zgadzasz się na wykorzystanie plików cookie w tej witrynie. Aby uzyskać szczegółowe informacje, zapoznaj się z naszą Polityką prywatności i umową użytkownika. Odkryj wszystkie swoje ulubione tematy w aplikacji SlideShare Pobierz aplikację SlideShare na Zapisz na później, nawet w trybie offline Przejdź do strony mobilnej Prześlij Zaloguj się Zarejestruj się Kliknij dwukrotnie, aby pomniejszyć Podstawowe programy Matlab Udostępnij to SlideShare LinkedIn Corporation kopia 2017

No comments:

Post a Comment