void ReadImage(char fname[], int ***fimage, int& M, int& N, int& Q) { int i, j; unsigned char *image; char header [100], *ptr; ifstream ifp; ifp.open(fname, ios::in); if (!ifp) { cout << "Can't read image: " << fname << endl; exit(1); } // read header ifp.getline(header,100,'\n'); if ( (header[0]!=80) || /* 'P' */ (header[1]!=53) ) { /* '5' */ cout << "Image " << fname << " is not PGM" << endl; exit(1); } ifp.getline(header,100,'\n'); while(header[0]=='#') ifp.getline(header,100,'\n'); M=strtol(header,&ptr,0); N=atoi(ptr); ifp.getline(header,100,'\n'); Q=strtol(header,&ptr,0); image = (unsigned char *) new unsigned char [M*N]; *fimage = new int* [N]; for(i=0; i(image), (M*N)*sizeof(unsigned char)); if (ifp.fail()) { cout << "Image " << fname << " has wrong size" << endl; exit(1); } ifp.close(); // // Convert the unsigned characters to integers // for(i=0; i