 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
tony Invitado
|
Publicado: Dom 26 Ene, 2003 5:38 pm Asunto: funciones Gabor para codificar imagenes |
|
|
Hola a todos, necesito una funcion que dada una imagen me devuelva un codigo de bits.
La funcion tiene que hacer el procesamiento de la imagen por medio de filtros de Gabor en 2D que son filtros que tienen la peculiaridad de ser localizados en frecuencia y ademas de ser muy utilizados para caracterizacion de texturas.
Es ta funcion la necesito para mi proyecto fin de carrera que se trata de un reconocedor de iris.
Una vez que capturo la imagen la tengo que pasar por esta funcion y despues almacenar el codigo resultante y este codigo es el que tengo que almacenar. Cada codigo se correspondera con una imagen de un iris concreto, y los filtros de gabor utilizados son para que no afecten los cambios de luz y algunas variaciones mas...
La verdad es que no tengo mucha idea de los filtros de Gabor con que cualquier ayuda me vendrá muy bien.
Se que este tema tiene que ver mas con matematicas que con programacion y a lo mejor no estoy en el foro adecuado pero confio en vosotros¡¡¡. Muchas gracias. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Dom 26 Ene, 2003 6:15 pm Asunto: |
|
|
Espero te sirva
http://www.kung-foo.tv/gaborapi.html
ademas de
/code
* Copyright (C) 2002 Multimedia Information Processing Laboratory
* http://www.cse.cuhk.edu.hk/~miplab
* The Chinese University of Hong Kong
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include "objectweight.h"
#include "objectbox.h"
#define FRONT 255
#define BKGRND 0
#define ALPHA 1
////////////////////////////////////////////////////////////////////////////////
// Gabor Feature Extract algroithm from ICPR '96 p250--253 //
////////////////////////////////////////////////////////////////////////////////
//Gabor Function ,
void GaborFunction(int x,int y,float sita,float lmd,float sigmaX,float sigmaY,float *realpart,float* impart)
{
float R1,R2;
float temp;
R1=x*cos(sita)+y*sin(sita);
R2=-x*sin(sita)+y*cos(sita);
temp=exp(-0.5*(R1*R1/(sigmaX*sigmaX)+R2*R2/(sigmaY*sigmaY)));
*realpart=temp*cos(2*3.14*R1/lmd);
*impart=temp*sin(2*3.14*R1/lmd);
}
////////////////////////////////////////////////////////////////////////////////
//Gabor Transformation at 1 point (X, Y)
////////////////////////////////////////////////////////////////////////////////
float GaborAtOnePoint(int X,int Y,unsigned char *img,int m_X,int m_Y,float sita,float lmd,float sigmaX,float sigmaY)
{
float realpart=0.0,impart=0.0;
float sumreal=0.0, sumim=0.0;
int i,j;
for(i=-X;i<m_X-X;i++)
for(j=-Y;j<m_Y-Y;j++)
if(img[(Y+j)*m_X+X+i]!=BKGRND)
{
GaborFunction(i,j, sita, lmd, sigmaX, sigmaY,&realpart,& impart);
sumreal+=realpart;
sumim+=impart;
};
return (sqrt(sumreal*sumreal+sumim*sumim));
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
float* GaborTransformation(unsigned char *img,int m_X, int m_Y, int sx, int sy, int degree)
{
float *weight;
weight=ObjectWeightPoint(img, m_X, m_Y);
int *objectbox;
objectbox=ObjectBoxCircumscribe(img, m_X, m_Y, weight);
float lmd=2*1.414;
float sigmaX=0.5*lmd;
float sigmaY=0.5*lmd;
int x, y, stepx, stepy, X, Y, k, n;
int lx,ly,rx,ry;
lx=objectbox[0];
rx=objectbox[1];
ly=objectbox[2];
ry=objectbox[3];
delete weight;
delete objectbox;
if((lx-ALPHA)<0 ||(ly-ALPHA)<0||(rx+ALPHA)>m_X||(ry+ALPHA)>m_Y)
{
return NULL;
}
float sita, *GaborFeature=new float[degree*sx*sy];
lx-=ALPHA;
ly-=ALPHA;
rx+=ALPHA;
ry+=ALPHA;
stepx=(rx-lx+1)/sx;
stepy=(ry-ly+1)/sy;
n=0;
for(k=0; k<degree; k++)
{
for(y=0;y<sy;y++)
{
for(x=0;x<sx;x++)
{
X=lx+stepx*x;
Y=ly+stepy*y;
sita=(3.14*k)/degree;
GaborFeature[n]=GaborAtOnePoint(X,Y,img, m_X,m_Y, sita, lmd, sigmaX, sigmaY);
n++;
}
}
}
return GaborFeature;
}
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////// |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
|
| Volver arriba |
|
 |
tony Invitado
|
Publicado: Jue 30 Ene, 2003 5:54 pm Asunto: Gabor |
|
|
Muchas gracias a los dos¡¡¡ Voy a echarle un vistazo a las paginas y a ver como funciona el codigo.
Gracias ¡¡¡ Un saludo Tony |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|