¤G­È¼v¹³¤À³Î»P­pºâ¤Î¨ä¥L

¡@

¡» ¼v¹³¤À³Î»P­p¼Æ

¼v¹³¤À³Î»P­p¼Æªºµ{¦¡¼¶¼g¤Q¤À²³æ¡A§Ú­Ì¥u¶·¥H¤K¾F±µ©Î¥|¾F±µÂI¬°°ò¦¡A¥Ñ¥ª¦Ó¥k¡A¦A¥Ñ¥k¦Ó¥ª³v¦¸±½´y¼v¹³¤¤¦³«G«×ªºÂI¯À¡A¦A¥H¸ÓÂI¥Xµo¦V¾Fªñ¦UÂI¥h´M§ä¡A±N´M¨ìªº³sµ²¦b¤@°_¥h´M§ä¡A±N´M¨ìªº³sµ²¦b¤@°_ªºÂI¤©¥H½s¦C¦P¤@­Ó½X­È¡A«Ý½T©w©Ò¦³³sµ²¦b¤@°_ªºÂI¯À§¡¤wÂà´«¦¨¦P¤@½X­È«á¡A§Y¥i¦A¨Ï¥Î¥t¤@½X­È¹ï¤U¤@­Ó¥Ø¼Ð¹ê¬I±½ºË³B²z¡C¦b¦¹§Ú­Ì¤¶²Ð¼v¹³¤À³Î»P­p¼Æ ¢á¢Ó¢Õ ªºµ{¦¡¨Ò¡A¦b¦¹µ{¦¡¤¤¡A¥ý±N¦¹­ì©l¼v¹³§¹¾ãÅã¥Ü©ó¿Ã¹õ¥ª°¼(¹Ï1)¡A¦A±N¦¹¼v¹³¤G­È¤Æ«á§¹¾ãÅã¥Ü©ó¿Ã¹õ¥k°¼¡A¦Ó¨C§ä¨ì¤@­Óª«Åé¡A§Y±N¦¹ª«ÅéÅã¥Ü©ó¿Ã¹õ¥ª°¼(¹Ï2)¡Aª½¨ì±½ºË§¹²¦«á¡A§Y±Nª«Åé¼Æ¶qÅã¥Ü©ó¿Ã¹õ¥k¤W¤è¡C

¹Ï1 ­ì©l¼v¹³

¹Ï2 ¼v¹³¤À³Î»P­p¼Æ¶i¦æ®É¤§¿Ã¹õ

²{±N­ìµ{¦¡½X¤Î¨ä»¡©ú¦C¥X¦p¤U¡G

#include <stdio.h>

#include "EPOTUTOR.H"

#include "bios.h"

#include <stdlib.h>

#include <math.h>

#include <graphics.h>

#include <process.h>

#include <conio.h>

#include <alloc.h>

void main()

{

char *fname="s7.tif"; /*¹ÏÀɦWºÙ*/

imgdes image1, image2;

int rcode;

int flag=1;

int i,j,x,y,x0,y0;

/*ªì©l¤Æ*/

initialize_image( &image1);

initialize_image( &image2);

clrscr();

initialize_display();

/*Ū¤J¹ÏÀÉ*/

if((rcode=loadfile( fname, TIF, &image1)) != NO_ERROR)

{

setvideomode(3);

printf("\nError in loading %s, rcode = %d", fname, rcode);

exit(1);

}

/*Åã¥Ü¹ÏÀÉ*/

if((rcode=display_gray_image( 0x12, 42, 2, &image1)) != NO_ERROR)

{

setvideomode(3);

printf("\n error displaying image, rcode = %d", rcode);

}

/*¤G­È¤Æ*/

Binarize(200,&image1,&image2);

if((rcode=display_gray_image( 0x12, 300, 2, &image2)) != NO_ERROR)

{

setvideomode(3);

printf("\n error displaying image, rcode = %d", rcode);

}

/*°Ï°ì¤À³Î*/

do

{

x=0;

y=0;

while(getpixelgray(&image2,x,y)!=255)

{

if(y==233&&x==255)

goto end;

if(x==255)

{

x=-1;

y++;

}

x++;

}

x0=x;

y0=y; /*°_©lÂI§¤¼Ð*/

setpixelgray(&image2,x0,y0,flag);

/* x¶b¤è¦V³vÂI±½´y */

for(y=y0;y<234;y++)

{

for(x=0;x<256;x++)

{

if(getpixelgray(&image2,x,y)==flag)

{

for(j=y-1;j<y+2;j++)

{

for(i=x-1;i<x+2;i++)

{

if(getpixelgray(&image2,i,j)==255)

setpixelgray(&image2,i,j,flag);

}

}

} /*end if*/

}

for(x=255;x>=0;x--)

{

if(getpixelgray(&image2,x,y)==flag)

{

for(j=y-1;j<y+2;j++)

{

for(i=x-1;i<x+2;i++)

{

if(getpixelgray(&image2,i,j)==255)

setpixelgray(&image2,i,j,flag);

}

}

} /*end if*/

}

}

/* y¶b¤è¦V³vÂI±½´y */

for(x=x0;x<256;x++)

{

for(y=0;y<234;y++)

{

if(getpixelgray(&image2,x,y)==flag)

{

for(j=y-1;j<y+2;j++)

{

for(i=x-1;i<x+2;i++)

{

if(getpixelgray(&image2,i,j)==255)

setpixelgray(&image2,i,j,flag);

}

}

} /*end if*/

}

for(y=233;y>=0;y--)

{

if(getpixelgray(&image2,x,y)==flag)

{

for(j=y-1;j<y+2;j++)

{

for(i=x-1;i<x+2;i++)

{

if(getpixelgray(&image2,i,j)==255)

setpixelgray(&image2,i,j,flag);

}

}

} /*end if*/

}

}

flag++; /* °Ï°ì¤À³ÎÁ`¼Æ */

} while(1);

end:; /* ¤À³Î§¹²¦ */

/*¤À³Î«á¦U§O°Ï°ìÅã¥Ü*/

for(i=1;i<flag;i++)

{

for(x=0;x<256;x++)

{

for(y=0;y<234;y++)

{

if(getpixelgray(&image2,x,y)==i)

setpixelgray(&image1,x,y,255);

else

setpixelgray(&image1,x,y,0);

}

}

if((rcode=display_gray_image( 0x12, 42, 2, &image1)) != NO_ERROR)

{

setvideomode(3);

printf("\n error displaying image, rcode = %d", rcode);

}

getch();

}

printf("%d",flag-1);

}

¦b¤@´T¤G­È¼v¹³¤¤¥i¯à¥]§t¦hÁû·L²É¡A¬°¤F°Ï¤À¦U­Ó·L²É¥H¤Î«K©ó¥H«á³æ¿W«×¶q­pºâ¡A¦³¥²­n¶i¦æ¼Ð°Oºtºâªk¡A«ü©w¨C­Ó·L²É¤@­Ó³æ¿Wªº¼Ð°O¡C¦p¦¹¤@¨Ó¡A¤£¶È¥i¥H±N³æ¤@·L²É¨ú¥X¤ÀªR¡A¤]¥i¥H¹ï¾ã´T¼v¹³¤¤©Ò¥]§tªº·L²É­Ó¼Æ¶i¦æ­p¼Æ¡C¼Ð°Oºtºâªk¦p¤U¡G

°²³]¤G­È¼v¹³¤¤¬°0ªºÂI¬O­I´º¡A¬° 1 ªºÂI¬O·L²É¡A¦bºtºâªk¤¤±Ä¥Î¤K¾F±µÂI·j´M¡C

1. ºtºâªk¶}©l¡A¥O¼Ð°OLabel=1¡C

