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"