From c1349a0ded1946d552967d9f72266909bfc8e5ee Mon Sep 17 00:00:00 2001 From: Em-Vi Date: Sun, 19 Oct 2025 17:49:18 +0530 Subject: [PATCH] Add: [AI-ML] faceBlurTool --- .../AI-ML/MiniProjects/faceBlurTool/README.md | Bin 0 -> 1232 bytes .../faceBlurTool/Test-images/test1.jpg | Bin 0 -> 14736 bytes .../faceBlurTool/blurred_test1.jpg | Bin 0 -> 46522 bytes .../AI-ML/MiniProjects/faceBlurTool/main.py | 41 ++++++++++++++++++ .../faceBlurTool/requirements.txt | Bin 0 -> 28 bytes 5 files changed, 41 insertions(+) create mode 100644 Domains/AI-ML/MiniProjects/faceBlurTool/README.md create mode 100644 Domains/AI-ML/MiniProjects/faceBlurTool/Test-images/test1.jpg create mode 100644 Domains/AI-ML/MiniProjects/faceBlurTool/blurred_test1.jpg create mode 100644 Domains/AI-ML/MiniProjects/faceBlurTool/main.py create mode 100644 Domains/AI-ML/MiniProjects/faceBlurTool/requirements.txt diff --git a/Domains/AI-ML/MiniProjects/faceBlurTool/README.md b/Domains/AI-ML/MiniProjects/faceBlurTool/README.md new file mode 100644 index 0000000000000000000000000000000000000000..159934f255fa0e92f1f3b3c6446f66cbcb2c18dd GIT binary patch literal 1232 zcmaKsPjAyu5X9$PiSJ<4OB+$6Ub#Ui&{L86=Tf1@Eg>;#5)-?HetFvXxDkZU2eC zE1h%m7}b-u*1nBe2`jDW8-HV7Smv8 z)vaAccACJ733r?_ztm$h|kZ(llS&J$~@e)=j!=c zW#bIzdh<`*4mEA|3Hlb>@3Lj&*;dS>;a9-Em%4_%e;;O{ooD_<2Ylz=+lDE2{nvVp eC;5-J9UpGHJ&U@#)rZ_&d+51&wr1M5iT(nZtjKEs literal 0 HcmV?d00001 diff --git a/Domains/AI-ML/MiniProjects/faceBlurTool/Test-images/test1.jpg b/Domains/AI-ML/MiniProjects/faceBlurTool/Test-images/test1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..794e24e30ea53609cbc171425d53d45a67267aff GIT binary patch literal 14736 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 DuPFb( literal 0 HcmV?d00001 diff --git a/Domains/AI-ML/MiniProjects/faceBlurTool/blurred_test1.jpg b/Domains/AI-ML/MiniProjects/faceBlurTool/blurred_test1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf9f1f5e28683f84ceb4579d3a40ab00c79c539f GIT binary patch literal 46522 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 literal 0 HcmV?d00001 diff --git a/Domains/AI-ML/MiniProjects/faceBlurTool/main.py b/Domains/AI-ML/MiniProjects/faceBlurTool/main.py new file mode 100644 index 00000000..4fc70217 --- /dev/null +++ b/Domains/AI-ML/MiniProjects/faceBlurTool/main.py @@ -0,0 +1,41 @@ +import cv2 +from cv2 import data + +face_cascade = cv2.CascadeClassifier(data.haarcascades + "haarcascade_frontalface_default.xml") + +image_path = input("Enter image path: ") +image = cv2.imread(image_path) + +if image is None: + print("Image not found") + exit() + +# grayscale for better detection +gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + +# lets find faces +# cascade detector runs on th eimage and returns a rectangle coordinate x,y,w,h +# scalefactor repatedly scales image by value to detet faces in differnet sizes +# minneighbour decides how many rectabgles should be overlapped to trigger face detection +# minsize ignores detected objects smaller tha 30x30 pixels +faces = face_cascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30)) + +#looping over detected face coords +for (x,y,w,h) in faces: + # extacts the subarray containing detected face + face = image[y:y+h,x:x+w] + # numpy doesnt use a copy but views into image + # lets apply guassian blur + blurred_face = cv2.GaussianBlur(face,(99,99),30) + # (99, 99) is the kernel size. stronger blr + # 30 is sigmaX (standard deviation in the X direction). used to make rexziabke with face sizes + # we can write blurred_face in original image + image[y:y+h, x:x+w] = blurred_face + +output_path = "blurred_" + image_path.split("/")[-1] +cv2.imwrite(output_path,image) +# show image...comment out if not needed +cv2.imshow("Blurred Image", image) +cv2.waitKey(0) +cv2.destroyAllWindows() + diff --git a/Domains/AI-ML/MiniProjects/faceBlurTool/requirements.txt b/Domains/AI-ML/MiniProjects/faceBlurTool/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..a299b4e6dfcc24fd67e6bd1306617e08e083db1e GIT binary patch literal 28 hcmezWFQ1`+A(bJIA(^3!K^MrbWGG?CV8{oG004nR2Uq|A literal 0 HcmV?d00001