argprse.add_argument("-d", "--dataset", required = True,
	help = "FilePath to the folder that has target images to be indexed")
argprse.add_argument("-c", "--hsv", required = True,
	help = "File Path where the computed hsv index is saved")
argprse.add_argument("-t", "--texture", required = True,
	help = "File Path where the computed texture index is saved")
argprse.add_argument("-b", "--btree", required = True,
	help = "File Path where the computed tree index is saved")
argprse.add_argument("-q", "--query", required = True,
	help = "File Path to the query image")
argmnts = vars(argprse.parse_args())

# loading the query image and describing its color, texture and tree features
query_img = cv2.imread(argmnts["query"])
cfeats = cdes.describe_color(copy.copy(query_img))
texture = txdes.describe_texture(copy.copy(query_img))
tree = tdes.color_tree(copy.copy(query_img))
 
# ranking the images in our dataset based on the query image
ranker = Ranker(argmnts["hsv"], argmnts["texture"], argmnts["btree"])
final_results = ranker.rank(cfeats, texture, tree)

current_path = os.path.dirname(os.path.abspath(__file__))

# iterating over the final results
for (score, resID) in final_results:
	# printing the image names in the order of increasing score
	print resID + "    "+ str(score)
	source_path = argmnts["dataset"]+"/"+ resID
	dest_path = current_path+"/result/"+resID
	shutil.copy2(source_path,dest_path)
# opening the respective output index files in write mode
clroutput = open(argmnts["hsv"], "w")
treeoutput = open(argmnts["btree"], "w")
texoutput = open(argmnts["texture"], "w")

# using glob to capture the paths of the images and iterate through them
for path in glob.glob(argmnts["dataset"] + "/*.jpg"):
    # getting the unique filenames from the image path
    imgID = path[path.rfind("/") + 1:]
    # loading the image
    image = cv2.imread(path)

    # getting the color, texture and tree features from the image
    color = cdes.describe_color(image)
    tree = tdes.color_tree(image)
    texture = txdes.describe_texture(image)

    # writing the color features to the clroutput file
    color = [str(f) for f in color]
    clroutput.write("%s,%s\n" % (imgID, ",".join(color)))

    # writing the tree features to the treeoutput file
    tree = [str(t) for t in tree]
    treeoutput.write("%s,%s\n" % (imgID, ",".join(tree)))

    # writing the texture features to the texoutput file
    texture = [str(tx) for tx in texture]
    texoutput.write("%s,%s\n" % (imgID, ",".join(texture)))

# close all the index files
clroutput.close()
    required=True,
    help="File Path where the computed texture index is saved")
argprse.add_argument("-b",
                     "--btree",
                     required=True,
                     help="File Path where the computed tree index is saved")
argprse.add_argument("-q",
                     "--query",
                     required=True,
                     help="File Path to the query image")
argmnts = vars(argprse.parse_args())

# loading the query image and describing its color, texture and tree features
query_img = cv2.imread(argmnts["query"])
cfeats = cdes.describe_color(copy.copy(query_img))
texture = txdes.describe_texture(copy.copy(query_img))
tree = tdes.color_tree(copy.copy(query_img))

# ranking the images in our dataset based on the query image
ranker = Ranker(argmnts["hsv"], argmnts["texture"], argmnts["btree"])
final_results = ranker.rank(cfeats, texture, tree)

current_path = os.path.dirname(os.path.abspath(__file__))

# iterating over the final results
for (score, resID) in final_results:
    # printing the image names in the order of increasing score
    print resID + "    " + str(score)
    source_path = argmnts["dataset"] + "/" + resID
    dest_path = current_path + "/result/" + resID
    shutil.copy2(source_path, dest_path)
# opening the respective output index files in write mode
clroutput = open(argmnts["hsv"], "w")
treeoutput = open(argmnts["btree"], "w")
texoutput = open(argmnts["texture"], "w")
 
# using glob to capture the paths of the images and iterate through them
for path in glob.glob(argmnts["dataset"] + "/*.jpg"):
	# getting the unique filenames from the image path
	imgID = path[path.rfind("/") + 1:]
	# loading the image
	image = cv2.imread(path)

	# getting the color, texture and tree features from the image
	color = cdes.describe_color(image)
	tree = tdes.color_tree(image)
	texture = txdes.describe_texture(image)

	# writing the color features to the clroutput file
	color = [str(f) for f in color]
	clroutput.write("%s,%s\n" % (imgID, ",".join(color)))
 
	# writing the tree features to the treeoutput file
	tree = [str(t) for t in tree]
	treeoutput.write("%s,%s\n" % (imgID, ",".join(tree)))

	# writing the texture features to the texoutput file
	texture = [str(tx) for tx in texture]
	texoutput.write("%s,%s\n" % (imgID, ",".join(texture)))
 
# close all the index files
clroutput.close()