/* Definições principais para {exemplo.c}. */ #ifndef exemplo_H #define exemplo_H #define PROG_NAME "exemplo" #define PROG_DESC "testa alguns conceitos de processamento de imagens" #define PROG_VERS "1.0" /* Last edited on 2024-12-21 14:05:19 by stolfi */ #define PROG_HELP \ " " PROG_NAME " \\\n" \ " -op {OP} \\\n" \ " " argparser_help_info_HELP " \\\n" \ " {IMAGEM_ENT_1} {IMAGEM_ENT_2} \\\n" \ " > {IMAGEM_SAI}" #define PROG_INFO \ "NOME\n" \ " " PROG_NAME " - " PROG_DESC "\n" \ "\n" \ "SINOPSE\n" \ PROG_HELP "\n" \ "\n" \ "DESCRICAO\n" \ " O programa lê duas imagens, {IMAGEM_ENT_1} e {IMAGEM_ENT_1}, e" \ " aplica a elas uma operação especificada pelo usuário. A imagem" \ " resultante é gravada na saída padrão {stdout}.\n" \ "\n" \ "OPÇÕES\n" \ " -op {OP}\n" \ " Especifica a operação a executar. O prâmetro {OP} pode" \ " ser \"add\" ou \"mul\".\n" \ "\n" \ "OPÇÕES DE DOCUMENTAÇÃO\n" \ argparser_help_info_HELP_INFO "\n" \ "\n" \ "VEJA TAMBÉM\n" \ " convert(1), gimp(1), display(1), ppm(1), pgm(1).\n" \ "\n" \ "AUTOR\n" \ " Criado em 2007-08-01 por J. Stolfi, IC-UNICAMP.\n" \ "\n" \ "GARANTIA\n" \ argparser_help_info_NO_WARRANTY "\n" \ "\n" \ "DIREITOS\n" \ " Copyright © 2007 by the State University of Campinas (UNICAMP).\n" \ "\n" \ argparser_help_info_STANDARD_RIGHTS /* BIBLIOTECAS DO GNU/LINUX: */ #include #include #include #include /* BIBLIOTECAS DO PROFESSOR: */ #include /* Tipo {bool_t}, {TRUE}, {FALSE}. */ #include /* Sinais {n}-dimensionais amostrados. */ #include /* Sinais {n}-dimensionais amostrados e quantizados. */ #include /* Pega parâmetros da linha de comando. */ /* PARÂMETROS OBTIDOS DA LINHA DE COMANDO: */ #define MAX_NIMG 2 /* Número máximo de imagens mencionadas na linha de comando. */ typedef enum { op_ADD, op_MUL, op_BUG } operation_t; /* Código interno da operação a executar. */ typedef struct options_t { operation_t op; /* A operação a executar. */ int nimg; /* Número de imagens de entrada. */ char* img_name[MAX_NIMG]; /* Nomes das imagens de entrada. */ } options_t; /* PROTÓTIPOS GENÉRICOS */ int main(int argc,char** argv); /* Função principal do programa. */ flt_image_t ex_read_image(FILE *rd, char *name); /* Lê uma imagem em formato PPM, PGM ou PBM, converte cada amostra para um valor em ponto fluante entre 0 e 1, e armazena o resultado todo na memória, na forma de um {ftl_image_t}. Se {rd} é diferente de NULL, lê a imagem do arquivo {rd} e deixa {rd} aberto. Se {rd} é NULL, lê o arquivo com esse nome. */ void ex_write_image(FILE *wr, flt_image_t *img); /* Escreve a imagem {img}, em formato PPM, PGM ou PBM, converte cada amostra para um valor em ponto fluante entre 0 e 1, e. */ options_t *parse_options(int argc, char **argv); /* Extrai os comandos da linha de comando e empacota-os em um registro de tipo {options_t}. */ #endif