T
Truclam
Guest
Hi all,
I Gabor implementirati filtar u mom c funkcije (stavite ga u Visual C ).kad sam ga sastavio nema greške, ali kad sam kliknuo na gumb za excution ovu funkciju bilo je neuspjeh izvješće.Ja ne mogu otkriti grešku tako da se nadam netko pomoć mene.
Evo moj broj:
/ / "Slika" je u Intel format slike (ja iskorišten Opencv)
/ / Slika je siva slika
praznina Tien_xu_ly:: Gabor (IplImage * slika)
(
# define R 300 / / broj redova
# define C 256 / / broj Colum
dvokrevetna imag [R] [C];
dvokrevetna Gabor [R] [C];
double gx [R] [C], gy [R] [C];
dvokrevetna Vx [R] [C], Vy [R] [C];
dvokrevetna thetaQ [R] [C];
int r, c, u, v, x, y, i, j;
int STDEV = 4;
dvokrevetna hram, x_theta, y_theta;
double treten;
/ * PRETVORITI SLIKA NA niz * /
for (i = 0; ja <image-> height; i )
(
for (j = 0; j <image-> width; j )
(
imag [j] = (unsigned char) (image-> imageData slike->
widthStep * i) [j];
)
)
/ * * PROCJENA LOKALNE ORIENTATION /
for (r = 0; r <R, r )
(
for (c = 0, c <C, C )
(
/ / Gx te gradijente gy (Sobel)
gx [r] [c] = (imag [R-1] [c-1] * 1) (imag [R-1] [c] * 0) (imag [R-1] [c 1] *- 1) (imag [r] [c-1] * 2) (imag [r] [c] * 0) (imag [r] [c 1] *- 2) (imag [r 1] [c-1] * 1) (imag [r 1] [c] * 0) (imag [r 1] [c 1] *- 1);
gy [r] [c] = (imag [R-1] [c-1] * 1) (imag [R-1] [c] * 2) (imag [R-1] [c 1] * 1) (imag [r] [c-1] * 0) (imag [r] [c] * 0) (imag [r] [c 1] * 0) (imag [r 1 ] [c-1] *- 1) (imag [r 1] [c] *- 2) (imag [r 1] [c 1] *- 1);Vx [r] [c] = 0;
Vy [r] [c] = 0;
za (u = r-5; U <r = 5; u ) / / 10x10 prozor
(
for (v = c-5; v <c = 5; v )
(
Vx [r] [c] = Vx [r] [c] (2 * (gx [v]) * (gy [v]));
Vy [r] [c] = Vy [r] [c] ((gx [v] * gx [v]) * (gy [v] * gy [v ]));
)
)if (Vx [r] [c] == 0)
(
thetaQ [r] [c] = 90;
)
drugi
(
thetaQ [r] [c] = (0.5 * (atan (Vy [r] [c]) / (Vx [r] [c ])));
)
)
)
/ * Sljeme FREKVENCIJE PROCJENA * /
/ / pretpostaviti prosječna udaljenost između grebena se 3, pa 1 / 3 = 0,33 = f
/ * 2D GABOR FILTRIRANJA u prostornom PROSTOR * /
for (x = 0, x <R, x )
(
for (y = 0, y <C; y )
(
x_theta = (x * cos (thetaQ [x] [y ])) ( y * sin (thetaQ [x] [y]));
y_theta =- (x * sin (thetaQ [x] [y ])) ( y * cos (thetaQ [x] [y]));
/ / STDEV = 4
hram = (-1.0/2.0 )*((( x_theta * x_theta) / (16 )) (( y_theta * y_theta) / (16)));
/ / Gabor u prostornom domenu
Gabor [x] [y] = exp (hram) * cos (2 * 3,14 * 0,33 * x_theta);
)
)
/ / prostorno smotati u rolnu slika sa filterom dobiti poboljšana slika
for (x = 0, x <R, x )
(
for (y = 0, y <C; y )
(
treten = 0;
for (i = x-5; i <x 6; i )
(
for (j = y-5; j <6 y j )
(
treten = (Gabor [j] * imag [j]);
)
)
(image-> imageData slike-> widthStep * y) [x] = treten
)
)
I Gabor implementirati filtar u mom c funkcije (stavite ga u Visual C ).kad sam ga sastavio nema greške, ali kad sam kliknuo na gumb za excution ovu funkciju bilo je neuspjeh izvješće.Ja ne mogu otkriti grešku tako da se nadam netko pomoć mene.
Evo moj broj:
/ / "Slika" je u Intel format slike (ja iskorišten Opencv)
/ / Slika je siva slika
praznina Tien_xu_ly:: Gabor (IplImage * slika)
(
# define R 300 / / broj redova
# define C 256 / / broj Colum
dvokrevetna imag [R] [C];
dvokrevetna Gabor [R] [C];
double gx [R] [C], gy [R] [C];
dvokrevetna Vx [R] [C], Vy [R] [C];
dvokrevetna thetaQ [R] [C];
int r, c, u, v, x, y, i, j;
int STDEV = 4;
dvokrevetna hram, x_theta, y_theta;
double treten;
/ * PRETVORITI SLIKA NA niz * /
for (i = 0; ja <image-> height; i )
(
for (j = 0; j <image-> width; j )
(
imag [j] = (unsigned char) (image-> imageData slike->
widthStep * i) [j];
)
)
/ * * PROCJENA LOKALNE ORIENTATION /
for (r = 0; r <R, r )
(
for (c = 0, c <C, C )
(
/ / Gx te gradijente gy (Sobel)
gx [r] [c] = (imag [R-1] [c-1] * 1) (imag [R-1] [c] * 0) (imag [R-1] [c 1] *- 1) (imag [r] [c-1] * 2) (imag [r] [c] * 0) (imag [r] [c 1] *- 2) (imag [r 1] [c-1] * 1) (imag [r 1] [c] * 0) (imag [r 1] [c 1] *- 1);
gy [r] [c] = (imag [R-1] [c-1] * 1) (imag [R-1] [c] * 2) (imag [R-1] [c 1] * 1) (imag [r] [c-1] * 0) (imag [r] [c] * 0) (imag [r] [c 1] * 0) (imag [r 1 ] [c-1] *- 1) (imag [r 1] [c] *- 2) (imag [r 1] [c 1] *- 1);Vx [r] [c] = 0;
Vy [r] [c] = 0;
za (u = r-5; U <r = 5; u ) / / 10x10 prozor
(
for (v = c-5; v <c = 5; v )
(
Vx [r] [c] = Vx [r] [c] (2 * (gx [v]) * (gy [v]));
Vy [r] [c] = Vy [r] [c] ((gx [v] * gx [v]) * (gy [v] * gy [v ]));
)
)if (Vx [r] [c] == 0)
(
thetaQ [r] [c] = 90;
)
drugi
(
thetaQ [r] [c] = (0.5 * (atan (Vy [r] [c]) / (Vx [r] [c ])));
)
)
)
/ * Sljeme FREKVENCIJE PROCJENA * /
/ / pretpostaviti prosječna udaljenost između grebena se 3, pa 1 / 3 = 0,33 = f
/ * 2D GABOR FILTRIRANJA u prostornom PROSTOR * /
for (x = 0, x <R, x )
(
for (y = 0, y <C; y )
(
x_theta = (x * cos (thetaQ [x] [y ])) ( y * sin (thetaQ [x] [y]));
y_theta =- (x * sin (thetaQ [x] [y ])) ( y * cos (thetaQ [x] [y]));
/ / STDEV = 4
hram = (-1.0/2.0 )*((( x_theta * x_theta) / (16 )) (( y_theta * y_theta) / (16)));
/ / Gabor u prostornom domenu
Gabor [x] [y] = exp (hram) * cos (2 * 3,14 * 0,33 * x_theta);
)
)
/ / prostorno smotati u rolnu slika sa filterom dobiti poboljšana slika
for (x = 0, x <R, x )
(
for (y = 0, y <C; y )
(
treten = 0;
for (i = x-5; i <x 6; i )
(
for (j = y-5; j <6 y j )
(
treten = (Gabor [j] * imag [j]);
)
)
(image-> imageData slike-> widthStep * y) [x] = treten
)
)