Wprowadzenie do przetwarzania obrazówrmantiuk.zut.edu.pl/data/wyklad_przetwarzanie_obrazow.pdf ·...

Post on 11-Aug-2020

5 views 0 download

Transcript of Wprowadzenie do przetwarzania obrazówrmantiuk.zut.edu.pl/data/wyklad_przetwarzanie_obrazow.pdf ·...

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