Xóa nền xanh cho hình ảnh bằng Python

Hướng dẫn cách sử dụng Python để xóa phông xanh (chroma key) khỏi hình ảnh bằng thư viện OpenCV. Mã Python này giúp bạn loại bỏ nền xanh để thay thế bằng nền khác hoặc làm cho nó trở nên trong suốt.

import cv2
import numpy as np

def remove_blue_background(image_path, output_path):
    # Đọc hình ảnh từ file
    image = cv2.imread(image_path)

    # Chuyển đổi hình ảnh từ BGR sang HSV
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

    # Định nghĩa phạm vi của màu xanh (phông xanh)
    lower_blue = np.array([35, 100, 100])
    upper_blue = np.array([85, 255, 255])

    # Tạo mặt nạ (mask) để nhận diện các vùng xanh
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # Chuyển đổi mặt nạ thành ảnh với kênh alpha (trong suốt)
    result = cv2.bitwise_and(image, image, mask=~mask)

    # Lưu hình ảnh kết quả
    cv2.imwrite(output_path, result)

# Ví dụ sử dụng
remove_blue_background('input_image.jpg', 'output_image.png')

Giải thích chi tiết:

  1. Đọc hình ảnh từ file:

    • cv2.imread(image_path): Đọc hình ảnh từ đường dẫn file.
  2. Chuyển đổi hình ảnh sang HSV:

    • cv2.cvtColor(image, cv2.COLOR_BGR2HSV): Chuyển đổi không gian màu từ BGR (mặc định của OpenCV) sang HSV để dễ dàng xử lý màu xanh.
  3. Định nghĩa phạm vi màu xanh:

    • lower_blueupper_blue xác định phạm vi của màu xanh trong không gian màu HSV. Thay đổi các giá trị này để phù hợp với loại phông xanh bạn đang sử dụng.
  4. Tạo mặt nạ và loại bỏ phông xanh:

    • cv2.inRange(hsv, lower_blue, upper_blue): Tạo mặt nạ để nhận diện màu xanh trong hình ảnh.
    • cv2.bitwise_and(image, image, mask=~mask): Loại bỏ các vùng xanh khỏi hình ảnh bằng cách sử dụng mặt nạ.
  5. Lưu hình ảnh kết quả:

    • cv2.imwrite(output_path, result): Lưu hình ảnh đã xử lý vào đường dẫn file đầu ra.

Phiên bản Python:

Mã này sử dụng thư viện OpenCV, có thể chạy trên Python 3.6 và các phiên bản mới hơn. Đảm bảo rằng thư viện OpenCV đã được cài đặt, có thể thực hiện qua lệnh pip install opencv-python.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Hướng dẫn tạo form upload nhiều hình ảnh bằng Python

Hướng dẫn chi tiết cách tạo form upload nhiều hình ảnh sử dụng Flask - một framework Python đơn giản và hiệu quả.
Xác thực bằng JSON Web Token (JWT) trong Python

Hướng dẫn về cách sử dụng JSON Web Token (JWT) để xác thực trong ứng dụng Python. Bài viết sẽ giới thiệu cách tạo và xác thực token trong một ứng dụng web để bảo vệ API.
Cách mở ứng dụng Notepad bằng Python

Bài viết hướng dẫn cách sử dụng Python để mở ứng dụng Notepad trên hệ điều hành Windows. Phương pháp này rất hữu ích khi muốn tự động hóa các thao tác mở ứng dụng từ mã Python.
Hướng dẫn đọc nội dung file Excel bằng Python

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng Python, sử dụng thư viện openpyxl và pandas với các ví dụ minh họa cụ thể.
Cách loại bỏ MultiIndex columns trong Pandas

Bài viết này hướng dẫn cách loại bỏ các cột MultiIndex trong DataFrame của Pandas, một tính năng hữu ích khi làm việc với dữ liệu phức tạp có nhiều chỉ mục. Bạn sẽ học cách làm phẳng MultiIndex hoặc loại bỏ chúng hoàn toàn.
Cách POST data tới API bằng Python

Bài viết này hướng dẫn cách gửi dữ liệu tới một API sử dụng phương thức POST trong Python bằng thư viện requests, giúp bạn hiểu rõ hơn về cách tương tác với các dịch vụ web.
Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong Python

Hướng dẫn chi tiết cách tạo ứng dụng chat đơn giản bằng Python sử dụng Socket.IO và Flask, cho phép người dùng gửi và nhận tin nhắn theo thời gian thực.
Các chức năng thường dùng khi sử dụng Selenium Chrome trong Python

Bài viết giới thiệu các chức năng thường dùng khi sử dụng Selenium với Chrome trong Python, giúp tự động hóa các tác vụ như tìm kiếm, tương tác với các phần tử trên trang web, và điều hướng trình duyệt.
Xóa nền cho hình ảnh bằng thư viện Rembg trong Python

Hướng dẫn chi tiết cách xóa nền cho hình ảnh bằng Python và thư viện Rembg. Bài viết bao gồm mã nguồn và giải thích từng dòng mã.
Chuyển chuỗi Markdown sang HTML bằng Python

Hướng dẫn cách chuyển đổi chuỗi Markdown sang HTML bằng Python với thư viện `markdown2`, giúp bạn dễ dàng tích hợp tính năng chuyển đổi này vào ứng dụng của mình.

Đã thêm vào giỏ hàng