【发布时间】:2014-11-05 05:58:14
【问题描述】:
我正在尝试从输入图像中提取 Gabor 特征。因此,我设置了一系列具有不同参数(频率、角度和标准偏差)的 Gabor 滤波器,并且我将这些滤波器中的每一个与输入图像进行卷积,并查看输出幅度图像的均值和方差。因此,在 python 中,它看起来像:
import numpy as np
from scipy import ndimage as nd
# Here kernel is a given Gabor filter
def filter_image(self, image):
filtered = np.zeros((len(self.kernels)*2,) + image.shape)
for k, kernel in enumerate(self.kernels):
filtered[k*2, :] = nd.convolve(image, np.real(kernel), mode='wrap')
filtered[k*2+1, :] = nd.convolve(image, np.imag(kernel), mode='wrap')
return filtered
现在,我将功率图像的均值和方差视为:
def compute_features(self, image):
features = np.zeros((len(self.kernels), 2))
filtered = filter_image(image)
for k in range(0, len(self.kernels)):
power_image = np.sqrt(filtered[k*2]**2 + filtered[k*2+1]**2)
features[k, 0] = filtered[k, :].mean()
features[k, 1] = filtered[k, :].var()
return features
因此,当我查看每个过滤器响应的均值和方差时,我注意到方差相对于均值非常高。例如,我得到的值是(平均值 = 0.83,方差 = 900)。我想知道这是不是经常看到的东西。这是否告诉我图像中没有任何纹理?我不知道如何解释。
如果这不完全属于这个论坛,我深表歉意。我也确实在交叉验证上发布了这个。
【问题讨论】:
标签: python image-processing filtering