|
Para quem trabalha com análise estatística de imagens, um dos grandes problemas é encontrar uma ferramenta gráfica que leia uma figura e retorne uma tabela ou um matriz com as informações das cores. Esta é uma informação útil que pode ser utilizada por exemplo, para encontrar as bordas da imagem, fazer o cálculo de dimensão fractal, cálculo do expoente de rugosidade, função de autocorrelação, transformada de Fourier, etc.
Para trabalhar com as imagens podemos usar uma biblioteca gráfica para a linguagem de programação C++ chamada de EasyBMP . EasyBMP é uma biblioteca livre designada para ler, escrever e modificar arquivos bitmap (BMP). O código fonte a seguir pode ser usado para ler uma imagem BMP nas cores preto e branco e retornar um arquivo de saída com as coordenadas x e y dos pixels na cor preto. //www.gnuscience.org #include <stdio.h> #include <stdlib.h> #include <math.h>
// Biblioteca para manipulacao de BMP #include "EasyBMP.h"
int main(int err, char **arg) { FILE *output; // arquivo de saida int x, y; // indices BMP figura; // variaveis biblioteca BMP
//VERIFICA ARGUMENTOS if(err != 3) { printf("sintax: %s + file_in + file_out\n",arg[0]); exit(1); }
// Lendo a imagem BMP figura.ReadFromFile(arg[1]);
// Abrindo o arquivo texto de saida if((output=fopen(arg[2], "w"))==NULL) { printf("nao pode abrir arquivo de saida\n"); exit(1); }
for(x=0; x< figura.TellWidth(); x++) for(y=0; y< figura.TellHeight(); y++) { if ((figura(x,y)-> Red == 0)&&(figura(x,y)-> Green == 0)&&(figura(x,y)-> Blue == 0)) { fprintf(output, "%d %d \n", x, y); } } fclose(output); } //end Salve o código fonte por exemplo como o nome de bmp2txt.c e compile da seguinte forma: g++ bmp2txt.c -o bmp2txt depois basta executar: ./bmp2txt arquivo.bmp arquivo.dat onde arquivo.bmp é a imagem a ser trabalhada e o arquivo.dat é o arquivos de saída. Para uma figura como a mostrada abaixo,  teríamos o seguinte resultado: x / y 1 1 1 3 2 2 3 2 4 4 O código fonte pode ser facilmente editado para imagens mais complexas, ou sej, com um número maior de cores. keywords: EasyBMP, bmp2txt, fig2txt, png2txt, jpg2txt, linux, dimensão fractal, getpixel, saveimage, fortran, C++ |