我正在使用scikit图像库中的gabor核方法来检查我的强度图像的方向。根据官方文件,它采用以下参数:
gabor_kernel(frequency, theta=0, bandwidth=1, sigma_x=None, sigma_y=None, n_stds=3, offset=0)
在我的代码中,我使用以下代码,因此内核的大小被隐式定义为3
from skimage.filters import gabor_kernel
frequency = (np.pi) / (2 * np.sqrt(2))
theta = 0
gkernel = gabor_kernel(frequency, theta=theta)
print('theta=%d,\nfrequency=%.2f' % (theta * 180 / np.pi, frequency))
print(gkernel)
我不明白为什么当大小设置为3时,生成的内核是一个矩阵15x15
谢谢你的帮助, 塞巴斯蒂安
带宽选项有点神秘。根据文档,“对于固定带宽,sigma_x和sigma_y将随着频率的增加而减少。如果用户设置了sigma_x和sigma_y,则忽略此值。”我建议为直接控制指定sigma_x和sigma_y
我的另一个窍门是频率。它有反向像素的单位。因此,更直接的方法是以像素为单位指定波长,然后频率=1/波长。例如,如果波长为10,则使用频率=1/10将意味着信号在10像素内完成1个完整周期。由于这里定义的方式,您不需要担心pi因子
相关问题 更多 >
编程相关推荐