Page 105 -
P. 105

Chapter 2 ■ Edge-Detection Techniques    79



                                       new = newimage (im->info->nr+width+width,im->info->nc+width+width);
                                        for (i=0; i<new->info->nr; i++)
                                          for (j=0; j<new->info->nc; j++)
                                          {
                                            I = (i-width+im->info->nr)%im->info->nr;
                                            J = (j-width+im->info->nc)%im->info->nc;
                                            new->data[i][j] = im->data[I][J];
                                          }

                                        free (im->info);
                                        free(im->data[0]); free(im->data);
                                        im->info = new->info;
                                        im->data = new->data;
                                 }

                                 void debed (IMAGE im, int width)
                                 {
                                        int i,j;
                                        IMAGE old;
                                        width +=2;
                                       old = newimage (im->info->nr-width-width,im->info->nc-width-width);
                                        for (i=0; i<old->info->nr-1; i++)
                                        {
                                          for (j=1; j<old->info->nc; j++)
                                          {
                                            old->data[i][j] = im->data[i+width][j+width];
                                            old->data[old->info->nr-1][j] = 255;
                                          }
                                          old->data[i][0] = 255;
                                        }
                                        free (im->info);
                                        free(im->data[0]); free(im->data);
                                        im->info = old->info;
                                        im->data = old->data;
                                 }
                                 int main ()
                                 {
                                        IMAGE im, res;
                                        FILE *params;
                                        char name[128];
                                        // Try to read an image
                                        printf (“Enter path to the image file to be processed: “);
                                        scanf (“%s“, name);
                                        printf (“Opening file '%s’\n“, name);
   100   101   102   103   104   105   106   107   108   109   110