Depois de muito tempo sem postar, estou de volta.
Desta vez não vou falar de teoria ou documentação, mas apenas de um exemplo prático de como utilizar SDL em Processamento de Imagens.
SDL não tem componentes gráficas, caixa de diálogo ou funções de acesso ao pixel, mas a gente pode improvisar.Em SDL trabalhar com pixels é muito fácil e rápido.
Imagem 2D é com a SDL mesmo !
Download: » código fonte
.:: Menu Rápido ::.
Linux | C/C++ | Downloads | SDL | [×]
Para programar tem que ser Linux ! Para Desktop prefiro o Ubuntu !
A melhor maneira de se descobrir uma lib gratuita é nos repositórios do Ubuntu: $apt-cache search lib <palavra_chave> dev
Ou pelo devpaks.org, mas o repositório tem me ajudado mais !!!
A melhor maneira de se descobrir uma lib gratuita é nos repositórios do Ubuntu: $apt-cache search lib <palavra_chave> dev
Ou pelo devpaks.org, mas o repositório tem me ajudado mais !!!
- Script's GIMP - Python-Fu !!!
- Dicas Web
- Vídeo Compiz Fusion (Desktop 3D)
- Compilando com gcc e Makefile
- Que tal mudar para Ubuntu ?!
C e C++ são minhas linguagens de programação. No começo foi muito difícil, mas agora já estou mais prático (Ainda não é fácil).
- SDL - A Biblioteca dos Jogos 2D
- Analisador léxico de arquivos script
- Simpatizando com a Libxml2
- AsciiGen - Tabela ASCII em C
- Conexão com API C do MySQL
- Compilando com gcc e Makefile
Jogos e programas de minha autoria !
- DR Tetris 0.3 - Tetris no estilo tradicional !
- DR Quebra-Cabeça disponível para download !!!
- Freeggs - Liberdade aos ovos \o/
Se você quer aprender a desenhar... lápis e palel.
Se você quer aprender a programar jogos... SDL !!!
Se você quer aprender a programar jogos... SDL !!!
- Carregando mapas 2D no formato TMX
- Controle de tempo e Frame Rate
- SDL em Processamento de Imagens
- SDL_Surface - Introdução detalhada
- Imprimindo texto com SDL_Ttf
- SDL_Collide - Colisão 2D para jogos
- Tocando música e sons com SDL_mixer
- Gerando e carregando mapas 2D em jogos
- SDL - A Biblioteca dos Jogos 2D
quinta-feira, 27 de março de 2008
SDL em Processamento de Imagens
Assinar:
Postar comentários (Atom)
4 comentários:
também tenho utilizado bastante o SDL para processamento de imagem, mas com sdlBasic - e não só, grafismo experimental intereactivo tb, cheguei a meter alguns videos em http://youtube.com/nitturo
Olá.
Também gostaria de iniciar a utilizar a SDL para processamento de imagens e queria saber se poderiam mostrar como ficaria o algorítmo da mediana nesse do negativo.
Obrigado.
Primeiro... o que é um filtro de mediana?!
Encontrei isso... nesse ppt aki.
Fui fazer com esse exemplo e quase acertei !
Vou postar aki a função... mas não 100% dela. Se não vira Ctrl+C Ctrl+V !
//-----------------
/*
* A função verifica na vizinhança 5x5 a cor mais utilizada... e antão a
* usa no pixel do centro.
*/
void filtro_da_mediana(){
int vet[2][25];
int nVet;
Uint32 c, c2;
int i,j,k,l,m;
SDL_PixelFormat *fmt = img->format;
SDL_Surface *tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, img->w, img->h, fmt->BitsPerPixel, fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask);
// Loop WxH da imagem
for(i=0; i (menor_que) img->w; i++){
for(j=0; j (menor_que) img->h; j++){
c = getpix(img, i, j);
// Loop da vizinhança 5x5
nVet = 0;
for(k=-2; k (menor_que) =2; k++){
if(i+k (menor_que) 0) continue;
if(i+k>=img->w) break;
for(l=-2; l (menor_que) =2; l++){
if(j+l (menor_que) 0) continue;
if(j+l>=img->h) break;
if(k==0 && l==0) continue;
// Pega o pixel e acumula a quantidade de cada cor
// ... trexo de código omitido... desafio !
}
}
// Seleciona a cor de maior quantidade (maior repetição)
// ... trexo de código omitido... desafio !
// Seta o pixel na imagem temporária
setpix(tmp, i, j, c2);
}
}
// Finalmente transfere tudo para img
SDL_BlitSurface(tmp, 0, img, 0);
SDL_FreeSurface(tmp);
}
obs.: Tira a linha if(k==0 && l==0) continue; pois vai ficar ligeiramente melhor !
Postar um comentário