TGViewer
[PYTHON:TODAY] [PYTHON:TODAY] @python2day · 63.6K subscribers
Post #6537 13.5K
😂 Как размыть лица на фото с помощью Python и OpenCV

Если тебе нужно быстро замазать лица на снимке — вот тебе универсальный скрипт!

Работает на основе каскадов Хаара и добавляет эффект размытия по каждому найденному лицу.

💻 Готовый скрипт:

import cv2
from typing import Tuple


def load_image(path: str) -> cv2.Mat:
"""Загружает изображение с указанного пути."""
image = cv2.imread(path)
if image is None:
raise FileNotFoundError(f"Изображение не найдено: {path}")
return image


def detect_faces(image: cv2.Mat) -> Tuple[Tuple[int, int, int, int], ...]:
"""Находит лица на изображении с помощью каскада Хаара."""
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
return tuple(faces)


def blur_faces(image: cv2.Mat, faces: Tuple[Tuple[int, int, int, int], ...]) -> cv2.Mat:
"""Размывает найденные лица на изображении."""
for (x, y, w, h) in faces:
face_roi = image[y:y+h, x:x+w]
blurred = cv2.GaussianBlur(face_roi, (99, 99), 30)
image[y:y+h, x:x+w] = blurred
return image


def save_image(image: cv2.Mat, path: str) -> None:
"""Сохраняет изображение на диск."""
cv2.imwrite(path, image)


if __name__ == "__main__":
input_path = "/home/kali/Coding/TEST/man.png"
output_path = "blurred_faces.jpg"

img = load_image(input_path)
found_faces = detect_faces(img)

print(f"👀 Найдено лиц: {len(found_faces)}")

blurred_img = blur_faces(img, found_faces)
save_image(blurred_img, output_path)

print(f"✅ Сохранено: {output_path}")


👨‍💻 Возможности:
🖱 Автоматическое обнаружение лиц;
🖱 Размытие без потери качества остальной части фото;
🖱 Работает за считанные секунды;
🖱 Код полностью на Python + OpenCV.

📂 Сохраняй и экспериментируй! Лойс не забудь поставить 👍

#python #soft #code
  • 👍 90
  • 🔥 8
  • 🫡 8
  • ❤ 7
More from @python2day
  1. Oct 14, 2026⚡️ Нейросеть теперь сама рисует обучающие видео, озвучивает их и монтирует — достаточно од…
  2. Oct 14, 2026🤔 API работает — но как убедиться, что после очередного изменения оно продолжит работать…
  3. Oct 14, 2026🫡 Сколько стоила крипта 10 лет назад
  4. Oct 14, 2026😎 Хз к чему этот чувак готовится, но он готов С добрым утром! 😎
  5. Oct 13, 2026😂 Мы годами учились, чтобы пасть 🫡
  6. Oct 13, 2026👁👁 Тестовый собес на Python с разработчиком из Яндекса [+ ответы на 50 сложных вопросов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →