Page 268 -
P. 268

242   Chapter 6 ■ Thinning


                                   im->data[r+2] [c-1] == 0 &&
                                   im->data[r+2] [c] == 0 && im->data[r+2] [c+1] == 0)
                           {
                                     im->data[r] [c] = 2;
                                     return;
                           }




                           / *  D5  * /
                               if (k>=5)
                               if (im->data[r-2] [c-2] == 0 && im->data[r-2] [c-1] == 0 &&
                                   im->data[r-2] [c] == 1 && im->data[r-2] [c+1] == 1 &&
                                   im->data[r-2] [c+2] == 0 &&
                                   im->data[r-1] [c-2] == 0 && im->data[r-1] [c-1] == 0 &&
                                   im->data[r-1] [c] == 1 && im->data[r-1] [c+1] == 1 &&
                                   im->data[r-1] [c+2] == 0 &&
                                   im->data[r] [c-2] == 0 && im->data[r] [c-1] == 0 &&
                                   im->data[r] [c] == 0 && im->data[r] [c+1] == 0 &&
                                   im->data[r] [c+2] == 0 &&
                                   im->data[r+1] [c-2] == 0 && im->data[r+1] [c-1] == 0 &&
                                   im->data[r+1] [c] == 0 && im->data[r+1] [c+1] == 0 &&
                                   im->data[r+1] [c+2] == 0 &&
                                   im->data[r+2] [c-1] == 0 &&
                                   im->data[r+2] [c] == 0 && im->data[r+2] [c-1] == 0 )
                               {
                                     im->data[r] [c] = 2;
                                     return;
                               }

                           / *  U1  *  /
                               if (im->data[r+2] [c-2] == 0 && im->data[r+2] [c-1] == 0 &&
                                   im->data[r+2] [c] == 1 && im->data[r+2] [c+1] == 0 &&
                                   im->data[r+2] [c+2] == 0 &&
                                   im->data[r+1] [c-2] == 0 && im->data[r+1] [c-1] == 0 &&
                                   im->data[r+1] [c] == 1 && im->data[r+1] [c+1] == 0 &&
                                   im->data[r+1] [c+2] == 0 &&
                                   im->data[r] [c-2] == 0 && im->data[r] [c-1] == 0 &&
                                   im->data[r] [c] == 0 && im->data[r] [c+1] == 0 &&
                                   im->data[r] [c+2] == 0 &&
                                   im->data[r-1] [c-2] == 0 && im->data[r-1] [c-1] == 0 &&
                                   im->data[r-1] [c] == 0 && im->data[r-1] [c+1] == 0 &&
                                   im->data[r-1] [c+2] == 0 &&
                                   im->data[r-1] [c-1] == 0 &&
                                   im->data[r-1] [c] == 0 && im->data[r-1] [c+1] == 0)
                               {
                                     im->data[r] [c] = 2;
                                     return;
                               }
                           / *  U2  * /
                               if (k>=2)
                               if (im->data[r+2] [c-2] == 0 && im->data[r+2] [c-1] == 1 &&
   263   264   265   266   267   268   269   270   271   272   273