#include #include #include #include "Matrix.h" #include "BackGround.h" #include "GaussMatrix.h" #include "Bitmap.h" #include "PMImage.h" #include "OpticalFlow.h" #include "Vector.h" #include "ImagePyramid.h" #include "OFPyramid.h" #include "Algorithm.h" int main(int argc, char *argv[]){ CAlgorithm *alg; CPMImage *ForBg; //You must give the first and the last sequence //the name is ssipxxxx.pgm //fn first seq last seq int i; int index1, index2; int first, last; char tmp[100]; char Filename1[100]; char Filename2[100]; char OutFilename[100]; char OutColorFilename[100]; char OutFGName[100]; CPMImage *kontur, *original; kontur = new CPMImage(); original = new CPMImage(); if (argc == 3){ first = atoi(argv[1]); last = atoi(argv[2]); for (i= first; i< last; i++){ itoa(i, tmp, 10); if (i<10){ strcpy(Filename1, "ssip-"); strcat(Filename1, tmp); strcat(Filename1, ".pgm"); } else if (i< 100){ strcpy(Filename1, "ssip-"); strcat(Filename1, tmp); strcat(Filename1, ".pgm"); }else if (i<1000){ strcpy(Filename1, "ssip-"); strcat(Filename1, tmp); strcat(Filename1, ".pgm"); }else{ strcpy(Filename1, "ssip-"); strcat(Filename1, tmp); strcat(Filename1, ".pgm"); } itoa(i+1, tmp, 10); if ((i+1)<10){ strcpy(Filename2, "ssip-"); strcat(Filename2, tmp); strcat(Filename2, ".pgm"); } else if ((i+1)< 100){ strcpy(Filename2, "ssip-"); strcat(Filename2, tmp); strcat(Filename2, ".pgm"); }else if ((i+1)<1000){ strcpy(Filename2, "ssip-"); strcat(Filename2, tmp); strcat(Filename2, ".pgm"); }else{ strcpy(Filename2, "ssip-"); strcat(Filename2, tmp); strcat(Filename2, ".pgm"); } itoa(i, tmp, 10); if (i<10){ strcpy(OutFilename, "out000"); strcat(OutFilename, tmp); strcpy(OutColorFilename, OutFilename); strcpy(OutFGName, OutFilename); strcat(OutFGName, "FG.ppm"); strcat(OutColorFilename, ".ppm"); strcat(OutFilename, ".ppm"); } else if (i< 100){ strcpy(OutFilename, "out00"); strcat(OutFilename, tmp); strcpy(OutColorFilename, OutFilename); strcpy(OutFGName, OutFilename); strcat(OutFGName, "FG.ppm"); strcat(OutColorFilename, ".ppm"); strcat(OutFilename, ".ppm"); }else if (i<1000){ strcpy(OutFilename, "out0"); strcat(OutFilename, tmp); strcpy(OutColorFilename, OutFilename); strcpy(OutFGName, OutFilename); strcat(OutFGName, "FG.ppm"); strcat(OutColorFilename, ".ppm"); strcat(OutFilename, ".ppm"); }else{ strcpy(OutFilename, "out"); strcat(OutFilename, tmp); strcpy(OutColorFilename, OutFilename); strcpy(OutFGName, OutFilename); strcat(OutFGName, "FG.ppm"); strcat(OutColorFilename, ".ppm"); strcat(OutFilename, ".ppm"); } itoa(i, tmp, 10); if (i<10){ strcpy(OutFGName, "out000"); strcat(OutFGName, tmp); strcat(OutFGName, ".ppm"); } else if (i< 100){ strcpy(OutFGName, "out00"); strcat(OutFGName, tmp); strcat(OutFGName, ".ppm"); }else if (i<1000){ strcpy(OutFGName, "out0"); strcat(OutFGName, tmp); strcat(OutFGName, ".ppm"); }else{ strcpy(OutFGName, "out"); strcat(OutFGName, tmp); strcat(OutFGName, ".ppm"); } itoa(i, tmp, 10); if (i<10){ strcpy(OutColorFilename, "c000"); strcat(OutColorFilename, tmp); strcat(OutColorFilename, ".ppm"); } else if (i< 100){ strcpy(OutColorFilename, "c00"); strcat(OutColorFilename, tmp); strcat(OutColorFilename, ".ppm"); }else if (i<1000){ strcpy(OutColorFilename, "c0"); strcat(OutColorFilename, tmp); strcat(OutColorFilename, ".ppm"); }else{ strcpy(OutColorFilename, "c"); strcat(OutColorFilename, tmp); strcat(OutColorFilename, ".ppm"); } original->LoadFromPGMFile(Filename1); kontur->LoadFromPPMFile(OutFGName); kontur->Edges(100); for (index1 = 0; index1 < original->GetSizeX(); index1++){ for (index2 = 0; index2 < original->GetSizeY(); index2++){ if((kontur->GetPixel(index1,index2)) != 0){ original->SetPixel(index1,index2,0xFF); } } } original->SaveToPPMFile(OutColorFilename ); } } else { printf("Arguments error"); } return 1; }