home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 11 / ami045.txt < prev    next >
Text File  |  1997-04-07  |  4KB  |  126 lines

  1. 6 obrazków (numery od 0 do 5 -- ten 0 to wzór wzoru matematycznego)
  2.  
  3.  
  4. Jak ulepszyê procedurë? (odc. 13.)
  5. ----------------------------------
  6.  
  7. DETEKCJA I WYZNACZANIE KRAWËDZI 
  8.  
  9. <lead>Zapraszam do lektury ostatniego, trzeciego, odcinka
  10. podcyklu: "Detekcja i wyznaczanie krawëdzi". Zajmë sië dzisiaj
  11. jednym z lepszych algorytmów detekcji krawëdzi, jakim jest
  12. laplasjan.
  13.  
  14. <a>Miklesz/Damage
  15.  
  16. <txt>Laplasjan dla obrazu traktowanego jako funkcja dwóch
  17. zmiennych I(x,y) moûna zdefiniowaê jako:
  18.  
  19. ****************** TU WZÓR MATEM Z OBRAZKA NR 0 *****************
  20.  
  21. Laplasjan jest operatorem róûniczkowym, wykorzystujâcym drugâ
  22. pochodnâ. Analogicznie jak w wypadku gradientu, jego
  23. przybliûenie, które moûemy wyliczyê wykorzystujâc podane niûej w
  24. tekôcie macierze, jest sumâ punktu aktualnie analizowanego i
  25. róûnic wartoôci punktów leûâcych w sâsiedztwie. Oczywiôcie, aby
  26. zachowaê dobre proporcje jasnoôci, naleûy przemnoûyê centralny
  27. punkt przez cztery (gdyû laplasjan liczymy w czterech
  28. kierunkach):
  29.  
  30. <l>+0    +1    +0
  31.  
  32. +1    -4    +1
  33.  
  34. +0    +1    +0
  35.  
  36. <txt>******** (rys. 1) ******************
  37.  
  38. Powyûsza macierz ma jednak pewnâ wadë. Liczony w ten sposób
  39. laplasjan, uwzglëdnia tylko kierunki: góra, dóî, lewo, prawo.
  40. Omija wiëc skosy. Zastosowaê moûemy wiëc ulepszony model macierzy
  41. laplasjana, który uwzglëdniaê bëdzie wszystkich osiem kierunków:
  42.  
  43. <l>+1    +1    +1
  44.  
  45. +1    -8    +1
  46.  
  47. +1    +1    +1
  48.  
  49. <txt>********** (rys. 2) ******************
  50.  
  51. Po przeksztaîceniu obrazu laplasjanem naleûy zabraê sië do
  52. detekcji jego krawëdzi. Najprostszym sposobem jest zwykîa
  53. binaryzacja. Niestety, okazuje sië, ûe laplasjan jako operator
  54. róûniczkowy drugiego stopnia jest niesamowicie czuîy na lokalne
  55. szumy, które mogâ zostaê niepotrzebnie zinterpretowane jako
  56. krawëdzie. Istnieje jednak wyjôcie z sytuacji.
  57.  
  58. Pamiëtacie moûe opisywanâ przeze mnie dwa miesiâce temu metodë
  59. detekcji krawëdzi, opartâ na znajdowaniu przejôcia przez zero,
  60. czyli punktów, w których laplasjan zmienia znak. Poniûej
  61. przedstawiam schemat dziaîania:
  62.  
  63. 1. Wykonujemy laplasjan. Najlepiej jak najdokîadniejszy. Tu mogâ
  64. nam przyjôê z pomocâ wiëksze macierze, o których wspomnë niûej.
  65.  
  66. 2. Binaryzujemy wyjôciowy obraz tak, aby podzieliê nasze punkty
  67. na: punkty o jasnoôci mniejszej od zera i punkty o jasnoôci
  68. wiëkszej bâdú równej zero. Oznacza to, ûe dolny próg binaryzacji
  69. musi wynosiê 0.
  70.  
  71. 3. Nastëpnie musimy znaleúê krawëdzie obrazu binarnego. Najlepiej
  72. to zrobiê metodami, które zostaîy opisane w dwóch poprzednich
  73. odcinkach. W ten sposób wychwycimy rzeczywiste krawëdzie obrazu.
  74.  
  75. Dziëki zastosowaniu powyûszego algorytmu uzyskamy cienkie (o
  76. szerokoôci jednego piksela) krawëdzie. Tak przeksztaîcony obraz
  77. wyglâda trochë (co moûecie sprawdziê na ilustracjach), jakby
  78. wykonano na nim operacjë "line art". Daje to moûliwoôci
  79. stworzenia szybkich i ciekawych efektów do dema. Jeûeli jednak
  80. mniej nam zaleûy na efekcie, a bardziej na krawëdziach, moûemy
  81. zmniejszyê wpîyw szumów, stosujâc wiëksze macierze. Poniûej
  82. przykîady: 5*5 i 7*7:
  83.  
  84. <l>+0.25    +0.50    +0.50    +0.50    +0.25
  85.  
  86. +0.50    -0.25    -1.00    -0.25    +0.50
  87.  
  88. +0.50    -1.00    -2.00    -1.00    +0.50
  89.  
  90. +0.50    -0.25    -1.00    -0.25    +0.50
  91.  
  92. +0.25    +0.50    +0.50    +0.50    +0.25
  93.  
  94.  
  95. ********************* (rys. 3) **************************
  96.  
  97.  
  98.  
  99. +0.25    +0.50    +0.50    +0.50    +0.50    +0.50    +0.25
  100.  
  101. +0.50    +0.50    +0.00    -0.50    +0.00    +0.50    +0.50
  102.  
  103. +0.50    +0.00    -0.75    -1.50    -0.75    +0.00    +0.50
  104.  
  105. +0.50    -0.50    -1.50    -2.00    -1.50    -0.50    +0.50
  106.  
  107. +0.50    +0.00    -0.75    -1.50    -0.75    +0.00    +0.50
  108.  
  109. +0.50    +0.50    +0.00    -0.50    +0.00    +0.50    +0.50
  110.  
  111. +0.25    +0.50    +0.50    +0.50    +0.50    +0.50    +0.25
  112.  
  113. <txt>Okazuje sië, ûe bez wzglëdu na to, jakâ obierzemy metodë
  114. detekcji krawëdzi, i tak znaczny wpîyw na ostateczny wynik tego
  115. procesu bëdzie miaî sposób wykonania samej binaryzacji obrazu.
  116. Osobom szczególnie zainteresowanym tematem detekcji krawëdzi
  117. polecam ksiâûkë, z której korzystaîem piszâc ten artykuî, gdyû
  118. rozwijajâc dalej ten problem, odbiegîbym zbytnio od tematu
  119. kodowania procedur w demach.
  120.  
  121.  
  122. <przyp>Piszâc ten odcinek, opieraîem sië czëôciowo na
  123. informacjach, zawartych w ksiâûce pt.: "Komputerowa analiza
  124. obrazu", (FotoBit Design), autorstwa: Leszka Wojnara i Mirosîawa
  125. Majorka.
  126.