2015-05-09 4 views
5

Я применил Gabor filter на изображениях со следующими theta - {0,45,90,135}. но результирующие изображения были точно такими же с одним и тем же углом ориентации!Различные «тета» для фильтра Габора Возврат изображений без ориентации

Я ожидал, что результаты применения Габора фильтра с тетой = 90 будут отличаться в ориентации, чем тот, с Theat = 45, но после использования Габора фильтра с различной тетой, я получаю изображения без разница в ориентации!

Я использую фильтр Габора неправильно? Потому что я ожидаю, что каждое изображение будет иметь разную ориентацию в соответствии с ангелом ориентации, указанным в фильтре Габора.

Параметр я установил для фильтра Габора были следующими:

kernel size = Size(5,5); 
theta = {0,45,90,135} 
sigma = ,2 
type = CVType.CV_32F 
lambda = 100 
gamma = ,5 
psi = 5 

код:

public static void main(String[] args) { 

    MatFactory matFactory = new MatFactory(); 
    FilePathUtils.addInputPath(path_Obj); 
    Mat bgrMat = matFactory.newMat(FilePathUtils.getInputFileFullPathList().get(0)); 
    Mat gsImg = SysUtils.rgbToGrayScaleMat(bgrMat); 
    double[] theta = new double[4]; 
    theta[0] = 0; 
    theta[1] = 45; 
    theta[2] = 90; 
    theta[3] = 135; 

    for (int i = 0; i < 4; i++) { 
     Mat gaborCoeff = Imgproc.getGaborKernel(new Size(3,3), 2, theta[i], 4.1, 54.1, 0, CvType.CV_32F); 
     Mat dest = new Mat(); 
     Imgproc.filter2D(gsImg, dest, CvType.CV_32F, gaborCoeff); 
     ImageUtils.showMat(dest, "theta = " + theta[i]); 
    } 

} 

image_0 степень: Степень enter image description here

image_45: enter image description here

image_90 степень: enter image description here

image_135 степень: enter image description here

изображение после применения Габора с тета = 0,45,90,135, без сглаживания: enter image description here

+0

Можете ли вы показать нам код, который вы написали, который применяет фильтр Габора к вашим изображениям? – rayryeng

+0

@rayryeng извините за поздний ответ, пожалуйста, найдите код и выведенный выше обновленный – user2121

+0

@ user2121 Пожалуйста, измените 'lambda' на 10. Сообщите мне, если вы получите какие-либо изменения. –

ответ

0

Может быть, проблема здесь:

Mat gaborCoeff = Imgproc.getGaborKernel(new Size(3,3), 2, theta[i], 4.1, 54.1, 0, CvType.CV_32F); 

Я думаю, что это должно быть что-то вроде:

Mat gaborCoeff = Imgproc.getGaborKernel(new Size(3,3), sigma, theta[i], lambda, psi, 0, CvType.CV_32F); 

И я не уверен, о значениях лямбда и пси. Возможно, вам стоит попытаться увидеть полученные изображения с разными значениями.

И, наконец, результат Габора - это то, что вы назвали степенью изображения__о_о_и_о_о_о_о_о_о_о_о_о1о1о. Хотя между ними нет значительных изменений, я бы изменил параметры