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);