def __init__(self, imagePaths, maskPaths): """ap = argparse.ArgumentParser() ap.add_argument("-i", "--images", required = True, help = "path to the image dataset") ap.add_argument("-m", "--masks", required = True, help = "path to the image masks") args = vars(ap.parse_args())""" data = [] target = [] rgbHistObj = RGBHistogram([8, 8, 8]) adaptiveObj = Adaptive() i = 1 for imagePath in imagePaths: image = cv2.imread(imagePath) # mask = cv2.imread(maskPath) # mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) # threshImage = adaptiveObj.getThresh(maskPath) print "->" + str(i) i = i + 1 features = rgbHistObj.calculateHist(image, mask=None) # Maskta size hatasi veriyor none yaptim. data.append(features) target.append(imagePath.split("_")[1]) # Machine Learning targetNames = np.unique(target) # Tekrarlari at. self.le = LabelEncoder() target = self.le.fit_transform(target) # Tur isimlerini integer a cevir mach. lear. icin # Random Train ve Test datasi olustur elimizdeki verecegimiz egitim setinin overfittting olmamasi icin. # Datanin dogrulugunu kontrol icin AccuracyTest kodu yazildi. (trainData, testData, trainTarget, testTarget) = train_test_split(data, target, test_size=0.3, random_state=42) self.model = RandomForestClassifier(n_estimators=25, random_state=84) self.model.fit(trainData, trainTarget) # Egitim gerceklesiyor. print "*********************************************EGITIM VERLERI************************************************\n" + classification_report( testTarget, self.model.predict(testData), target_names=targetNames ) + "************************************************************************************************************" """for i in np.random.choice(np.arange(0, len(imagePaths)), 10):
maskPaths = sorted(glob.glob("dataset/masksjpg" + "/*.jpg")) trainObj = TrainClassify(imagePaths, maskPaths) # ****************************************************TAC TEST*************************************************************** # adaptiveObj = Adaptive() testPaths = sorted(glob.glob("test" + "/*.jpg")) for testPath in testPaths: image = cv2.imread(testPath) # threshImage = adaptiveObj.getThresh(imagePath) # convertedThresh = cv2.cvtColor(threshImage, cv2.COLOR_GRAY2BGR) # masked_img = cv2.bitwise_and(image,image,mask = threshImage) # cv2.imshow("asdasd", masked_img) rgbHistObj = RGBHistogram([8, 8, 8]) features = rgbHistObj.calculateHist(image, mask=None) flower = trainObj.le.inverse_transform(trainObj.model.predict(features))[ 0 ] # Burada ilk feature i isim olarak aliyor bunu integerdan ceviriyor. print testPath if flower == "crocus": flower = "cigdem" if flower == "daisy": flower = "papatya" if flower == "pansy": flower = "menekse" if flower == "sunflower": flower = "aycicegi"