Repository navigation
Expand file tree
/
Copy pathImage_Process_KMeans.py
More file actions
75 lines (56 loc) · 1.91 KB
/
Copy pathImage_Process_KMeans.py
File metadata and controls
75 lines (56 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# -*- coding: utf-8 -*-
"""Untitled0.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/14LTyfo6C3YR0y5p0GFNNPJ1XuDnw0Upb
"""
# -*- coding: utf-8 -*-
"""Untitled4.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1wGSJw9VOMvkf7neop8LraseAL48XC_Ov
"""
from google.colab import drive
drive.mount('/content/drive/')
#https://drive.google.com/open?id=1z-PTDuxVbVUZzbr080VZrSrdL5gqiYeL
!ls "/content/drive/My Drive/Datasets"
from keras.preprocessing import image
from keras.applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input
import numpy as np
from sklearn.cluster import KMeans
import os, shutil, glob, os.path
from PIL import Image as pil_image
image.LOAD_TRUNCATED_IMAGES = True
model = VGG16(weights='imagenet', include_top=False)
# Variables
imdir = '/content/drive/My Drive/Datasets/class-3_pearlite'
number_clusters = 3
# Loop over files and get features
filelist = glob.glob(os.path.join(imdir, '*.tif'))
filelist.sort()
featurelist = []
for i in range(0,len(filelist)):
#print(i)
imagepath=filelist[i]
img = image.load_img(imagepath, target_size=(224, 224))
img_data = image.img_to_array(img)
img_data = np.expand_dims(img_data, axis=0)
img_data = preprocess_input(img_data)
features = np.array(model.predict(img_data))
featurelist.append(features.flatten())
# Clustering
kmeans = KMeans(n_clusters=number_clusters, random_state=0).fit(featurelist)
#print(kmeans)
import pandas as pd
df = pd.DataFrame(columns=['sample', 'output_cluster'])
for i in range(0,len(filelist)):
m=kmeans.labels_[i]
df1={'sample':filelist[i].rpartition('/')[-1],'output_cluster':m}
df = df.append(df1,ignore_index=True)
print(df)
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer)
writer.save()
from google.colab import files
files.download('output.xlsx')