2. ¦Û¥ª¦V¥k¡B¥Ñ¤W¦Ü¤U±½ºË¼v¹³¡A§ä´M¨ä­È¬°1ªººØ¤lÂI¡A³]©wºØ¤lÂI¼Ð°O=Label¡C°²¦p§ä¤£¨ìºØ¤lÂI¡A«hµ²§ô¾ã­Ó¼Ð°Oºtºâªk¡C

3. ¹ï©óºØ¤lÂI©P³ò¦P­È¤§¹³¯ÀÂI°µ¤U­z¾Þ§@¡G

¥Ñx¶b¤è¦V

(a) ¦Û¥ª¦V¥k³vÂI±½ºË¼v¹³¡A­Yf(x,y)¼Ð°O¬°Label¡A«h¥Of(x,y)¤K¾F±µÂI¤¤­È¬°1ªº¹³¯ÀÂI¼Ð°O=Label¡C

(b) ¦Û¥k¦V¥ª³vÂI±½ºË¼v¹³¡A­Yf(x,y)¼Ð°O¬°Label¡A«h¥Of(x,y)¤K¾F±µÂI¤¤­È¬°1ªº¹³¯ÀÂI¼Ð°O=Label¡C

§ïy¶b¤è¦V

(c) ¥Ñ¤W©¹¤U³vÂI±½ºË¼v¹³¡A­Yf(x,y)¼Ð°O¬°Label¡A«h¥Of(x,y)¤K¾F±µÂI¤¤­È¬°1ªº¹³¯ÀÂI¼Ð°O=Label¡C

(d) ¥Ñ¤U©¹¤W³vÂI±½ºË¼v¹³¡A­Yf(x,y)¼Ð°O¬°Label¡A«h¥Of(x,y)¤K¾F±µÂI¤¤­È¬°1ªº¹³¯ÀÂI¼Ð°O=Lable¡C

4. ¸g¹L¥|­Ó¤è¦V±½ºË«á¡A¼Ð°O¬°L¤§·L²É³Q§¹¾ã¨ú¥X¡C«ü©w·sªº¼Ð°OLabel++¡A­«½Æ¨BÆJ2¡Aª½¨ì¼Ð°O§¹©Ò¦³·L²É¡C

¡@

Èv¤G­È¼v¹³¤À³Î»P­pºâ¤Î¨ä¥L