我想从图像中提取 HOG 特征,以便我可以将它们放入分类器(AdaBoost.SAMME
特别是使用 scikit-learn: multiclass Adaboost in scikit-learn ensemble)。
为此,我需要将图像转换为类似数组的shape = [n_samples, n_features]
但是从图像中提取 HOG 特征的输出是一维数组。这是我的代码的相关部分:
tree = io.imread('C:\\Users\\app\\Pictures\\treephoto1.jpg')
type(tree)
print tree.shape, tree.dtype
graytree = color.rgb2gray(tree)
ge = filter.canny(graytree)
fd, hog_image = hog(ge, orientations=8, pixels_per_cell=(16, 16),
cells_per_block=(1, 1), visualise=True)
当我检查fd
时,它是一个像这样的数组:
让我们取前 9 行并假设这是hog
函数的完整输出,并且我从中获得 HOG 特征的这张图像是我的训练数据集中的第一张图像。
那么鉴于我有一千张训练图像,这个 HOG 信息将如何表示为X = [n_samples, n_features]
?
下面的行X
是我可以用作分类器输入的第一行吗?
[1, [0.162, 0.168, 0.250, 0.114, 0.106, 0.044, 0.035, 0.059, 0.200, 0.149]]
这整行 HOG 值是否会被视为单个特征?或者这是错的?据我了解,训练样本应符合以下格式:
[sample_index, feature_1, feature_2, feature_3, ..., feature_x]