00001
00002
00003 #include <stdio.h>
00004 #include <stdlib.h>
00005 #include <string.h>
00006 #include <tip.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 int main(int argc, char *argv[])
00020 {
00021
00022 if (argc != 3) {
00023 cout << endl << "Usage: " << argv[0] << " <input_image> <distance_type>" << endl << endl;
00024 cout << " where <distance_type> can be: " << endl;
00025 cout << " 0 - Euclidian distance using chamfer (5,7,11)" << endl;
00026 cout << " 1 - Euclidian distance using chamfer (3,4) " << endl;
00027 cout << " 2 - City-block distance " << endl;
00028 cout << " 3 - Chessboard distance " << endl;
00029 exit(0);
00030 }
00031
00032
00033 ByteImage im1;
00034 im1.readImage(argv[1]);
00035 im1.showImage();
00036
00037
00038 int dist_type = atoi(argv[2]);
00039 IntImage im2;
00040
00041
00042
00043 switch(dist_type) {
00044 case 0:
00045 DistanceTransform(im1, EUCLID, im2);
00046 break;
00047 case 1:
00048 DistanceTransform(im1, EUCLID_1, im2);
00049 break;
00050 case 2:
00051 DistanceTransform(im1, CITY_BLOCK, im2);
00052 break;
00053 case 3:
00054 DistanceTransform(im1, CHESSBOARD, im2);
00055 break;
00056 default:;
00057 }
00058 im2.showImage();
00059
00060 char l;
00061 cin >> l;
00062
00063 im1.closeWindow();
00064 im2.closeWindow();
00065 return(1);
00066 }