Rozpoznawanie obrazów za pomocą funkcji korelacji.
Transkrypt
Rozpoznawanie obrazów za pomocą funkcji korelacji.
Rozpoznawanie obrazów za pomocą funkcji korelacji. Literatura: GNIADEK K. „OPTYCZNE PRZETWARZANIE INFORMACJI” Pytanie kontrolne: Co to jest funkcja korekacji? Wczytujemy "jakiś" obraz. bw = imread('text.tif'); Uwaga: ten obrazek jest czarno-biały i w negatywie; chodziło o to, żeby wysokie wartości liczbowe były w miejscu, gdzie jest napis, a w Matlabie biały kolor to 255, a czarny 0; istotne jest również, że wymiar obrazka to 256 na 256 pikseli. Wyświetlamy obrazek: figure(1); imagesc(bw); bierzemy z obrazka fragmęt, który będziemy usiłowali rozpoznać (można użyć funkcji "imcrop") a=bw(49:71,110:120); %wybieramy fragmęt rysunku = jedną literę. Pokazujemy wybór: Figure(2);imagesc(a) Wybrana została litera "a". Obrazek ten obracamy o 1800 poprzez dwukrotny obrót o 900: a = rot90(a,2); co wynika z faktu, że funkcja korelacji nie jest zwykłym splotem: splot = x(t ) ⊗ y (t ) = ∫ x(τ ) y(t − τ )dτ Tylko splotem funkcji „obróconej”: korelacja = x(t ) ⊗ y (− t ) = ∫ x(τ ) y(τ − t )dτ Obliczamy teraz: C = real(ifft2(fft2(bw) .* fft2(a,256,256))); Uwagi: w powyższym wyrażeniu obliczono transformatę Fouriera z całego obrazka "bw" oraz ransformatę z literki "a"; w tym drugim przypadku obrazek literki został uzupełniony zerami tak, aby miał wymiar 256x256 pikseli – w ten sposób obie transformaty mają ten sam wymiar i można je pomnożyć; po wymnożeniu (tablicowym, a nie macierzowym) bierzemy odwrotną transformatę, a później jej część rzeczywistą. Wyświetlamy wynik: imagesc(C) Szukamy maksimum w tablicy C tzn. maksimum funkcki korelacji: ma = max(C(:)) Wyświetlamy te piksele, dla których funkcja korelacji przewyższa arbitralnie ustaloną wartość 90% wartości maksymalnej: imagesc(C > 0.9*ma) W tych miejscach zostały znalezione literki "a". Tak naprawdę została również znaleziona literka "ą". Sprawozdanie powinno zawierać: 1.Wykonanie powyższego przykładu, 2.wykonanie własnego przykładu (tzn. wykonanie poyzszech czynnosci własnym zbiorze wejściowym) 3.zbadanie „jakości rozpoznawania” dla różnych wartości progu, - pomocne może być dokładniejsze zbadanie funkcji korelacji przez wykonanie różnych wykresów tej funckji.