Loại bỏ khoảng trống của hình ảnh (trim image) bằng Python

Hướng dẫn cách sử dụng Python để loại bỏ khoảng trống xung quanh hình ảnh (trim image) bằng thư viện OpenCV. Mã Python này giúp cắt bớt các vùng trắng hoặc khoảng trống xung quanh ảnh để làm nổi bật nội dung chính.

import cv2
import numpy as np

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

    # Chuyển đổi hình ảnh từ BGR sang màu xám
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # Tạo mặt nạ (mask) để xác định các vùng không phải trắng
    _, thresh = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY_INV)

    # Tìm các đường viền của các khu vực không phải trắng
    x, y, w, h = cv2.boundingRect(thresh)

    # Cắt hình ảnh dựa trên các đường viền đã tìm thấy
    trimmed_image = image[y:y+h, x:x+w]

    # Lưu hình ảnh đã cắt
    cv2.imwrite(output_path, trimmed_image)

# Ví dụ sử dụng
trim_image('input_image.jpg', 'trimmed_image.jpg')

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 màu xám:

    • cv2.cvtColor(image, cv2.COLOR_BGR2GRAY): Chuyển đổi hình ảnh từ không gian màu BGR sang màu xám để dễ dàng xử lý.
  3. Tạo mặt nạ và xác định vùng không phải trắng:

    • cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY_INV): Tạo mặt nạ nhị phân, nơi các pixel có giá trị > 240 được coi là trắng và được đảo ngược (thành đen) để xác định các khu vực không phải trắng.
  4. Tìm đường viền của khu vực không phải trắng:

    • cv2.boundingRect(thresh): Xác định hình chữ nhật bao quanh các khu vực không phải trắng.
  5. Cắt hình ảnh:

    • image[y:y+h, x:x+w]: Cắt hình ảnh dựa trên hình chữ nhật bao quanh đã tìm thấy.
  6. Lưu hình ảnh đã cắt:

    • cv2.imwrite(output_path, trimmed_image): Lưu hình ảnh đã cắt 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

Cách đảo ngược Series trong Pandas

Hướng dẫn cách đảo ngược một `Series` trong Pandas, một thư viện phổ biến trong Python để xử lý dữ liệu. Bài viết sẽ trình bày cách sử dụng các phương pháp khác nhau để đảo ngược thứ tự của các phần tử trong `Series`.
Xử lý đa luồng trong Python

Hướng dẫn chi tiết cách xử lý đa luồng trong Python bằng cách sử dụng thư viện `threading` và `concurrent.futures`. Bài viết này giúp bạn hiểu cách sử dụng đa luồng để tăng hiệu suất xử lý đồng thời trong các tác vụ.
Tạo video từ hình ảnh bằng MoviePy

Hướng dẫn chi tiết cách tạo video từ các hình ảnh bằng Python và thư viện MoviePy. Bài viết bao gồm mã nguồn và giải thích từng dòng mã.
Tạo video từ hình ảnh bằng OpenCV

Hướng dẫn chi tiết cách tạo video từ các hình ảnh bằng Python và thư viện OpenCV. 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.
Chuyển đổi chữ cái Unicode có dấu thành không dấu trong Python

Hướng dẫn cách sử dụng Python để chuyển đổi các chữ cái Unicode có dấu trong bảng chữ cái tiếng Việt thành các chữ cái không dấu. Mã Python này hỗ trợ việc xử lý văn bản tiếng Việt một cách hiệu quả.
Hướng dẫn làm form đăng nhập tài khoản trong Python bằng PyQT6

Hướng dẫn chi tiết cách tạo form đăng nhập tài khoản trong Python sử dụng PyQT6, bao gồm cách thiết kế giao diện và xử lý sự kiện khi người dùng nhấn nút đăng nhập.
Truyền Authentication Header Token khi POST dữ liệu tới API bằng Python

Hướng dẫn cách gửi yêu cầu POST tới API kèm theo Authentication Header Token bằng Python. Phương pháp này được sử dụng để xác thực và bảo mật trong giao tiếp với các API.
Gửi đoạn mã JavaScript vào website sử dụng Selenium trong Python

Hướng dẫn cách sử dụng Selenium trong Python để gửi đoạn mã JavaScript vào một trang web trên trình duyệt Chrome. Bài viết sẽ giúp bạn hiểu cách tương tác với các phần tử trên trang web và chạy mã JavaScript.
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.

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