2

im trying to figure out how to use SVM for image classification using images from my own dataset, to which im using the notebook from his link: https://github.com/whimian/SVM-Image-Classification. The problem is that, for whatever other project i use skimage it works alright, but for this one i get the error described above in the title in the following line:

img = skimage.io.imread(file)

I already used the commands pip uninstall scikit-image and install and still didn't work.

Moreover, the following errors occurs in the down lines, im not sure if they are related to this problem:

image_dataset.data, image_dataset.target, test_size=0.3,random_state=109

NameError: name 'image_dataset' is not defined


clf.fit(X_train, y_train)

NameError: name 'X_train' is not defined

And for visualization, here's the code snipped to which the error belongs to:

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)

As for the imports:

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

1 Answers1

2
 img = skimage.io.imread(file)

change this line to

 img = imread(file)
Shubham gupta
  • 671
  • 1
  • 5
  • 10
  • 3
    While this code snippet may be the solution, [including an explanation](//meta.stackexchange.com/questions/114762/explaining-entirely-‌​code-based-answers) really helps to improve the quality of your post. Remember that you are answering the question for readers in the future, and those people might not know the reasons for your code suggestion. – MotKohn May 06 '20 at 21:32