Как загрузить набор данных изображений для задачи классификации изображений SVM

#python

#python

Вопрос:

Я пытаюсь создать линейный классификатор SVM (AD против NC) для классификации болезни Альцгеймера с использованием изображений МРТ. Как я могу правильно загрузить набор данных изображений?

Я нашел пример классификации изображений SVM и попытался выполнить пробную версию, но при загрузке набора данных произошла ошибка. Имя папки «изображения», в «изображениях» есть пять вложенных папок. Они называются doller_bill, sunflower, pizza, dog и ball. Каждая вложенная папка содержит 50-60 фотографий в формате jpg. Ниже приведены примеры кодов, которые я загрузил. загрузить с 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/")
  

Однако, когда я просматривал коды, появилась ошибка следующего вида

Ошибка имени: имя ‘skimage’ не определено

Итак, не могли бы вы, пожалуйста, помочь мне разобраться, как загрузить набор данных изображений. Например, у меня есть папка с именем «images», вложенные папки называются «MRI images_NC», «MRI images_AD», соответственно, каждая папка содержит примерно 1500 фотографий.

Еще раз спасибо.

Комментарии:

1. Измените img = skimage.io.imread(file) на img = imread(file)

2. Дорогие ребята, я уже правильно установил skimage. Итак, я предположил, что это не тот случай, когда я не устанавливал пакет.

3. Проблема не в установке пакета. Это то, как вы используете в коде. Вы импортировали imread , а затем пытаетесь выполнить skimage.io.imread . Python не знает, что skimage здесь, поскольку вы этого не сделали import skimage . Изменение img = skimage.io.imread(file) на img = imread(file) исправит вашу проблему

Ответ №1:

имя ‘skimage’ не определено

означает, что во время импорта

 from skimage.io import imread `enter code here`
  

не удается найти пакет skimage

Пожалуйста, запустите

pip установка scikit-image