创建图像数据集以进行图像分类

时间:2019-10-11 22:52:06

标签: python pandas scikit-learn

我想用Pandas和Scikit-Learn libs创建图像分类器,但是我想拥有自己的图像数据? 从现在开始,我将熊猫列用于功能和结果,但是如何将图像添加到熊猫列(进行处理),以便可以在分类中使用它?

我可以只将图像添加到大熊猫中,对其进行处理并在分类器中使用它们吗,还是需要做一些不同的事情?

我的.py文件保存在我的.jpg图像所在的文件夹中,但是我现在不知道如何读取它们。

import pandas as pd
from sklearn.metrics import accuracy_score
from sklearn.ensemble import RandomForestClassifier

images = ['...list of my images...']
results = ['drvo','drvo','cvet','drvo','drvo','cvet','cvet'] 

df = pd.DataFrame({'Slike':images,
                   'Rezultat':results})

print(df)

features = df.iloc[:,:-1]
results = df.iloc[:,-1]

clf = RandomForestClassifier(n_estimators=100, random_state=0)
model = clf.fit(features, results)

prediction_result =  model.predict(features)
print(prediction_result)

accuracy_test = accuracy_score(results, prediction_result)
print(accuracy_test)

1 个答案:

答案 0 :(得分:0)

我不认为sklearn和熊猫可以单独阅读图像。我建议您使用numpy数组表示图像。您可以使用诸如scikit-imagepillow之类的库。

pip install scikit-image

通过以下方式验证安装:

>>> import skimage
>>> skimage.__version__

然后您可以通过以下方式将图像获取为3-D numpy数组:

skimage.io.imread(fname)

前两个维是x和y坐标(其中[0,0]在左上角),第三个维具有颜色通道的值。对于RGB图像,每个[x,y]都有3个值,分别对应于红色,绿色和蓝色通道。有关更多信息,请参见skimage docs