From 56b0f57af41bc6daf8c13ae600472f29c2b39fd3 Mon Sep 17 00:00:00 2001 From: Nickiel Date: Fri, 22 Sep 2023 18:26:47 -0700 Subject: [PATCH] added old file to start off with --- Face_Detect with borders.py | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Face_Detect with borders.py diff --git a/Face_Detect with borders.py b/Face_Detect with borders.py new file mode 100644 index 0000000..e6e7521 --- /dev/null +++ b/Face_Detect with borders.py @@ -0,0 +1,78 @@ +import cv2 +import numpy as np + +def check_within(imgSize, baseMultiplier, currentX, currentY, currentW, currentH): + + baseYbottom = imgSize[0] * baseMultiplier + baseXRight = imgSize[1] * baseMultiplier + upperMultiplier = 1 - baseMultiplier + baseYTop = imgSize[0] * upperMultiplier + baseXLeft = imgSize[1] * upperMultiplier + currentBottomY = currentY + currentH + currentRightX = currentX + currentW + + print(str(baseYbottom) + " " + str(currentY)) + + if baseYbottom > currentY: + return (255, 255, 255) + elif baseYTop < currentBottomY: + return (0, 0, 0) + elif baseXRight > currentX: + return (255, 0, 0) + elif baseXLeft < currentRightX: + return (0, 0, 255) + else: + return(0, 255, 0) + +cap = cv2.VideoCapture(0, cv2.IMREAD_GRAYSCALE) # instead of grayscale you can also use -1, 0, or 1. +faceCascade = cv2.CascadeClassifier(r"C:\Users\Owner\Desktop\Face Detection\haar_frontface.xml") # CHECK THIS FIRST TROUBLE SHOOTING + +tmp, frm = cap.read() +height, width, channels = frm.shape +print(f"{height*.25}, {width}") +del tmp, frm + +#Color is 1, grayscale is 0, and the unchanged is -1 +while(True): + ret, frame = cap.read() + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # Detect faces in the image + faces = faceCascade.detectMultiScale( + gray, + scaleFactor=1.1, + minNeighbors=5, + minSize=(30, 30) + ) + + print("Found {0} faces!".format(len(faces))) + + # Draw a rectangle around the faces + for (x, y, w, h) in faces: + color = check_within([height, width], .1, x, y, w, h) + cv2.rectangle(frame, (int(width*.1), int(height*.1)), (int(width*.9), int(height*.9)), (150, 0 , 150)) + cv2.rectangle(frame, (x, y), (x+w, y+h), color) + cv2.imshow('frame', frame) + + if cv2.waitKey(1) & 0xFF == ord('q'): + break + +cap.release() +cap.destroyAllWindows() + + +# you can save the image with +# cv2.imwrite('watchgray.png',img) + +''' +instead of the above code you can replace everything below +img = cv2.... +with + +plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') +plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis +plt.plot([200,300,400],[100,200,300],'c', linewidth=5) +plt.show() + +for a matplotlib chart +'''