Skip to content

Commit bc06ff4

Browse files
author
Taylor Berry
committed
got the start of gui working
1 parent 9844bc8 commit bc06ff4

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

demo_gui.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
key = cv2. waitKey(1)
55
webcam = cv2.VideoCapture(0)
66

7+
78
while True:
89

910
check, frame = webcam.read()
@@ -18,6 +19,7 @@
1819
gray=cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)
1920
blurred=cv2.GaussianBlur(gray, (3,3), 0)
2021
wide = cv2.Canny(blurred, 15, 60)
22+
cv2.imwrite(filename= name + '.jpg', img=wide)
2123
cv2.imshow("Edges", wide)
2224
cv2.waitKey(0)
2325
break

testGui.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
from tkinter import *
2+
import cv2
3+
import PIL.Image, PIL.ImageTk
4+
5+
class App(Frame):
6+
def __init__(self, master=None):
7+
Frame.__init__(self, master)
8+
self.master = master
9+
self.pack(fill =BOTH, expand = 1)
10+
self.vid = VideoCapture(0)
11+
12+
canvasFrame = Frame(width = 200, height =200)
13+
canvasFrame.place(in_=self, anchor="se", relx=.5, rely=.5)
14+
self.canvas = Canvas(canvasFrame, width = 640, height =360)
15+
self.canvas.place(anchor=CENTER)
16+
self.canvas.pack(side=LEFT)
17+
self.delay = 15
18+
self.update()
19+
20+
#Retake Button
21+
retakeButton = Button(self, text="Retake Picture", command=self.clickRetakeButton)
22+
retakeButton.place(x=100, y=600)
23+
24+
#Capture the Photo
25+
captureButton = Button(self, text="Capture Photo", command=self.capturePhoto)
26+
captureButton.place(x=670, y=600)
27+
28+
#Name Entry
29+
namelabel = Label(self, text="Please Enter Your Name")
30+
namelabel.place(x=1210, y=575)
31+
self.nameEntry = Entry(self, text="Enter Name")
32+
self.nameEntry.place(x=1200, y=600)
33+
takeName = Button(self, text="Enter", command=self.getName)
34+
takeName.place(x=1210, y=635)
35+
36+
def clickRetakeButton(self):
37+
exit()
38+
def capturePhoto(self):
39+
return
40+
def getName(self):
41+
name = self.nameEntry.get()
42+
return name
43+
def update(self):
44+
ret, frame = self.vid.get_frame()
45+
46+
if ret:
47+
self.photo = PIL.ImageTk.PhotoImage(image = PIL.Image.fromarray(frame))
48+
self.canvas.create_image(0, 0, image = self.photo, anchor = NW)
49+
self.after(self.delay, self.update)
50+
51+
52+
class VideoCapture:
53+
def __init__(self, vid_source):
54+
self.vid = cv2.VideoCapture(vid_source)
55+
self.vid.set(cv2.CAP_PROP_FRAME_WIDTH, 640);
56+
self.vid.set(cv2.CAP_PROP_FRAME_HEIGHT, 360);
57+
def get_frame(self):
58+
if self.vid.isOpened():
59+
ret, frame = self.vid.read()
60+
frame = cv2.flip(frame,1)
61+
if ret:
62+
return (ret,cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
63+
else:
64+
return (ret, None)
65+
else:
66+
return (ret, None)
67+
68+
root = Tk()
69+
app = App(root)
70+
root.wm_title("Demo Gui")
71+
root.geometry("1440x900")
72+
root.mainloop()

0 commit comments

Comments
 (0)