如何在图像上应用这些Gabor滤波器小波?

close all;
clear all;
clc;
% Parameter Setting
R = 128;
C = 128;
Kmax = pi / 2;
f = sqrt( 2 );
Delt = 2 * pi;
Delt2 = Delt * Delt;
% Show the Gabor Wavelets
for v = 0 : 4
for u = 1 : 8
GW = GaborWavelet ( R, C, Kmax, f, u, v, Delt2 ); % Create the Gabor wavelets
figure( 2 );
subplot( 5, 8, v * 8 + u …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Python 中重现以下 MATLAB 代码的行为:
% Matlab code
wavelength = 10
orientation = 45
image = imread('filename.tif') % grayscale image
[mag,phase] = imgaborfilt(image, wavelength, orientation)
gabor_im = mag .* sin(phase)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有许可证,无法运行代码。此外,imgaborfilt的官方 Matlab 文档没有准确指定函数的作用。
由于缺乏明显的替代方案,我尝试在 Python 中使用 OpenCV(对其他建议开放)。我没有使用 OpenCV 的经验。我正在尝试使用cv2.getGaborKernel和cv2.filter2D。我也找不到这些函数行为的详细文档。Afaik 没有关于 OpenCV 的 Python 包装器的官方文档。函数的文档字符串提供了一些信息,但它不完整且不精确。
我发现了这个问题,其中在 C++ 中使用 OpenCV 来解决问题。我假设这些函数的工作方式非常相似(另请注意 官方 C++ 文档)。但是,它们有许多附加参数。我怎样才能找出 matlab 函数真正做了什么来重现行为?
# python 3.6
import numpy as np
import cv2
wavelength = 10
orientation …Run Code Online (Sandbox Code Playgroud)