Skip to content

Commit

Permalink
Added a face recognition options
Browse files Browse the repository at this point in the history
  • Loading branch information
nikkonrom committed Nov 30, 2017
1 parent 3994eb8 commit f38a139
Show file tree
Hide file tree
Showing 6 changed files with 192 additions and 57 deletions.
30 changes: 30 additions & 0 deletions api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import argparse
import os
import multithreading
from boundaries import BoundariesOperation
from semantic_segmentation import SemanticSegmentation
from saliency import Saliency
from face_recognition_ import FaceRecognition

def createParser():
parser = argparse.ArgumentParser()
Expand All @@ -10,3 +16,27 @@ def createParser():



def begin_invoke(namespase):
if namespase.infld and namespase.exec:
tree = []
for d, dirs, files in os.walk(namespase.infld):
for f in files:
path = os.path.join(d,f)
tree.append(path)
func = None
output_folder = ''

if namespase.exec == 'boundaries':
func = BoundariesOperation.execute
elif namespase.exec == 'semantic_segmentation':
func = SemanticSegmentation.execute
elif namespase.exec == 'saliency':
func = Saliency.execute
elif namespase.exec == 'face_recognition':
func = FaceRecognition.execute

if namespase.outfld:
output_folder = namespase.outfld

multithreading.execute_processing(tree, files, func, output_folder)
return True
2 changes: 1 addition & 1 deletion face_recognition_.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class FaceRecognition(Operation):
@staticmethod
def execute(input_image, colors, width):
img = np.array(input_image)
img = img[:, :, ::-1].copy()
# img = img[:, :, ::-1].copy()
face_locations = face_recognition.face_locations(img)
for (top, right, bottom, left) in face_locations:
cv2.rectangle(img, (left, top), (right, bottom), (colors[0], colors[1], colors[2]), width)
Expand Down
15 changes: 9 additions & 6 deletions imager.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from semantic_segmentation import SemanticSegmentation
from saliency import Saliency
from face_recognition_ import FaceRecognition

import api

class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
Expand Down Expand Up @@ -60,14 +60,17 @@ def get_face_recognition(self):
self.ui.stackedWidget.setCurrentIndex(3)
if self.ui.inputLabel.pixmap() is not None:
self.ui.outputLabel.loadPixmapData(QPixmap.fromImage(image_to_qimage(FaceRecognition.execute(
qpixmap_to_pil_image(self.ui.inputLabel.pixmap())))))
qpixmap_to_pil_image(self.ui.inputLabel.pixmap()), (self.ui.spinBoxR.value(),
self.ui.spinBoxG.value(), self.ui.spinBoxB.value()), self.ui.spinBoxWidth.value()))))


if __name__ == "__main__":
parser = createParser()
namespace = parser.parse_args()
print(namespace)
#app = QtWidgets.QApplication(sys.argv)
#myapp = MyWin()
#myapp.show()
#sys.exit(app.exec_())
parser = api.createParser()
if not api.begin_invoke(parser.parse_args()):
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
67 changes: 60 additions & 7 deletions mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(890, 519)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("C:/Users/jeavr/Desktop/unnamed.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
icon.addPixmap(QtGui.QPixmap("python/C:/Users/jeavr/Desktop/unnamed.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
Expand Down Expand Up @@ -104,11 +104,65 @@ def setupUi(self, MainWindow):
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.groupBox_5 = QtWidgets.QGroupBox(self.page_4)
self.groupBox_5.setObjectName("groupBox_5")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_5)
self.gridLayout_2.setObjectName("gridLayout_2")
self.verticalLayout_5 = QtWidgets.QVBoxLayout()
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.label = QtWidgets.QLabel(self.groupBox_5)
self.label.setObjectName("label")
self.horizontalLayout_7.addWidget(self.label)
self.spinBoxR = QtWidgets.QSpinBox(self.groupBox_5)
self.spinBoxR.setMaximum(255)
self.spinBoxR.setProperty("value", 255)
self.spinBoxR.setObjectName("spinBoxR")
self.horizontalLayout_7.addWidget(self.spinBoxR)
self.label_2 = QtWidgets.QLabel(self.groupBox_5)
self.label_2.setObjectName("label_2")
self.horizontalLayout_7.addWidget(self.label_2)
self.spinBoxG = QtWidgets.QSpinBox(self.groupBox_5)
self.spinBoxG.setMaximum(255)
self.spinBoxG.setObjectName("spinBoxG")
self.horizontalLayout_7.addWidget(self.spinBoxG)
self.label_3 = QtWidgets.QLabel(self.groupBox_5)
self.label_3.setObjectName("label_3")
self.horizontalLayout_7.addWidget(self.label_3)
self.spinBoxB = QtWidgets.QSpinBox(self.groupBox_5)
self.spinBoxB.setMaximum(255)
self.spinBoxB.setObjectName("spinBoxB")
self.horizontalLayout_7.addWidget(self.spinBoxB)
self.verticalLayout_5.addLayout(self.horizontalLayout_7)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.label_4 = QtWidgets.QLabel(self.groupBox_5)
self.label_4.setObjectName("label_4")
self.horizontalLayout_8.addWidget(self.label_4)
self.spinBoxWidth = QtWidgets.QSpinBox(self.groupBox_5)
self.spinBoxWidth.setMaximum(10)
self.spinBoxWidth.setObjectName("spinBoxWidth")
self.horizontalLayout_8.addWidget(self.spinBoxWidth)
self.verticalLayout_5.addLayout(self.horizontalLayout_8)
self.gridLayout_2.addLayout(self.verticalLayout_5, 0, 0, 1, 1)
self.spinBoxG.raise_()
self.spinBoxR.raise_()
self.spinBoxB.raise_()
self.spinBoxR.raise_()
self.label.raise_()
self.label_2.raise_()
self.label_3.raise_()
self.label_4.raise_()
self.spinBoxWidth.raise_()
self.horizontalLayout_6.addWidget(self.groupBox_5)
self.stackedWidget.addWidget(self.page_4)
self.verticalLayout_2.addWidget(self.stackedWidget)
self.horizontalLayout_3.addLayout(self.verticalLayout_2)
self.gridLayout.addWidget(self.groupBox, 0, 3, 1, 1)
self.line_2 = QtWidgets.QFrame(self.centralwidget)
self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 0, 2, 1, 1)
self.outputLabel = ScaledPixmap(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
Expand All @@ -135,11 +189,6 @@ def setupUi(self, MainWindow):
self.inputLabel.setScaledContents(False)
self.inputLabel.setObjectName("inputLabel")
self.gridLayout.addWidget(self.inputLabel, 0, 0, 1, 1)
self.line_2 = QtWidgets.QFrame(self.centralwidget)
self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 0, 2, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
self.line = QtWidgets.QFrame(self.centralwidget)
Expand Down Expand Up @@ -193,7 +242,7 @@ def setupUi(self, MainWindow):
self.menubar.addAction(self.menuFile.menuAction())

self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(0)
self.stackedWidget.setCurrentIndex(3)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
Expand All @@ -212,6 +261,10 @@ def retranslateUi(self, MainWindow):
self.groupBox_3.setTitle(_translate("MainWindow", "Semantis Segmentation options"))
self.groupBox_4.setTitle(_translate("MainWindow", "Saliency options"))
self.groupBox_5.setTitle(_translate("MainWindow", "Face Recognition options"))
self.label.setText(_translate("MainWindow", "R"))
self.label_2.setText(_translate("MainWindow", "G"))
self.label_3.setText(_translate("MainWindow", "B"))
self.label_4.setText(_translate("MainWindow", "Rectangle width"))
self.ignoreOverscaleCheckBox.setText(_translate("MainWindow", "Ignore original size"))
self.keepAspectRatioCheckBox.setText(_translate("MainWindow", "Maintain propotions"))
self.loadButton.setText(_translate("MainWindow", "Load"))
Expand Down
101 changes: 92 additions & 9 deletions mainwindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</property>
<property name="windowIcon">
<iconset>
<normaloff>C:/Users/jeavr/Desktop/unnamed.png</normaloff>C:/Users/jeavr/Desktop/unnamed.png</iconset>
<normaloff>python/C:/Users/jeavr/Desktop/unnamed.png</normaloff>python/C:/Users/jeavr/Desktop/unnamed.png</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
Expand Down Expand Up @@ -81,7 +81,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
<number>3</number>
</property>
<widget class="QWidget" name="page">
<layout class="QHBoxLayout" name="horizontalLayout_4">
Expand Down Expand Up @@ -162,6 +162,89 @@
<property name="title">
<string>Face Recognition options</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>R</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBoxR">
<property name="maximum">
<number>255</number>
</property>
<property name="value">
<number>255</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>G</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBoxG">
<property name="maximum">
<number>255</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>B</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBoxB">
<property name="maximum">
<number>255</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Rectangle width</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBoxWidth">
<property name="maximum">
<number>10</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
<zorder>spinBoxG</zorder>
<zorder>spinBoxR</zorder>
<zorder>spinBoxB</zorder>
<zorder>outputLabel</zorder>
<zorder>spinBoxR</zorder>
<zorder>label</zorder>
<zorder>label_2</zorder>
<zorder>label_3</zorder>
<zorder>label_4</zorder>
<zorder>spinBoxWidth</zorder>
</widget>
</item>
</layout>
Expand All @@ -173,6 +256,13 @@
</layout>
</widget>
</item>
<item row="0" column="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="ScaledPixmap" name="outputLabel">
<property name="sizePolicy">
Expand Down Expand Up @@ -223,13 +313,6 @@
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
Expand Down
34 changes: 0 additions & 34 deletions multiprocessing.py

This file was deleted.

0 comments on commit f38a139

Please sign in to comment.