Công cụ che mặt đơn giản

Doanh nghiệp gần bạn nhất

được xác nhận bởi itcctv

Công cụ che mặt đơn giản
Hình ảnh rao vặt

Công cụ che mặt đơn giản

VIết bài nhiều lúc tôi phải che mặt người trong ảnh, kiểu chỉ làm ví dụ thôi. Tôi thử sử dụng ChatGPT nhưng lúc che được lúc không. Sau đó thì dán dán. Cuối cùng nghĩ mình là người lập trình mà, nên tôi làm 1 cái tool đơn giản bằng python dưới sự hỗ trợ của Chat GPT. Nếu biết lập trình, mọi việc đơn giản.

Các bạn có thể test kết quả tại đây: https://app.itcctv.vn/removeface. upload hình lên, và tải hình xuống thôi ạ.

Để lập trình thì làm như sau nhé!

Bạn cần cài đặt thư viện OpenCV và Mediapipe:

pip install mediapipe opencv-python

Dưới đây là hàm che khuôn mặt:

def remove_faces_with_color(image_stream, color,output_path):

    # Đọc dữ liệu ảnh từ stream

    file_bytes = np.frombuffer(image_stream.read(), np.uint8)

    img = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)


    # Chuyển màu từ HEX sang BGR

    hex_color = color.lstrip("#")

    rgb_color = tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))

    bgr_color = (rgb_color[2], rgb_color[1], rgb_color[0])

    # Khởi tạo Mediapipe Face Detection

    mp_face_detection = mp.solutions.face_detection


    # Sử dụng Mediapipe để phát hiện khuôn mặt

    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

    with mp_face_detection.FaceDetection(model_selection=1, min_detection_confidence=0.5) as face_detection:

        results = face_detection.process(img_rgb)

        # Kiểm tra nếu có khuôn mặt được phát hiện

        if results.detections:

            for detection in results.detections:

                # Lấy tọa độ bounding box của khuôn mặt

                bboxC = detection.location_data.relative_bounding_box

                ih, iw, _ = img.shape

                x, y, w, h = int(bboxC.xmin * iw), int(bboxC.ymin * ih), \

                             int(bboxC.width * iw), int(bboxC.height * ih)

                  # Che phủ mặt bằng màu được chọn

                cv2.rectangle(img, (x, y), (x + w, y + h), bgr_color, -1)

                cv2.imwrite(output_path, img)

                print(f"Ảnh đã được lưu tại {output_path}")

 

💬 bình luận

Bình luận

Trở thành viên của itcctv — Đăng ký
Thủ thuật tin học văn phòng Thủ thuật Word Thủ thuật Excel
Cuộn