예제 #1
0
int main(int argc, char *argv[]){
	Permutacion perm;
	Imagen img;	
	
	if(argc==4 || argc==5){
		if(argc==4){
			if(perm.Leer_Permuta(argv[2])){
				if(img.LeerImagen(argv[1])){
					if(perm.Get_n() == img.Filas()){
						for(int i=0; i<img.Filas(); i++)			
							img.Asignar_A_Fila(i,perm.Get_Elem(i));
              
						if(img.EscribirImagen(argv[3]))
							cout << "\n Imagen guardada correctamente." << endl;
						else
							cout << "\n ERROR: No se pudo guardar la imagen en disco." << endl;						
					}else
						cout << "\n ERROR: El nº de líneas de la imagen no coincide con el del fichero de permutaciones." << endl;
				}else
					cout << "\n ERROR: No se pudo leer la imagen desde disco." << endl;
			}else
				cout << "\n ERROR: No se pudo leer la permutación desde disco." << endl;
		}
		if(argc==5){
			if(strcmp(argv[1],"-d")==0){
				if(perm.Leer_Permuta(argv[3])){
					if(img.LeerImagen(argv[2])){
						if(perm.Get_n() == img.Filas()){
							for(int i=0; i<img.Filas(); i++)
								img.Asignar_A_Fila(perm.Get_Elem(i),i);

							if(img.EscribirImagen(argv[4]))
								cout << "\n Imagen guardada correctamente." << endl;
							else
								cout << "\n ERROR: No se pudo guardar la imagen en disco." << endl;						
						}else
							cout << "\n ERROR: El nº de líneas de la imagen no coincide con el del fichero de permutaciones." << endl;
					}else
						cout << "\n ERROR: No se pudo leer la imagen desde disco." << endl;
				}else
					cout << "\n ERROR: No se pudo leer la permutación desde disco." << endl;
			}else
				cout << "\n ERROR: No se detectó el parámetro -d." << endl;
		}			

	}else{
		cout << "\n ERROR. Número de parámetros incorrecto." << endl;
		cout << " USO:" << endl;
		cout << " Aplicar permutación: "  << argv[0] << " [imagen.pgm] [permutacion.per] [imagen_permutada.pgm]" << endl;
		cout << " Deshacer permutación: " << argv[0] << " -d [imagen_permutada.pgm] [permutacion.per] [imagen.pgm]" << endl;		
	}
	return 0;
}
예제 #2
0
int main(int argc,   char * argv[])
{
  
      if(argc != 2)
      {
        cout << "Error en el número de argumentos." << endl;
        cout << "Forma de ejecución: " << endl;
        cout << "revelar salida.pgm > resultado.txt" << endl;
      }
      else
      {
        TipoImagen imag;
        int filas, columnas, Tamimagen;
        bool resultado,lectura;
        char cad[1000000/8];
        imag = LeerTipoImagen(argv[1],filas,columnas);
        Imagen img;
        if(imag == IMG_PGM)
           {
             lectura = img.LeerImagen(argv[1]);
             Tamimagen = filas*columnas;
             resultado = Revelar(img.Getvector(), cad, Tamimagen);
             cout << cad << endl;
           }
        else
           {
               cout << "Error en el formato de la imagen, tiene que ser PGM" << endl;
           }
      }
}
예제 #3
0
int main(int argc,const  char * argv[])
{
	 if(argc != 3) 
   {
      cout << "Error en el número de argumentos" << endl;
      cout << "Forma de ejecución: " << endl;
      cout << "ocultar lenna.pgm salida.pgm < mensaje.txt" << endl;
    }
   else
   {
      TipoImagen imag;
      int filas, columnas, Tamimagen;
      bool resultado,lectura;
      imag = LeerTipoImagen(argv[1],filas,columnas);
      Imagen img;
      char c;
      if(imag == IMG_PGM)
         {
           img.LeerImagen(argv[1]);
           const int MAXMSG = (img.Filas()*img.Columnas()) / 8;
           char cad[MAXMSG];
           unsigned char vec_aux[img.Filas()*img.Columnas()];
           for(int i = 0; i < MAXMSG && cin.get(c);i++)
           {
            cad[i] = c;
           }
	         
           Tamimagen = img.Filas()*img.Columnas();
           for(int i=0; i<img.Filas(); i++){
               for (int j=0; j<img.Columnas(); j++){
                     vec_aux[i*img.Columnas()+j] = img.Get(i,j);
                   }
                  }
           resultado = Ocultar(vec_aux,cad,Tamimagen);
           for(int i=0; i<img.Filas(); i++){
               for (int j=0; j<img.Columnas(); j++){
                   img.Set(i,j, vec_aux[i*img.Columnas()+j]);
                 }
               }
           resultado = img.EscribirImagen(argv[2]);
           
           if(resultado == true)
		         {
			           cout << "La frase ha sido ocultada " << endl;
		         }
           else
           {
                 cout << "La imagen no ha sido ocultada" << endl;
           }
         }
           else
           {
            cout << "El formato de la imagen es el incorrecto, debe ser PGM" << endl;
           }
          
    }
}
예제 #4
0
int main(int argc, char * argv[]){
  if (argc!=4){
    cout<<"Los parametros son :"<<endl;
    cout<<"1.-La imagen de entrada"<<endl;
    cout<<"2.-El angulo de rotación (en grados)"<<endl;
    cout<<"3.-El nombre de la imagen de salida"<<endl;
    return 0;
  }
  Imagen I;
  I.LeerImagen(argv[1]);
  double angulo=atof(argv[2]);
  angulo = angulo*(M_PI)/180; //Pasamos el angulo radianes
  //Imagen Iout=Rota(I,angulo);
  //Iout.EscribirImagen(argv[3]);
  
}