Page 40 - MATINF Nr. 9-10
P. 40

40                                                                   D.A. Popescu, D. Constantin
























                Figura 2. Imaginea rezultat˘ dup˘a operat , ia de umplere
                                            a


            2    Algoritmul fill pentru umplerea unui contur ˆınchis


            ˆ
            In prezentarea algoritmului fill vom porni de la urm˘atoarea problem˘a:
                Se d˘a un tablou bidimensional cu m linii, n coloane s , i elemente din mult , imea {0, 1} ce
            codific˘a o imagine cu un contur ˆınchis. Un pixel din imagine corespunde unui element din
                                                                                                     a
                                                                           a
            tabloul bidimensional. Pentru a avea o imagine cˆat mai simpl˘ vom considera doar dou˘ culori:
            alb codificat cu 0 s , i negru codificat cu 1. Cunoscˆand coordonatele unui pixel din interiorul
            conturului umplet , i tot conturul cu 1. Doi pixeli sunt vecini pe contur dac˘a sunt unul sub
            altul sau, unul lˆang˘a altul, sau vecini pe diagonal˘a. Tabloul bidimensional este dat ˆın fis , ierul
            fill.in, pe prima linie dimensiunile, iar pe liniile urm˘atoare elementele sale. Linia s , i coloana
            pixelului din interiorul conturului sunt date pe ultima linie a fis , ierului fill.in. Dup˘ umplerea
                                                                                                  a
            conturului tabloul obt , inut se va scrie ˆın fis , ierul fill.out.
                Exemplu

                fill.in
              6 8
              0 1 0 1 0 0 0 0
              0 1 0 0 1 0 0 0
              0 0 1 0 0 1 1 0
              0 0 1 0 0 0 1 0
              0 0 1 1 1 1 1 0
              0 0 0 0 0 0 0 0
              4 5

                fill.out

              0 1 1 1 0 0 0 0
              0 1 1 1 1 0 0 0
              0 0 1 1 1 1 1 0
              0 0 1 1 1 1 1 0
              0 0 1 1 1 1 1 0
              0 0 0 0 0 0 0 0

                Descrierea algoritmului
   35   36   37   38   39   40   41   42   43   44   45