Python:skirage gabor_内核大小不符合预期

2024-10-03 04:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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)

enter image description here

我不明白为什么当大小设置为3时,生成的内核是一个矩阵15x15

谢谢你的帮助, 塞巴斯蒂安


Tags: 方法代码图像nonenppigaborscikit
1条回答
网友
1楼 · 发布于 2024-10-03 04:37:24

带宽选项有点神秘。根据文档,“对于固定带宽,sigma_x和sigma_y将随着频率的增加而减少。如果用户设置了sigma_x和sigma_y,则忽略此值。”我建议为直接控制指定sigma_x和sigma_y

我的另一个窍门是频率。它有反向像素的单位。因此,更直接的方法是以像素为单位指定波长,然后频率=1/波长。例如,如果波长为10,则使用频率=1/10将意味着信号在10像素内完成1个完整周期。由于这里定义的方式,您不需要担心pi因子

相关问题 更多 >