alifthi's picture
HousePricePrediction: utils file
b65d1cb
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