alifthi's picture
HousePricePrediction: utils file
b65d1cb
Raw
History Blame Contribute Delete
1.9 kB
import numpy as np
from glob import glob
import cv2 as cv
import sklearn as sk
import pandas as pd
class utils():
def __init__(self,txtPath,imagePath):
self.image,self.txtFeature , self.label = self.loadData(txtPath,imagePath)
self.const = None
def split(self):
split = sk.modelselection.train_test_split(self.Data,test_size = 0.2)
return split
def loadData(self,txtPath,imgPath):
txtFeatur = pd.DataFrame([[float(t) for t in x.split('\n')[0].split(' ')] for x in open(txtPath).readlines()])
txtFeatur.T.loc[[0,1,2,3],:]
label = txtFeatur.loc[:,4]
txtFeatur = txtFeatur.T.loc[[0,1,2,3],:].T
max = txtFeatur.max()
txtFeatur = txtFeatur/max
self.const = np.max(label)
label = label/self.const
for i,p in enumerate(glob(imgPath+'/*')):
bedroom = []
bathroom = []
frontal = []
kitchen = []
place = p.split('/')[-1].split('.')[0].split('_')[1]
if place == 'bedroom':
bedroom.append(self.preProcess(cv.imread(p)))
elif place == 'bathroom':
bathroom.append(self.preProcess(cv.imread(p)))
elif place == 'frontal':
frontal.append(self.preProcess(cv.imread(p)))
else:
kitchen.append(self.preProcess(cv.imread(p)))
if i%500 == 0:
print('[INFO] {}th image loaded'.format(i))
# bedroom = np.array(bedroom)
# bathroom = np.array(bathroom)
# frontal = np.array(frontal)
# kitchen = np.array(kitchen)
return ([bedroom,bathroom,frontal,kitchen],txtFeatur, label)
@staticmethod
def preProcess(image):
image = cv.resize(image,(128,128))
image = cv.cvtColor(image,cv.COLOR_BGR2RGB)
image = image/255.0
return image