Python skimage雏菊不同大小的特征向量

时间:2016-11-03 17:25:08

标签: python image-processing scikit-learn scikit-image

我正在使用skimage和sklearn来训练数据集food101的图像分类器

def process_image(image_fp):
image_ = imread(image_fp)
resize(image_, (400, 350)).shape
image=rgb2gray(image_)
descs=skimage.feature.daisy(image, step=180, radius=58, rings=2, histograms=6, orientations=8)
if descs.shape[0]!=3:
    descs=descs.transpose(1, 0, 2)
return descs.reshape(descs.size).tolist()

说到:

clf = grid_search.GridSearchCV(svm.SVC(), parameters).fit(x_train, y_train)

由于函数'process_image'返回的大小不同,它似乎是一个错误。

我可以通过选择具有较少元素的列表元素的数量来解决问题,但我认为它可能有更正确的方法。

1 个答案:

答案 0 :(得分:1)

我想你跳过了调整图片的大小。

更改此行:

resize(image_, (400, 350)).shape

到这一行:

image_ = resize(image_, (400, 350))

最终功能:

def process_image(image_fp):
    image_ = imread(image_fp)
    image_ = resize(image_, (400, 350))
    image=rgb2gray(image_)
    descs=skimage.feature.daisy(image, step=180, radius=58, rings=2, histograms=6, orientations=8)
    if descs.shape[0]!=3:
        descs=descs.transpose(1, 0, 2)
    return descs.reshape(descs.size).tolist()

当我更改它时,结果如下所示:

在更改代码之前:

Random image size: (445, 578, 3)

Daisy vector size: 624

更改代码后:

Random image size: (400, 350, 3)

Daisy vector size: 416