код Габор фильтр

T

Truclam

Guest
Привет всем,
Я осуществить Габор фильтр в моем C функция (поместите его в Visual C ).Когда я составлено оно не было ошибок, но когда я нажал на кнопку excution эта функция была неудача доклада.Я не могу узнать ошибку и поэтому я надеюсь, кто-то поможет мне.

Вот мой код:
/ / "Образ" в Intel изображение формата (я использовал Opencv)
/ / Изображение серого изображения
недействительным Tien_xu_ly:: Габор (IplImage * изображение)
(
# определить R 300 / / число строк
# определить C 256 / / число colum
двойной IMAG [R] [C];
двойной Габор [R] [C];
двойной GX [R] [C], Gy [R] [C];
двойной Vx [R] [C], Вы [R] [C];
двойной thetaQ [R] [C];
INT R, C, U, V, X, Y, I, J;
INT НТРНет = 4;
двойной храм, x_theta, y_theta;
двойной treten;

/ * CONVERT ИЗОБРАЖЕНИЙ в массив * /
для (i = 0; я <image-> высоты; I )
(
для (J = 0; й <image-> ширина; J )
(
IMAG [J] = (беззнаковое знаков) (Изображение-> imageData изображения>
widthStep * Я) [J];
)
)

/ *
Локальный ориентации * /
для (р = 0, R <R, R )
(
для (C = 0; С <С, С )
(
/ / Градиентам GX и Гр (Собел)
GX [R] [C] = (IMAG [R-1] [C-1] * 1) (IMAG [R-1] [C] * 0) (IMAG [R-1] [C 1] *- 1) (IMAG [р] [C-1] * 2) (IMAG [р] [с] * 0) (IMAG [р] [с 1] *- 2) (IMAG [R 1] [C-1] * 1) (IMAG [R 1] [C] * 0) (IMAG [R 1] [C 1] *- 1);

Гр [R] [C] = (IMAG [R-1] [C-1] * 1) (IMAG [R-1] [C] * 2) (IMAG [R-1] [C 1] * 1) (IMAG [р] [C-1] * 0) (IMAG [р] [с] * 0) (IMAG [р] [с 1] * 0) (IMAG [R 1 ] [C-1] *- 1) (IMAG [R 1] [C] *- 2) (IMAG [R 1] [C 1] *- 1);Vx [р] [с] = 0;
Вы [R] [C] = 0;
для (U = Р-5; U <= R 5; U ) / / 10x10 окно
(
для (V = C-5; V <= C 5; V )
(

Vx [р] [с] = Vx [R] [C] (2 * (GX [V]) * (Gy [V]));

Вы [р] [с] = Вы [R] [C] ((GX [V] * GX [V]) * (Gy [V] * Гр [V ]));
)
)если (VX [р] [с] == 0)
(
thetaQ [R] [C] = 90;
)
еще
(
thetaQ [R] [C] = (0,5 * (ATAN (Вы [р] [с]) / (VX [р] [с ])));
)
)
)

/ * ХРЕБТА ЧАСТОТНЫЙ ОЦЕНКА *
/ / взять на себя в среднем в гребень расстояние в 3, так что 1 / 3 = 0.33 = F

/ * 2D Gábor ФИЛЬТРОВАНИЯ пространственного SPACE * /
для (X = 0; X <R; X )
(
для (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]));

/ / НТРНет = 4
Храм = (-1.0/2.0 )*((( x_theta * x_theta) / (16 )) (( y_theta * y_theta) / (16)));

/ / Габор в пространственной области
Габор [X] [Y] = EXP (храм) * COS (2 * 3.14 * 0.33 * x_theta);
)
)

/ / пространственно скручивать изображение с фильтром, чтобы получить расширенный изображение

для (X = 0; X <R; X )
(
для (Y = 0; Y <C; Y )
(
treten = 0;
для (i = X-5; I <х 6; I )
(
для (J = Y-5; J <Y 6; J )
(

treten = (Gabor [J] * IMAG [J]);

)
)

(Изображение-> imageData изображений> widthStep * Y) [X] = treten;)
)
)

 
В этих код, я обнаружил одну ошибку: из диапазона массива изображений в Собел петли.Это петля
для (р = 0, R <R, R )
(
для (C = 0; С <С, С )
(
/ / Градиентам GX и Гр (Собел)
GX [R] [C] = (IMAG [R-1] [C-1] * 1) (IMAG [R-1] [C] * 0) (IMAG [R-1] [C 1] *- 1) (IMAG [р] [C-1] * 2) (IMAG [р] [с] * 0) (IMAG [р] [с 1] *- 2) (IMAG [R 1] [C-1] * 1) (IMAG [R 1] [C] * 0) (IMAG [R 1] [C 1] *- 1);

Гр [R] [C] = (IMAG [R-1] [C-1] * 1) (IMAG [R-1] [C] * 2) (IMAG [R-1] [C 1] * 1) (IMAG [р] [C-1] * 0) (IMAG [р] [с] * 0) (IMAG [р] [с 1] * 0) (IMAG [R 1 ] [C-1] *- 1) (IMAG [R 1] [C] *- 2) (IMAG [R 1] [C 1] *- 1);

при R = 0, то изображение [-1] [] не соответствует действительности.
или когда с = 0, то изображение [] [-1] не действует;

Вы закончить ваш проект?
Я делаю один проект, который принимает участие в Габор фильтра.И я использую OpenCV в коде.
Можете ли вы выслать мне завершить этот кодекс?
Мой адрес: jackyhung12345 (AT) yahoo.com.
Ждем вашей почты.
Большое спасибо.

 

Welcome to EDABoard.com

Sponsor

Back
Top