Category : Files from Magazines
Archive   : CUJ9308.ZIP
Filename : 1108099A

 
Output of file : 1108099A contained in archive : CUJ9308.ZIP
/*********************************************
*
* file d:\cips\mainsk.c
*
* Functions: This file contains
* main
*
* Purpose:
* This file contains the main calling
* routine that calls the erosion, dilation,
* outline, and skeleton functions.
*
* External Calls:
* gin.c - get_image_name
* numcvrt.c - get_integer
* int_convert
* tiff.c - read_tiff_header
* ed.c - erosion
* dilation
* mask_erosion
* mask_dilation
* interior_outline
* exterior_outline
* opening
* closing
* skeleton.c - thinning
* skeleton
* dilate_not_join
* special_opening
* special_closing
* edm
* mat
*
* Modifications:
* 7 March 1993 - created
*
***********************************************/

#include "cips.h"



short the_image[ROWS][COLS];
short out_image[ROWS][COLS];

main(argc, argv)
int argc;
char *argv[];
{

char name[80], name2[80], name3[80], type[80];
int count, i, j,
il, ie, ll, le,
length, lw, mask_type, number,
threshold, width;
short value;
struct tiff_header_struct image_header;

my_clear_text_screen();

/*********************************************
*
* Interpret the command line parameters.
*
**********************************************/

if(argc < 5){
printf(
"\n\nNot enough parameters:"
"\n"
"\n usage: mainsk in-file out-file type value"
" [threshold-or-mask-type] [number]"
"\n"
"\n recall type: EROsion DILation Mask-ERosion"
"\n Mask_DIlation INTerior-outline"
"\n EXTerior-outline THInning"
"\n Dilate-Not-Join OPEning"
"\n CLOsing SPecial-Opening"
"\n SPecial-Closing"
"\n Euclidean-Distance-Measure"
"\n Medial-Axis-Transform"
"\n"
"\n [number] needed for opening"
"\n and closing"
"\n");
exit(0);
}

strcpy(name, argv[1]);
strcpy(name2, argv[2]);
strcpy(type, argv[3]);
value = atoi(argv[4]);
threshold = atoi(argv[5]);
mask_type = atoi(argv[5]);
number = atoi(argv[6]);

il = 1;
ie = 1;
ll = ROWS+1;
le = COLS+1;

/*********************************************
*
* Read the input image header and setup
* the looping counters.
*
**********************************************/

read_tiff_header(name, &image_header);

length = (90 + image_header.image_length)/ROWS;
width = (90 + image_header.image_width)/COLS;
count = 1;
lw = length*width;
printf("\nlength=%d width=%d", length, width);

/*********************************************
*
* Loop over the input images and
* apply the desired function.
*
**********************************************/

for(i=0; i for(j=0; j printf("\nrunning %d of %d", count, lw);
count++;

/* thinning */
if(strncmp("thi", type, 3) == 0){
thinning(name, name2, the_image, out_image,
il+i*ROWS, ie+j*COLS,
ll+i*ROWS, le+j*COLS,
value, threshold, 0);
} /* ends thinning operation */

/* dilate-not-join */
if(strncmp("dnj", type, 3) == 0){
dilate_not_join(name, name2,
the_image, out_image,
il+i*ROWS, ie+j*COLS,
ll+i*ROWS, le+j*COLS,
value, threshold);
} /* ends dilate_not_join operation */

/* erosion */
if(strncmp("ero", type, 3) == 0){
erosion(name, name2, the_image, out_image,
il+i*ROWS, ie+j*COLS,
ll+i*ROWS, le+j*COLS,
value, threshold);
} /* ends erosion operation */

/* dilation */
if(strncmp("dil", type, 3) == 0){
dilation(name, name2, the_image, out_image,
il+i*ROWS, ie+j*COLS,
ll+i*ROWS, le+j*COLS,
value, threshold);
} /* ends dilation operation */

/* mask_erosion */
if(strncmp("mer", type, 3) == 0){
mask_erosion(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value, mask_type);
} /* ends mask_erosion operation */

/* mask_dilation */
if(strncmp("mdi", type, 3) == 0){
mask_dilation(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value, mask_type);
} /* ends mask_dilation operation */

/* interior_outline */
if(strncmp("int", type, 3) == 0){
interior_outline(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
mask_type);
} /* ends interior_outline operation */

/* exterior_outline */
if(strncmp("ext", type, 3) == 0){
exterior_outline(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
mask_type);
} /* ends exterior_outline operation */

/* opening */
if(strncmp("ope", type, 3) == 0){
opening(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
mask_type, number);
} /* ends opening operation */

/* closing */
if(strncmp("clo", type, 3) == 0){
closing(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
mask_type, number);
} /* ends closing operation */

/* special opening */
if(strncmp("spo", type, 3) == 0){
special_opening(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
threshold, number);
} /* ends special opening operation */

/* special closing */
if(strncmp("spc", type, 3) == 0){
special_closing(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value,
mask_type, number);
} /* ends special closing operation */

/* Euclidean Distance Measure */
if(strncmp("edm", type, 3) == 0){
edm(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value);
} /* ends Euclidean distance mesaure */

/* medial axis transform */
if(strncmp("mat", type, 3) == 0){
mat(name, name2, the_image,
out_image, il+i*ROWS,
ie+j*COLS, ll+i*ROWS,
le+j*COLS, value);
} /* ends medial axis transform operation */

} /* ends loop over j */
} /* ends loop over i */
} /* ends main */




  3 Responses to “Category : Files from Magazines
Archive   : CUJ9308.ZIP
Filename : 1108099A

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/