background image

Digital Image 

Processing

Lecture 3:

 

Contrast Transformation &

Image Binarization

Profesor 

Valery Starovoitov

background image

2

Rozszerzanie zakresu jasności

(Contrast stretching)

W obrazach, których zakres jasności nie zajmuje całej skali 
dostępnej dla obrazu, można przez odpowiednią transformację 
skorygować i równocześnie zwiększyć kontrast. Rozszerzenie 
zakresu jasności omówimy jako przykład operacji liniowej 
opisanej wzorem (2.4). Niech zakres jasności wykorzystywany 
przez obraz zawiera się pomiędzy Jmin i Jmax. Wtedy operacja 
liniowego rozszerzania jasności na cały zakres jasności  [0, 255] 
wyraża się wzorem:

                                                      dla  J

min

 < J(xy) <J

max

    (2.15)

)

)

,

(

(

255

)

,

(

min

min

max

J

y

x

J

J

J

y

x

J

w

background image

3

background image

4

Obraz po operacji wyrównywania histogramu

Obraz po operacji 
liniowego rozszerzania 
jasności 

background image

5

Piecewise-Linear Contrast 

Stretching

To increase the dynamic range of the gray 

levels in the image being processed.

background image

6

Gray-Level Slicing

• To highlight a specific range of gray levels 

in an image (e.g. to enhance certain 
features).

One way is to display 
a high value for all 
gray levels in the 
range of interest and 
a low value for all 
other gray levels 
(binary image).

background image

7

Gray-Level Slicing

– The second approach is to brighten the desired 

range of gray levels but preserve the 
background and gray-level tonalities in the 
image:

background image

8

Image Enhancement in the Spatial 

Domain

background image

9

Bit-Plane Slicing

    To highlight the contribution made to the total 

image appearance by specific bits.

– i.e. Assuming that each pixel is represented by 

8 bits, the image is composed of 8 1-bit planes.

– Plane 0 contains the least significant bit and 

plane 7 contains the most significant bit.

background image

10

Bit-Plane Slicing

 More on bit planes:

– Only the higher order bits (top four) contain 

visually significant data.  The other bit planes 
contribute the more subtle details.

– Plane 7 corresponds exactly with an image 

thresholded at gray level 128.

background image

11

background image

12

background image

13

Towards binarization

background image

14

Progowanie obrazu

Jednym z podstawowych zadań analizy obrazu jest segmentacja, czyli podział obrazu 

na obszary spełniające pewne kryterium jednorodności. Mówiąc inaczej, pojęcie 

obszaru jest używane do określenia spójnej grupy punktów obrazu mających 

dodatkowo pewną wspólną cechę, która nie występuje poza najbliższym sąsiedztwem.

Jedną z najprostszych metod wydzielania obszarów jest progowanie. Polega ono na 

porównywaniu wartości każdego  punktu obrazu z zadaną wartością progową. 

Odpowiedni wybór wartości progowej umożliwia wyodrębnienie obszarów określonego 

typu. Powstało kilka wersji metody wyodrębniania obszarów przez progowanie. 

Metoda najprostsza stosuje jedną wartość progu i jest realizowana według zależności 

t

y

x

J

t

y

x

J

y

x

J

w

)

,

(

    

;

0

)

,

(

    

;

1

)

,

(

(2.16)      gdzie t - próg 
binaryzacji.

background image

15

Specjalny przypadek transformacji

 

.

)

,

(

   

          

,

0

)

,

(

    

,

)

,

(

)

,

(

t

y

x

J

t

y

x

J

y

x

J

y

x

J

w

t

y

x

J

t

y

x

J

t

t

y

x

J

y

x

J

w

2

2

1

1

)

,

(

     

,

0

)

,

(

      

,

1

)

,

(

     

,

0

)

,

(

Progowanie jest prostą i szybką operacją.

 

background image

16

Metody progowania globalnego

 Wybór optymalnego progu 

podczas przetwarzania 

obrazów jest ważny i trudny. 

 Prostą metodą jest określanie 

progu na podstawie 

histogramu poziomów jasności 

obrazu. Jeżeli histogram będzie 

miał rozkład bimodalny, to jako 

próg wybiera się takie miejsce, 

któremu odpowiada minimum 

między pikami histogramu. 

 Przy użyciu takiego progu treść 

obrazu zostanie podzielona na 

dwie klasy - obiekty 

i tło (rys. 2.12). 

 Metody tej nie używa się do 

znajdowania więcej niż dwóch 

progów, nawet jeśli jest więcej 

pików w histogramie.

Przykładowy histogram bimodalny 

background image

17

Binarizatio
n

background image

18

background image

19

background image

20

 

Wyżej opisane podejście można również zrealizować 

w wersji iteracyjnej. Wtedy schemat postępowania dla 

rozkładu bimodalnego może być następujący:

1. Przyjmij początkową wartość progu  t.

2. Oblicz średnią wartość czerni  tcz  wszystkich pikseli poniżej 

progu  t.

3. Oblicz średnią wartość bieli  tb  wszystkich pikseli powyżej 

progu  t.

4. Oblicz nową wartość progu

5. Powtarzaj obliczenia aż   przestanie się zmieniać.

2

b

cz

t

t

t

background image

21

Wyznaczanie progu na podstawie 

prostej statystyki obrazu

Zakładamy, że treść analizowanego obrazu można podzielić na 
dwie klasy – obiekty i tło. Do wyznaczenia progu skorzystamy z 
pewnej statystyki, która nie wymaga konstruowania histogramu. 
Algorytm obliczania progu składa się z następujących kroków:
Wyznaczyć moduł gradientu jasności dla każdego punktu obrazu
G(x,y)  =  max {|Gx(x,y)|, |Gy(x,y)|},
gdzie:  Gx(x,y)  =  J(x+1,y) – J(x-1,y),
Gy(x,y)  =  J(x,y+1) – J(x,y-1). 
-     Obliczyć próg według wzoru





x

y

x

y

y

x

G

y

x

G

y

x

J

t

)

,

(

)

,

(

)

,

(

background image

22

Metoda Otsu

Metoda wyznacza się próg t, który dzieli piksele obrazu na dwie 

klasy c0 i c1 (obiekty i tło). W dalszych rozważaniach zakładamy, 

że:
obraz może mieć L poziomów jasności;
ni oznacza liczbę pikseli o poziomie jasności i,  = 0, 1,... L-1;
całkowita liczba pikseli n = no + n1 + ... nL-1;  
histogram obrazu jest unormowany i może być traktowany jak 

rozkład prawdopodobieństwa

n

n

p

i

i

,   i = 0, 1,...L – 1,

1

1

0

L

i

i

p

;

 

piksele dzielimy na dwie klasy  co  i  c1  za  pomocą progu o wartości t, 
gdzie co oznacza piksele o jasności (0,1,... t), zaś  c1  oznacza piksele 
(t+1,... L-1). 

background image

23

    Prawdopodobieństwo wystąpienia tych klas  i ich 

wartości średnie dane są wzorami:

              

t

i

i

p

P

0

0

P

t

,

 

          
        

t

L

t

i

i

P

p

P

1

1

1

1

t

t

t

i

i

P

P

ip

/

/

0

0

0

    

t

t

T

L

t

i

i

P

P

ip

1

/

1

1

1

1

gdzie P

t

 i

 

t

 

są odpowiednio momentami zerowego i pierwszego 

rzędu dla histogramu obrazu oraz

1

0

L

i

i

T

ip

jest średnią jasnością całego 
obrazu. 

Można łatwo sprawdzić, że dla dowolnego t jest słuszna następująca relacja:

T

P

P

1

1

0

0

background image

24

Wariancje klas dane są wzorami:

0

2

0

0

2

0

/

)

(

P

p

i

i

t

i

1

2

1

1

1

2

1

/

)

(

P

p

i

i

L

t

i

Znalezienie optymalnego progu można dokonać na 
podstawie optymalizacji jednej 
z następujących (równoważnych) funkcji kryterialnych 
zależnych od progu t

2

2

W

B

2

2

W

T

2

2

T

B

 

2

1

0

1

0

2

1

1

2

0

0

2

)

(

)

(

)

(

P

P

P

P

T

T

B

- wariancja międzyklasowa,

2

1

1

2

0

0

2

P

P

W

 

- wariancja wewnątrzklasowa

,

 

1

0

2

2

)

(

L

i

i

T

i

T

p

n

- wariancja globalna,

 

przy czym 

2

T

jest niezależne od wartości progu t i wyraża się wzorem

2

2

2

B

W

T

,    

,    

,    

background image

25

     Warto zwrócić uwagę, że  wymaga posługiwania się 

statystykami 2‑go rzędu (wariancja), podczas gdy  - 1-
go rzędu (średnie klas). Dlatego  jest najprostszą 
miarą zależną od t. Stąd optymalny próg t* możemy 
obliczyć ze wzoru: 

)

(

max

arg

1

0

*

t

t

L

t

1

0

max

arg

L

t

)

(

2

t

B

Ponieważ wariancja jest miarą rozrzutu poziomów 
szarości wokół średniej, stąd duża jej wartość oznacza, że 
odchylenie od średniej jest duże i piksel obrazu jakby 
słabo przynależy do regionu. W związku z tym 
maksymalizowanie (2.21) oznacza zwiększanie 
odizolowania dwu klas w binaryzowanym obrazie. 

(2.21
)

background image

26

Algorithim Otsu

background image

27

Gonzalez’ method for thresholding

(Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins,

“Digital Image Processing Using Matlab”)

function [bw, t] = threshold_gw(b);
% b bimodal image (dark on bright or bright on dark)
b=double(b);
t=0.5*(min(b(:))+max(b(:)));
told=0;
c=1;
bw(:,:,c)=(b<t);
while abs((told-t)/told)>0.01

c=c+1;
m1 = mean(b(b>t));
m2 = mean(b(b<t));
told=t;
t=0.5*(m1+m2)
bw(:,:,c)=(b<t);

end

background image

28

Problemy

background image

29

• Adaptive thresholding typically takes a grayscale 

image as input and, in the simplest implementation, 
outputs a binary image.

• There are two main approaches to finding the 

threshold: 

(i) the  Chow and Kaneko approach,
(ii)  local thresholding. 

• The assumption behind both methods is that smaller image 

regions are more likely to have approximately uniform 
illumination, thus being more suitable for thresholding. Chow 
and Kaneko divide an image into an array of overlapping 
subimages and then find the optimum threshold for each 
subimage by investigating its histogram. The threshold for each 
single pixel is found by interpolating the results of the 
subimages. The drawback of this method is that it is 
computational expensive and, therefore, is not appropriate for 
real-time applications. 

Adaptive thresholding

background image

30

An alternative approach

An alternative approach to finding the local threshold is to 
statistically examine the intensity values of the local 
neighborhood of each pixel. The statistic which is most 
appropriate depends largely on the input image. Simple and 
fast functions include the mean of the local intensity 
distribution, 
 

T=mean,

the median value, 

T=median,

or the mean of the minimum and maximum values, 

T=(max+min)/2

The size of the neighborhood has to be large enough to cover 
sufficient foreground and background pixels, otherwise a poor 
threshold is chosen. On the other hand, choosing regions which 
are too large can violate the assumption of approximately 
uniform illumination. 
This method is less computationally intensive than the Chow 
and Kaneko approach and produces good results for some 
applications.

background image

31

Metody progowania lokalnego

Podczas progowania lokalnego obraz 
dzielony jest na podobrazy i próg 
określa się dla każdego z nich 
niezależnie. To powoduje, że pojawiają 
się nieciągłości na granicach dwu 
różnych podobrazów (rys. 2.13d). 
Dlatego stosuje się różne techniki 
wygładzania tych nieciągłości obrazu, 
np. poprzez lokalnie liniowe 
interpolowanie wartości 
progów (rys. 2.13c). 
Używając interpolacji skonstruowanej 
na podstawie progów sąsiednich 
podobrazów otrzymuje się wygładzony 
obraz, jak pokazuje rys. 2.13e.

Lokalne progowanie jest formą 
progowania adaptacyjnego.

Rys. 2.13

background image

32

Segmenting text from the image 

global

mean of 
a 7×7
neighborhood 

(mean-C)
C=7,
7×7 
neighborhood 

(mean-C)
C=10,
75×75 
neighborhood 

(median-C),
7×7 and C = 4

background image

33

Zakończenie

• Wiele globalnych metod progowania można 

rozszerzyć na operację wieloprogowania. 

• Uogólnienie metody globalnej na 

wieloprogowanie omówimy na przykładzie 
metody Otsu. 

• Ogólnie trzeba stwierdzić, że problem 

wieloprogowania jest trudny i poszukiwania 
optymalnego algorytmu ciągle trwają. 


Document Outline