Desenvolvendo um Leitor de Imagens PPM para Projetos que Envolvam Manipulação de Imagens Digitais
"Processamento de imagem é qualquer forma de processamento de dados no qual a entrada e saída são imagens tais como fotografias ou quadros de vídeo. Ao contrário do tratamento de imagens, que se preocupa somente na manipulação de figuras para sua representação final, o processamento de imagens é um estágio para novos processamentos de dados tais como aprendizagem de máquina ou reconhecimento de padrões. A maioria das técnicas envolve o tratamento da imagem como um sinal bidimensional, no qual são aplicados padrões de processamento de sinal." wikipedia
Quando começamos a estudar sobre o assunto, uma das primeiras coisas que fazemos é pesquisar tipos de arquivos básicos e fáceis de se trabalhar. O formato PPM é um formato de arquivo que armazena informações brutas sobre a imagem. Ele é de simples uso e compreensão.
Nesse vídeo você vai aprender ac desenvolver um leitor simples para esse formato:
Código:
#include <iostream>
#include <stdlib.h>
struct Pixel {
int r, g, b;
};
class Imagem {
private:
struct Pixel **pixels;
int width, height;
char tipo[2];
void setPixels(FILE *arq) {
struct Pixel **pixel;
fscanf(arq, "%s %d %d\n\n", &this->tipo, this->width, this->height); //lendo primeira linha do arquivo de entrada
pixel = (struct Pixel **) malloc (sizeof(struct Pixel *) * (this->height)); //alocando espaço em memoria para os pixels lidos no arquivo de entrada
for (int i = 0; i < this->width; i++) {
pixel[i] = (struct Pixel *) malloc (sizeof(struct Pixel) * (this->width));
}
for (int y = 0; y < this->height; y++) {
for (int x = 0; x < this->width; x++) {
fscanf(arq, "%d %d %d ", &pixel[y][x].r, &pixel[y][x].g, &pixel[y][x].b); //alimentando o espaço de memória alocado com os pixels
}
}
this->pixels = pixel;
}
public:
Imagem(FILE *arq) {
this->setPixels(arq);
}
};
int main(int argc, char **argv) {
FILE *arq = fopen(argv[1], "r");
if (arq == NULL) {
return 1;
}
Imagem *img = new Imagem(arq);
return 0;
}
Desenvolvendo um Leitor de Imagens PPM para Projetos que Envolvam Manipulação de Imagens Digitais
Reviewed by Dayvid
on
00:07
Rating:
Nenhum comentário