wprowadzenie do przetwarzania obrazówrmantiuk.zut.edu.pl/data/wyklad_przetwarzanie_obrazow.pdf ·...
TRANSCRIPT
Przetwarzanie obrazów
Wprowadzenie do przetwarzania obrazów Radosław Mantiuk
Zakład Grafiki Komputerowej
Wydział Informatyki Politechnika Szczecińska
Maj 2008
All Images in this presentation are the courtesy of Richard Alan Peters
Przetwarzanie obrazów
Histogram (1)
Image is a courtesy of Richard Alan Peters
niezależne histogramy dla wszystkich kanałów koloru
Przetwarzanie obrazów
Histogram (2)
liczba pikseli o danej wartości (poziomie szarości)
Przetwarzanie obrazów
Histogram (3)
Image is a courtesy of Richard Alan Peters
wartość pikseli (ang. bins)
liczba pikseli o danej wartości
Przetwarzanie obrazów
Histogram (4)
Image is a courtesy of Richard Alan Peters
// input data:!image[] - data of an input image (one 8-bit channel)!width, height - dimensions of an image!!// clear bins!for( i = 0; i < 256; i++ )!
!hist[i] = 0;!!// count frequencies!for( i = 0; i < width*height; i++ ) {!!
!hist[ image[i] ]++; !!!}!!return hist[]
Pseudokod programu obliczającego dane histogramu.
Przetwarzanie obrazów
Przetwarzanie pikseli (ang. Point processing) Przetwarzanie pikseli polega na zmianie wartości koloru dla poszczególnych pikseli
obrazu. Każdy piksel przetwarzany jest przez tą samą funkcję.
Przetwarzanie obrazów
Przetwarzanie pikseli - Przykłady Przykłady przetworzonych obrazów
Image is a courtesy of Richard Alan Peters
Przetwarzanie obrazów
Tablice LUT (Look-up Tables) (1) Szybkie przetwarzanie pikseli.
Przetwarzanie obrazów
Tablice LUT (Look-up Tables) (2) Piksel może mieć 256 wartości dla każdego kanału koloru.
Przetwarzanie obrazów
Zwiększenie brightness Dodanie wartości większej od 0 do każdego piksela.
Przetwarzanie obrazów
Zmniejszenie brightness Odjęcie wartości większej od 0 do każdego piksela.
Przetwarzanie obrazów
Zwiększenie kontrastu ! Zwiększenie wartości jasnych pikseli i zmniejszenie wartości dla ciemnych.
Przetwarzanie obrazów
Zmniejszenie kontrastu
Przetwarzanie obrazów
Funcje PDF i CDF Prawdopodobieństwo, że losowo wybrany piksel ma wartość g.
liczba pikseli o wartości g (odczytana z histogramu)
liczba pikseli w obrazie
Funcja CDF (ang. Cumulative Distribution Function)
Prawdopodobieństwo, że losowo wybrany piksel ma wartość mniejszą lub równą g.
€
p(g) =1A⋅ h(g)
€
A = h(gi)i= 0
N
∑
€
CDF(g) = h(gi)i= 0
g
∑
PDF (ang. Probability Density Function) - prawdopodobieństwo dla danego przedziału
Przetwarzanie obrazów
Wyrównanie histogramu (ang. histogram equalization) Zmiana wartości pikseli tak, aby histogram był poziomy (wszystkie
poziomy szarości występowały jednakową liczbę razy)
Zamiana każdego piksela na CDF dla tego piksela.
€
J(r,c) = 255 ⋅ CDF(I(r,c))A
Przetwarzanie obrazów
Wyrównanie histogramu (ang. histogram equalization) Podkreślenie szczegółów w obrazie.
Przetwarzanie obrazów
Dopasowanie histogramu (ang. histogram matching) Zmiana histogramu danego obrazu tak, aby jak najlepiej pasował on
do histogramu innego obrazu.
ang. percentile - wartość piksela, dla której określony procent pikseli ma wartość mniejszą (np. 20 percentil oznacza taką wartość piksela, że 20% pikseli w obrazie ma wartość mniejszą od tej wartości)
Przetwarzanie obrazów
Dopasowanie histogramu (ang. histogram matching)
Przetwarzanie obrazów
Dopasowanie histogramu (ang. histogram matching)
Przetwarzanie obrazów
Dopasowanie histogramu (ang. histogram matching)
Przetwarzanie obrazów
Splot (ang. convolution)
Wykorzystanie splotu:
Przetwarzanie obrazów
Transformacja ruchomego okna (ang. moving window transform)
Dla każdego piksela obrazu wykonanie splotu z maską filtra.
Przetwarzanie obrazów
Rozmycie obrazu - filtr dolnoprzepustowy
Przetwarzanie obrazów
Rozmycie obrazu - filtr dolnoprzepustowy
Przetwarzanie obrazów
Rozmycie obrazu - filtr dolnoprzepustowy
Przetwarzanie obrazów
Rozmycie obrazu - filtr dolnoprzepustowy
Przetwarzanie obrazów
Wykrywanie krawędzi
Przetwarzanie obrazów
Wykrywanie krawędzi
Wertykalnie
Przetwarzanie obrazów
Wykrywanie krawędzi
Horyzontalnie
Przetwarzanie obrazów
Wykrywanie krawędzi
Wertykalnie + horyzontalnie
Przetwarzanie obrazów
Wykrywanie krawędzi
Diagonalnie
Przetwarzanie obrazów
W dziedzinie częstotliwości splot jest iloczynem funkcji.
Splot w dziedzinie częstotliwości
splot w dziedzinie obrazu (całkowanie)
Przetwarzanie obrazów
Filtr dolnoprzepustowy Maska idealnego filtru dolnoprzepustowego
Przetwarzanie obrazów
Filtr górnoprzepustowy Maska idelanego filtru górnoprzepustowego
Przetwarzanie obrazów
Funkcja Gaussa Wykorzystywana do tworzenia masek filtrów
Przetwarzanie obrazów
Funkcja Gaussa - Filtr dolnoprzepustowy
Przetwarzanie obrazów
Funkcja Gaussa - Filtry Brak artefaktów
Przetwarzanie obrazów
Porównanie filtrów
Filtry idealne
Przetwarzanie obrazów
Porównanie filtrów
Filtry gaussowskie
Przetwarzanie obrazów
Band Pass Filter
Filtrowanie wybranego zakres częstotliwości
Przetwarzanie obrazów
Szum (ang. noise)
Szum skorelowany z obrazem: • interferencja elektryczna, • interferencja z sensorem, • pasma moire'a. Szum nieskorelowany: • błędy sensora, • błąd kwantyzacji, • szum na siatkówce, • halftoning.
obraz obraz idealny szum
Przetwarzanie obrazów
Szum nieskorelowany - losowy
Przetwarzanie obrazów
Szum nieskorelowany - Szum Gaussa
Przetwarzanie obrazów
Szum nieskorelowany - Szum jednorodny
Przetwarzanie obrazów
Obraz zaszumiony szumem Gaussa
Przetwarzanie obrazów
Reprezentacja częstotliwościowa
obraz idealny obraz zaszumiony
Przetwarzanie obrazów
Redukcja szumu
obraz rozmyty obraz z zamaskowanym szumem
Przetwarzanie obrazów
PSF (ang. Point Spread Function)
Splot obrazu z funkcja PSF (ang. Point Spread Function ) (OTF (ang.Optical Transfer Function) )
Przetwarzanie obrazów
Szum skorelowany - Periodyczny
Przetwarzanie obrazów
Redukcja szumu periodycznego
obraz idealny obraz zaszumiony
maskowanie na zaszumionym obrazie
Przetwarzanie obrazów
Redukcja szumu periodycznego
Przetwarzanie obrazów
Szum na obrazach po skanowaniu (ang. halftoning)
Przetwarzanie obrazów
Redukcja szumu - Filtr Gauss'a
Przetwarzanie obrazów
Redukcja szumu - Filtr Gauss'a
Przetwarzanie obrazów
Filtr bilateralny (ang. bilateral filtering) Rozmycie obrazu
*
*
*
obraz wejściowy obraz wyjściowy
Stały kernel
Przetwarzanie obrazów
Filtr bilateralny (ang. bilateral filtering)
*
*
*
obraz wejściowy obraz wyjściowy
Kształt kernela zależy od kontentu obrazu.
Przetwarzanie obrazów
Filtr bilateralny (ang. bilateral filtering) Filtr nieliniowy wygładzający obraz z zachowaniem krawędzi. Jasność piksela zastępowana jest sumą ważoną jasności otoczenia tego piksela. Wagi zależą od odległości od piksela oraz od różnicy jasności między pikselami z otoczenia.
waga przestrzenna (space)
waga jasności (range) I
współ. normalizujący
( ) ( )∑∈
−−=S
IIIGGW
IBFq
qqpp
p qp ||||||1][rs σσ
Przetwarzanie obrazów
Filtr bilateralny (ang. bilateral filtering)
σs = 2
σs = 6
σs = 18
σr = 0.1 σr = 0.25 σr = ∞
(Gaussian blur)
Przetwarzanie obrazów
Filtr bilateralny (ang. bilateral filtering) function Y = bilateral_fast( X, sigma_s, sigma_r ) % Fast bilateral filter % Y = bilateral_fast( X, sigma_s, sigma_r ) % sigma_s - space (2% of image diagonal) % sigma_r - range (mean or median of image gradients) if ~exist( 'sigma_s', 'var' ) sigma_s = 2; end if ~exist( 'sigma_r', 'var' ) sigma_r = 0.1; end n=6; % number of layers min_x = min(X(:)); max_x = max(X(:)); r = linspace( min_x, max_x, n ); L = zeros( n, numel( X ) ); for i=1:n D = exp(-(X - r(i)).^2/(2*sigma_r^2)); K = blur_gaussian( D, sigma_s ); Ls = blur_gaussian( X.*D, sigma_s ); L(i,:) = Ls(:)./K(:); end
% interpolate ind_r = clamp((X(:)-min_x)/(max_x-min_x)*(n-1)+1, 1, n); ind_down = floor(ind_r); ind_up = ceil(ind_r); ind_fix = (0:n:((numel(X)-1)*n))'; ind_up = ind_up + ind_fix; ind_down = ind_down + ind_fix; ratio = mod( ind_r, 1 ); Y = zeros( size(X) ); Y(:) = L(ind_up).*ratio + L(ind_down).*(1-ratio); end function Y = clamp( X, min, max ) Y = X; Y(X<min) = min; Y(X>max) = max; end
Przetwarzanie obrazów
Unsharp masking Wyostrzanie obrazu za pomocą jego rozmytej wersji (unsharp mask). Generuje iluzję typu Cornsweet.
Od obrazu odejmowana jest jego rozmyta i przeskalowana wersja. W rezultacie w pobliżu krawędzi pojawia się efekt Cornsweet. Rozmyty obraz odejmowany jest selektywnie, w zależności od tego czy różnica wartości piksela oryginału i obrazu rozmytego jest wystarczająca.
Przetwarzanie obrazów
Unsharp masking
imsharpening