def test(chosenAlgo): global algoName global success global failure global accuracy global singleTime global totalTime global countHits global trainLength global testLength # global intermediate algoName = chosenAlgo print database, testName, algoName if(algoName == "eigenface"): if(database == "yale A"): if(testName == "choice"): global testing global testing global training_answer global W global mu global projections global testing_answer print "FETCHING TEST IMAGES" testing, training_answer, W, mu, projections, testing_answer = eigenfaces.test_yale(testName) print testing_answer return render_template("choice.html",images = testing_answer, db = "/static/images/yalefaces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits= eigenfaces.test_yale(testName) print countHits elif(database == "yale B"): pass elif(database == "orl"): if(testName == "choice"): global testing global testing global training_answer global W global mu global projections global testing_answer testing, training_answer, W, mu, projections, testing_answer = eigenfaces.test_orl(testName) return render_template("choice.html", images = testing_answer, db = "/static/images/orl_faces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = eigenfaces.test_orl(testName) elif(algoName == "fisherface"): if(database == "yale A"): if(testName == "choice"): global testing global testing global training_answer global W global mu global projections global testing_answer testing, training_answer, W, mu, projections, testing_answer = fisherfaces.test_yale(testName) return render_template("choice.html", images = testing_answer, db = "/static/images/yalefaces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = fisherfaces.test_yale(testName) elif(database == "yale B"): pass elif(database == "orl"): if(testName == "choice"): global testing global testing global training_answer global W global mu global projections global testing_answer testing, training_answer, W, mu, projections, testing_answer = fisherfaces.test_orl(testName) return render_template("choice.html", images= testing_answer, db = "/static/images/orl_faces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = fisherfaces.test_orl(testName) elif(algoName == "sift"): if(database == "yale A"): if(testName == "choice"): global descriptors_testing global training_answer global descriptors_training global testing_answer descriptors_testing, training_answer, descriptors_training, testing_answer = sift.test_yale(testName) return render_template("choice.html", images= testing_answer, db = "/static/images/yalefaces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = sift.test_yale(testName) elif(database == "yale B"): pass elif(database == "orl"): if(testName == "choice"): global descriptors_testing global training_answer global descriptors_training global testing_answer descriptors_testing, training_answer, descriptors_training, testing_answer = sift.test_orl(testName) return render_template("choice.html",images= testing_answer, db="/static/images/orl_faces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = sift.test_orl(testName) elif(algoName == "lem"): if(database == "yale A"): if(testName == "choice"): global testing_corners global training_corners global training_answer global testing_answer testing_corners, training_corners, training_answer, testing_answer = lem.test_yale(testName) return render_template("choice.html",images= testing_answer, db="/static/images/yalefaces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = lem.test_yale(testName) elif(database == "yale B"): pass elif(database == "orl"): if(testName == "choice"): global testing_corners global training_corners global training_answer global testing_answer testing_corners, training_corners, training_answer, testing_answer = lem.test_orl(testName) return render_template("choice.html",images= testing_answer, db="/static/images/orl_faces/") else: failure, success, accuracy, singleTime, totalTime, trainLength, testLength, countHits = lem.test_orl(testName) acc=str(accuracy)[:6]+"%" print acc return render_template("chooseResult.html",accuracy=acc, singleTime=singleTime, totalTime=totalTime, training_set_length=trainLength, testing_set_length=testLength, countHits=countHits)
def faceRec(self,name): if(name=="eigenface"): self.algoName = "eigenface" if(self.db == "yale"): if(self.testName=="choice"): self.testing, self.training_answer, self.W, self.mu, self.projections, self.testing_answer = eigenfaces.test_yale(self.testName) self.choiceImage = "Eigenface_choice_yale" else: image1, image2, accuracy = eigenfaces.test_yale(self.testName) elif(self.db == "orl"): if(self.testName=="choice"): self.testing, self.training_answer, self.W, self.mu, self.projections, self.testing_answer = eigenfaces.test_orl(self.testName) self.choiceImage = "Eigenface_choice_orl" else: image1, image2, accuracy = eigenfaces.test_orl(self.testName) elif(self.db == "db3"): pass if(self.testName=="choice"): self.testImage ='' self.choiceFrame() else: print image1, image2 self.eigenface_success = tk.Frame(self) self.eigenface_fail = tk.Frame(self) self.eigenface_intermediate = tk.Frame(self) self.eigenface_success.place(in_=self.eigenface, x=250, y=120, relwidth=1, relheight=1) self.eigenface_fail.place(in_=self.eigenface, x=250, y=120, relwidth=1, relheight=1) self.eigenface_intermediate.place(in_=self.eigenface, x=250, y=120, relwidth=1, relheight=1) eigenButton1 = tk.Button(self.eigenface, text = "Success", command=lambda:self.eigenface_success.lift()) eigenButton2 = tk.Button(self.eigenface, text = "Failure", command=lambda:self.eigenface_fail.lift()) eigenButton3 = tk.Button(self.eigenface, text = "Intermediate", command=lambda:self.eigenface_intermediate.lift()) eigenButton4 = tk.Button(self.eigenface, text="Back",command=lambda:self.remove(eigenButton1, eigenButton2, eigenButton3, eigenButton4)) eigenButton1.pack(side="top") eigenButton2.pack(side="top") eigenButton3.pack(side="top") eigenButton4.pack(side="top") failure = ImageTk.PhotoImage(file=image1) success = ImageTk.PhotoImage(file=image2) labelFail = tk.Label(self.eigenface_fail, image = failure) labelFail.image = failure labelFail.pack(side="left") labelSuccess = tk.Label(self.eigenface_success, image = success) labelSuccess.image = success labelSuccess.pack(side="left") self.eigenface.lift() elif(name=="fisherface"): self.algoName = "fisherface" if(self.db == "yale"): if(self.testName=="choice"): self.testing, self.training_answer, self.W, self.mu, self.projections, self.testing_answer = fisherfaces.test_yale(self.testName) self.choiceImage = "Fisherface_choice_yale" else: image1, image2, accuracy = fisherfaces.test_yale(self.testName) elif(self.db == "orl"): if(self.testName=="choice"): self.testing, self.training_answer, self.W, self.mu, self.projections, self.testing_answer = fisherfaces.test_orl(self.testName) self.choiceImage = "Fisherface_choice_orl" else: image1, image2, accuracy = fisherfaces.test_orl(self.testName) elif(self.db == "db3"): pass if(self.testName=="choice"): self.choiceFrame() else: print image1, image2 self.fisherface_success = tk.Frame(self) self.fisherface_fail = tk.Frame(self) self.fisherface_intermediate = tk.Frame(self) self.fisherface_success.place(in_=self.fisherface, x=250, y=100, relwidth=1, relheight=1) self.fisherface_fail.place(in_=self.fisherface, x=250, y=100, relwidth=1, relheight=1) self.fisherface_intermediate.place(in_=self.fisherface, x=250, y=100, relwidth=1, relheight=1) fisherButton1 = tk.Button(self.fisherface, text = "Success", command=lambda:self.fisherface_success.lift()) fisherButton2 = tk.Button(self.fisherface, text = "Failure", command=lambda:self.fisherface_fail.lift()) fisherButton3 = tk.Button(self.fisherface, text = "Intermediate", command=lambda:self.fisherface_intermediate.lift()) fisherButton4 = tk.Button(self.fisherface, text="Back",command=lambda:self.remove(fisherButton1, fisherButton2, fisherButton3, fisherButton4)) fisherButton1.pack(side="top") fisherButton2.pack(side="top") fisherButton3.pack(side="top") fisherButton4.pack(side="top") failure = ImageTk.PhotoImage(file=image1) success = ImageTk.PhotoImage(file=image2) labelFail = tk.Label(self.fisherface_fail, image = failure) labelFail.image = failure labelFail.pack(side="left") labelSuccess = tk.Label(self.fisherface_success, image = success) labelSuccess.image = success labelSuccess.pack(side="left") self.fisherface.lift() elif(name=="sift"): self.algoName = "sift" if(self.db == "yale"): image1, image2, accuracy = sift.test_yale(self.testName) elif(self.db == "orl"): image1, image2, accuracy = sift.test_orl(self.testName) elif(self.db == "db3"): pass print image1, image2 self.sift_success = tk.Frame(self) self.sift_fail = tk.Frame(self) self.sift_intermediate = tk.Frame(self) self.sift_success.place(in_=self.sift, x=250, y=100, relwidth=1, relheight=1) self.sift_fail.place(in_=self.sift, x=250, y=100, relwidth=1, relheight=1) self.sift_intermediate.place(in_=self.sift, x=250, y=100, relwidth=1, relheight=1) siftButton1 = tk.Button(self.sift, text = "Success", command=lambda:self.sift_success.lift()) siftButton2 = tk.Button(self.sift, text = "Failure", command=lambda:self.sift_fail.lift()) siftButton3 = tk.Button(self.sift, text = "Intermediate", command=lambda:self.sift_intermediate.lift()) siftButton4 = tk.Button(self.sift, text="Back",command=lambda:self.remove(siftButton1, siftButton2, siftButton3, siftButton4)) siftButton1.pack(side="top") siftButton2.pack(side="top") siftButton3.pack(side="top") siftButton4.pack(side="top") failure = ImageTk.PhotoImage(file=image1) success = ImageTk.PhotoImage(file=image2) labelFail = tk.Label(self.sift_fail, image = failure) labelFail.image = failure labelFail.pack(side="left") labelSuccess = tk.Label(self.sift_success, image = success) labelSuccess.image = sugridccess labelSuccess.pack(side="left") self.sift.lift() elif(name=="lem"): self.algoName = "lem" if(self.db == "yale"): pass elif(self.db == "orl"): pass elif(self.db == "db3"): pass self.lem.lift()