如何为SVM图像分类任务加载图像数据集

时间:2019-04-05 12:25:31

标签: python

我正在尝试使用MRI图像制作用于阿尔茨海默氏病分类的线性SVM分类器(AD与NC)。如何正确加载图像数据集?

我找到了一个SVM图像分类的示例,并尝试运行该试验,但是在加载数据集时出现错误。 文件夹名称是“图像” “图像”中有五个子文件夹。它们被命名为doller_bill,向日葵,披萨,狗和球。每个子文件夹包含50至60张jpg格式的照片。以下是我下载的示例代码。 download from github

from pathlib import Path
import matplotlib.pyplot as plt 
import numpy as np %matplotlib notebook 
from sklearn import svm, metrics, datasets 
from sklearn.utils import Bunch 
from sklearn.model_selection import GridSearchCV, train_test_split
from skimage.io import imread 
from skimage.transform import resize

def load_image_files(container_path, dimension=(64, 64)): 
    image_dir = Path(container_path) 
    folders = [directory for directory in image_dir.iterdir() if 
    directory.is_dir()] 
    categories = [fo.name for fo in folders]

    descr = "A image classification dataset"
    images = []
    flat_data = []
    target = []
    for i, direc in enumerate(folders):
        for file in direc.iterdir():
            img = skimage.io.imread(file)
            img_resized = resize(img, dimension, anti_aliasing=True, 
            mode='reflect')
            flat_data.append(img_resized.flatten()) 
            images.append(img_resized)
            target.append(i)
        flat_data = np.array(flat_data)
        target = np.array(target)
        images = np.array(images)

    return Bunch(data=flat_data,
             target=target,
             target_names=categories,
             images=images,
             DESCR=descr)

image_dataset = load_image_files("images/")

但是,当我遍历代码时,出现了如下错误

  

NameError:名称'skimage'未定义

所以,请您帮我弄清楚如何加载图像数据集。 例如,我有一个名为“ images”的文件夹 子文件夹分别命名为“ MRI images_NC”,“ MRI images_AD”, 因此,每个文件夹大约包含1500张照片。

再次感谢。

1 个答案:

答案 0 :(得分:0)

  

未定义名称'skimage'

表示在导入期间

from skimage.io import imread `enter code here`

找不到 skimage

请运行

  

pip安装scikit-image