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

问题描述 投票:-2回答:1

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

我找到了一个SVM图像分类的例子,我试图通过试验,但加载数据集时出错。文件夹名称为“images”,“images”中有五个子文件夹。它们被命名为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张照片。

再次感谢。

python
1个回答
0
投票

名称'skimage'未定义

意味着在导入期间

from skimage.io import imread `enter code here`

无法找到skimage套餐

请跑一个

pip安装scikit-image

© www.soinside.com 2019 - 2024. All rights reserved.