background image

PRZETWARZANIE OBRAZÓW: Morfologia 

 

VII. 

 

 

 

 

 

 

 

  

© P.Ślusarczyk 2013 

 

   

 

 

 

 

 

 

Strona 1 z 2 

 
1. 

Przeanalizuj działanie następującego programu 

 

 
#include <stdio.h
#define N 11 
#define M 20 
 
  int obraz[N][M] = { 
      { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, 
      { 0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0 }, 
      { 0,0,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0 }, 
      { 0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0 }, 
      { 0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 }, 
      { 0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 }, 
      { 0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 }, 
      { 0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0 }, 
      { 0,0,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0 },  
      { 0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0 }, 
      { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, 
  }; 
 
  int elStr[3][3] = { 
      { 1,1,1 }, 
      { 1,1,1 }, 
      { 1,1,1 }, 
  }; 
     
     
void wyswietlObraz() 

   int i,j; 
   printf("%c",0xDA);  
   for(j=0;j<M;j++) printf("%c",0xC4); 
   printf("%c\n",0xBF); 
         
   for(i=0;i<N;i++) { 
     printf("%c",0xB3);               
     for(j=0;j<M;j++)  
         printf("%c",(obraz[i][j]==1) ? 0xDB : 0xB0); 
     printf("%c\n",0xB3); 
   }     
      
   printf("%c",0xC0);  
   for(j=0;j<M;j++) printf("%c",0xC4); 
   printf("%c\n",0xD9);   

 

 
int main() 

    wyswietlObraz(); 
    
    getch(); 
    return 0; 

 

 

 

2. 

Wykorzystując szkielet programu z zadanie 1, napisz program demonstracyjny 

realizujący erozję i dylatację macierzy prostokątnej dla dowolnego elementu 

strukturującego o rozmiarze 3x3. 
 

3.  Zaimplementuj operacje otwarcia 

i zamknięcia.  

Powtórz eksperyment przedstawiony na slajdzie nr 10 (Figure 9.10) w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip

 

 

4.  Zaimplementuj 

następujące operacje na zbiorach: 

• 

dopełnienie zbioru 

•  sum dwóch zbiorów 
•  iloczyn dwóch zbiorów 
• 

równość dwóch zbiorów 

 

5.  Zaimplementuj operacje 

chybił-trafił.  

Powtórz eksperyment przedstawiony na slajdzie nr 12 (Figure 9.12) w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip 
 
 

6.  Zaimplementuj gradient morfologiczny. 

 

𝛽(𝐴) = 𝐴 − (𝐴 ⊖ 𝐵) 

  
Powtórz eksperyment przedstawiony na slajdzie nr 13 (Figure 9.13) w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip

 

 

 

background image

PRZETWARZANIE OBRAZÓW: Morfologia 

 

VII. 

 

 

 

 

 

 

 

  

© P.Ślusarczyk 2013 

 

   

 

 

 

 

 

 

Strona 2 z 2 

 

7.  Zaimplementuj 

algorytm wypełniania konturów. 

 

𝑋

𝑘

= (𝑋

𝑘−1

⨁𝐵) ∩ 𝐴

𝑐

 

 

 

𝑘 = 1,2,3, …

 

 

 

Warunek początkowy:  𝑋

0

= 𝑝 – dowolny punkt wewnątrz konturu 

Warunek końcowy:       𝑋

𝑘

= 𝑋

𝑘−1

 

  
Powtórz eksperyment przedstawiony na slajdzie nr 15 (Figure 9.15) w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip

 

 
 

8.  Zaimplementuj 

algorytm ekstrakcji połączonych elementów. 

 

𝑋

𝑘

= (𝑋

𝑘−1

⨁𝐵) ∩

 A 

 

 

𝑘 = 1,2,3, …

 

 

 

Warunek początkowy:  𝑋

0

= 𝑝 – dowolny punkt należący do zbioru A 

Warunek końcowy:       𝑋

𝑘

= 𝑋

𝑘−1

 

  
Powtórz eksperyment przedstawiony na slajdzie nr 17 (Figure 9.17) w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip

 

 
 

9.  Zaimplementuj 

algorytm wyznaczania otoczki wypukłej. 

 

𝑋

𝑘

𝑖

= (𝑋

𝑘−1

⊖ 𝐵

𝑖

) ∪ 𝐴

 

 

𝑖 = 1,2,3,4

 

– numer elementu strukturującego 

𝑘 = 1,2,3, …

 

 

 

Warunek początkowy:  𝑋

0

𝑖

= 𝐴 

Warunek końcowy:       𝑋

𝑘

𝑖

= 𝑋

𝑘−1

𝑖

 

 

𝐶(𝐴) = � 𝐷

𝑖

   gdzie  𝐷

𝑖

=

4

𝑖=1

𝑋

𝑘−1

𝑖

 

  

Powtórz eksperymenty przedstawione na slajdach nr 19 i 20 (Figure 9.19 i 9.20) 
w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip

 

 
 

10.  Zaimplementuj 

operację rekonstrukcji poprzez dylatację geodezyjną. 

 

𝐷

𝐺

(1)

(𝐹) = (𝐹⨁𝐵) ∩ 𝐺

 

dylatacja obrazu znacznika F przy użyciu jednostkowego 

elementu strukturującego w ramach maski G 

  
Powtórz eksperymenty przedstawione na slajdach nr 27 i 28 (Figure 9.27 i 9.28) 
w dokumencie: 

http://www.imageprocessingplace.com/downloads_V3/dip3e_downloads/dip3e_class
room_presentations/DIP3E_CH09_Art_PowerPoint.zip