Monday 4 December 2017

Przenoszenie średnio 2d matlab


Jest to bardzo dobry plik funkcji dostępny na Matlab Central File Exchange. Ten plik funkcji jest wektoryzowany, a więc bardzo szybki. Dodatkowo, w porównaniu do funkcji, o której mowa w odpowiedzi na pytanie o Aioobes, ta funkcja nie korzysta z funkcji accumarray, dlatego jest to nawet kompatybilne ze starszymi wersjami Matlaba. Działa również na tablice komórek oraz tablice numeryczne. ROZWIĄZANIE. Możesz użyć tej funkcji w połączeniu z wbudowaną funkcją matlab, unikalną. occurancecount będzie tablicą numeryczną o tym samym rozmiarze co unikatowy (M), a różne wartości tablicy occurancecount będą odpowiadać liczbie odpowiadających sobie wartości (ten sam indeks) w unikalnym (M). Odpowiedź 29 września 11 o 10:37 byłoby to idealne, ponieważ robimy operację na macierzy, a odpowiedź powinna być pojedynczym numerem odpowiedź 27 czerwca 13 o 15:37 Użyj nnz zamiast sumy. Nie ma potrzeby podwójnego wywołania, aby zwinąć matryce do wektorów i jest to prawdopodobnie szybciej niż suma. odpowiedz 31 sierpnia 15 o 21:08 Twoja wymiana stosów odpowiedzi 2017, Inc 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 obustronny to Zaawansowany kod źródłowy. Com. Kliknij tutaj, aby pobrać. Tęczówka każdego oka jest wyjątkowa. Żadne dwa irysy nie są podobne pod względem matematycznym - nawet między identycznymi bliźniętami i trojaczkami lub między własnymi oczami lewymi i prawymi. Jednak w przeciwieństwie do siatkówki, jest wyraźnie widoczny z dużej odległości, umożliwiając łatwe pozyskiwanie obrazu bez ingerencji. Tęczówka pozostaje stabilna przez całe życie, z wyjątkiem rzadkich chorób lub urazów. Losowe wzory tęczówki są równoważne złożonemu kwantowemu kodowi kresowemu, utworzonemu przez splątaną siatkę tkanki łącznej i inne widoczne cechy. Proces rozpoznawania tęczówki rozpoczyna się od akwizycji obrazu wideo, która lokalizuje oko i tęczówkę. Granice źrenicy i tęczówki są określone, zatkanie powieki i odbicie odbicia są zdyskontowane, a jakość obrazu jest określana do przetwarzania. Wzorzec tęczówki jest przetwarzany i kodowany do rekordu (lub kwadratu), który jest przechowywany i wykorzystywany do rozpoznawania, gdy dla porównania przedstawiono przesłonę na żywo. Połowa informacji w zapisie cyfrowo opisuje cechy tęczówki, druga połowa rekordu kontroluje porównanie, eliminując odbicia lustrzane, opadanie powiek, rzęsy itp. System biometryczny zapewnia automatyczną identyfikację osoby w oparciu o unikalną cechę lub cecha posiadana przez jednostkę. Rozpoznawanie tęczówki uważane jest za najbardziej wiarygodny i dokładny system identyfikacji biometrycznej. Większość komercyjnych systemów rozpoznawania tęczówki wykorzystuje opatentowane algorytmy opracowane przez Daugman, a algorytmy te są w stanie uzyskać doskonałe współczynniki rozpoznawania. Opublikowane wyniki zostały jednak zwykle wyprodukowane na korzystnych warunkach i nie przeprowadzono niezależnych badań tej technologii. System rozpoznawania tęczówki składa się z automatycznego systemu segmentacji opartego na transformacie Hough'a i jest w stanie zlokalizować okrągłe tęczówki i okolice źrenic, zamykając powieki i rzęsy oraz odbicia. Wyekstrahowany region tęczówki został następnie znormalizowany do prostokątnego bloku o stałych wymiarach, aby uwzględnić niespójności obrazowania. Na koniec dane fazowe z filtrów 1D Log-Gabor zostały wyodrębnione i skwantyzowane do czterech poziomów, aby zakodować unikalny wzór tęczówki w szablon biometryczny w postaci bitowej. Odległość Hamminga została zastosowana do klasyfikacji szablonów tęczówki, a dwa szablony okazały się pasować, jeśli test niezależności statystycznej nie powiodł się. System wykonano z doskonałym rozpoznaniem na zbiorze 75 obrazów oczu, jednak testy na innym zestawie 624 obrazków dały fałszywe wyniki akceptacji i fałszywych odrzuceń odpowiednio 0,005 i 0,238. W związku z tym uznaje się, że rozpoznawanie tęczówki jest niezawodną i dokładną technologią biometryczną. Warunki indeksu: irys, rozpoznawanie, weryfikacja, gabor, rozpoznawanie oka, dopasowywanie, weryfikacja. Rysunek 1. Obraz tęczówki Prosty i skuteczny kod źródłowy do rozpoznawania tęczówki. Kod ten opiera się na doskonałej implementacji Libor Maseks dostępnej tutaj. Libor Masek, Peter Kovesi. Kod źródłowy MATLAB dla biometrycznego systemu identyfikacji opartego na wzorach irysowych. Szkoła Informatyki i Inżynierii Oprogramowania, University of Western Australia, 2003. Nasza implementacja może przyspieszyć proces rozpoznawania skracając czas realizacji programu o około 94 (ponad 16 razy szybciej). Dalsze optymalizacje są dostępne na żądanie. Wszystkie testy przeprowadzono z bazą danych CASIA Iris Image Database dostępną pod adresem cbsr. ia. ac. cnIrisDatabase. htm.

No comments:

Post a Comment