Cách xóa nền khỏi hình ảnh bằng Python

Mô-đun Python đầu tiên, rembg từ Daniel Gatis, sẽ xóa nền khỏi bất kỳ hình ảnh nào được hiển thị cho nó. Trong hướng dẫn này, chúng tôi sẽ sử dụng hai mô-đun Python để tạo một ứng dụng GUI sẽ xóa nền khỏi hình ảnh. Hộp thoại mở/lưu tệp sẽ giống hệt hộp thoại được sử dụng trong nhiều ứng dụng khác nhờ mô-đun thứ hai, easygui, cung cấp cách tạo hộp thoại và menu bằng bộ công cụ của hệ điều hành

Bằng cách biên dịch mã dự án thành một tệp thực thi duy nhất, bạn có thể tiếp tục dự án này bằng cách tạo các ứng dụng

Cài đặt lên

Trước khi viết một dòng mã, trước tiên chúng ta phải sắp xếp mọi thứ bằng cách tạo một thư mục để chứa các hình ảnh mà chúng ta sẽ làm việc với. Sau đó, chúng tôi sẽ khởi chạy trình soạn thảo Python để bắt đầu mã hóa dự án

1. Tạo một thư mục mới có tên "rembg" trên màn hình của bạn

2. Chèn một hình ảnh mà bạn muốn xóa nền vào thư mục

3. Khởi chạy trình chỉnh sửa Python ưa thích của bạn. Thonny là lựa chọn của chúng tôi vì nó có giao diện dễ sử dụng. Sử dụng hướng dẫn này để cài đặt Thonny

Cài đặt các mô-đun Python

Rembg yêu cầu một mô-đun Python, có thể tải xuống và cài đặt mô-đun này bằng trình quản lý gói tích hợp trong Thonny hoặc công cụ đóng gói Python pip.  

Cài đặt qua Thonny

Chọn Tools >> Manage Packages ở bước 1

(Tín dụng hình ảnh). Phần cứng của Tom)

2. Nhập "rembg" và chọn "Tìm kiếm trên PyPi"Chọn rembg từ danh sách được trả về

(Tín dụng hình ảnh). Phần cứng của Tom)

3. Để tải xuống và cài đặt rembg cho Python, hãy nhấp vào Cài đặt. Nút gỡ cài đặt sẽ không hoạt động vì chúng tôi đã cài đặt rembg trên hệ thống của mình

(Tín dụng hình ảnh). Phần cứng của Tom)

4. Lặp lại bước 2 và 3 với việc bổ sung bước 4. tìm và cài đặt Easygui

(Tín dụng hình ảnh). Phần cứng của Tom)

Cài đặt qua Pip

Bạn phải sử dụng pip để cài đặt các gói Python nếu bạn đang sử dụng trình soạn thảo Python khác

1. Chạy cài đặt rembg từ Dấu nhắc Lệnh. Enter sẽ khởi chạy thủ tục

_10

Sử dụng pip, cài đặt easyguiEasygui cung cấp giao diện người dùng đơn giản để mở và lưu tệp

________Đầu tiên

Viết mã

Các mô-đun cơ bản, rembg và easygui sẽ thực hiện tất cả công việc tốn nhiều công sức cho chúng tôi, vì vậy mã về cơ bản rất đơn giản—chỉ với tám dòng Python, chúng tôi có thể xóa nền khỏi bất kỳ hình ảnh nào

1. Nhập lớp xóa từ mô-đun rembg. Chúng tôi sẽ sử dụng điều này để loại bỏ nền

from rembg import remove

2. Nhập hình ảnh từ Thư viện hình ảnh Python (PIL). PIL là một mô-đun mạnh mẽ với nhiều tùy chọn để tạo và tương tác với hình ảnh và luồng hình ảnh

from PIL import Image

3. Nhập mô-đun easygui và thêm "ví dụ" làm tham chiếu. GUI của chúng tôi cho các thao tác tệp cơ bản được gọi là Easygui;

import easygui as eg

4. Tạo một đối tượng được gọi là input_path và sử dụng nó để lưu trữ đường dẫn và tên tệp của tệp mà bạn muốn xóa nền khỏi. Tệp đã chọn và đường dẫn của tệp được lưu vào đối tượng input_path và chúng tôi sử dụng hộp thoại mở tệp của easygui để đặt tiêu đề cho hộp thoại mô tả mục đích của nó

_15

5. Tạo một đối tượng có tên là output_path và lưu đường dẫn tệp tới nó bằng hộp thoại lưu tệp của Easygui

_16

6. Sử dụng Hình ảnh của PIL, tạo một đối tượng, nhập nó và sử dụng nó để mở và lưu trữ hình ảnh. chức năng mở

_17

7. Để loại bỏ nền khỏi hình ảnh, hãy sử dụng rembg

output = remove(input)

8. Sử dụng đường dẫn tệp được lưu trữ trong output_path để lưu hình ảnh mới

_19

9. Tạo công cụ xóa nền trong mã. py

mười. Nhấn nút Run để thực thi mã

(Tín dụng hình ảnh). Phần cứng của Tom)

11. Chọn ảnh mà bạn muốn xóa nền. Ghi lại tiêu đề của hộp thoại, được chỉ định trong mã

(Tín dụng hình ảnh). Phần cứng của Tom)

Mười hai. Định vị thư mục rembg, đặt tên cho tệp và chọn PNG làm định dạng tệp. Nhấp vào Lưu và tệp sẽ được lưu dưới dạng les-no-bg trong ví dụ của chúng tôi. png

(Tín dụng hình ảnh). Phần cứng của Tom)

13. Bạn có thể phạm sai lầm, nhưng đó là điều được mong đợi. Lưu tệp u2net vào thư mục u2net của thư mục người dùng của bạn sau khi tải xuống. Thư mục này được tạo và lưu tự động

Trong hướng dẫn này, chúng tôi sẽ sử dụng hai mô-đun Python để tạo một ứng dụng GUI sẽ xóa nền khỏi hình ảnh. Mô-đun đầu tiên, rembg từ Daniel Gatis sẽ xóa nền khỏi bất kỳ hình ảnh nào được hiển thị cho nó. Mô-đun thứ hai, easygui cung cấp phương tiện để tạo hộp thoại và menu bằng bộ công cụ của hệ điều hành. Vì vậy, hộp thoại mở/lưu tệp sẽ trông giống hệt hộp thoại được sử dụng trong nhiều ứng dụng khác

Để tiếp tục dự án này, bạn có thể tạo các ứng dụng của mình bằng cách đóng gói mã dự án thành một tệp thực thi duy nhất

Đang cài đặt

Trước khi viết một dòng mã, chúng ta cần sắp xếp mọi thứ theo thứ tự. Đầu tiên chúng ta sẽ tạo một thư mục để lưu trữ những hình ảnh mà chúng ta sẽ làm việc với. Sau đó, chúng tôi sẽ mở trình soạn thảo Python cho phần viết mã của dự án

1. Tạo một thư mục mới trên màn hình của bạn có tên là rembg

2. Trong thư mục, đặt một hình ảnh mà bạn muốn xóa nền khỏi

3. Mở trình chỉnh sửa Python ưa thích của bạn, chúng tôi thích Thonny hơn vì nó cung cấp giao diện người dùng đơn giản. Làm theo hướng dẫn này để cài đặt Thonny

Cài đặt các mô-đun Python

Để sử dụng Rembg, trước tiên chúng ta cần tải xuống và cài đặt mô-đun Python của nó. Điều này có thể được xử lý thông qua trình quản lý gói tích hợp của Thonny hoặc thông qua công cụ đóng gói của Python, pip.  

Cài đặt qua Thonny

1. Nhấp vào Công cụ >> Quản lý gói

(Tín dụng hình ảnh. Phần cứng của Tom)

2. Tìm kiếm rembg và nhấp vào Tìm kiếm trên PyPi. Chọn rembg từ danh sách trả về

(Tín dụng hình ảnh. Phần cứng của Tom)

3. Nhấp vào Cài đặt để tải xuống và cài đặt rembg cho Python. Chúng tôi đã cài đặt rembg trên hệ thống của mình, do đó có nút gỡ cài đặt

(Tín dụng hình ảnh. Phần cứng của Tom)

4. Lặp lại bước 2 và 3, nhưng lần này tìm kiếm và cài đặt easygui

(Tín dụng hình ảnh. Phần cứng của Tom)

Cài đặt qua Pip

Nếu bạn đang sử dụng một trình soạn thảo Python khác, bạn sẽ cần cài đặt các gói Python bằng cách sử dụng pip

1. Mở Command Prompt và cài đặt rembg. Nhấn Enter để bắt đầu quá trình

pip install rembg

2. Cài đặt easygui bằng pip. Easygui cung cấp giao diện người dùng cơ bản cho các thao tác mở và lưu tệp

pip install easygui

Viết mã

Code về cơ bản rất đơn giản, chỉ với 8 dòng Python là chúng ta có thể xóa nền khỏi bất kỳ hình ảnh nào. Các mô-đun cơ bản, rembg và easygui sẽ thực hiện tất cả các công việc nặng nhọc cho chúng tôi

1. Từ mô-đun rembg nhập lớp xóa. Đây là những gì chúng ta sẽ sử dụng để loại bỏ nền

from rembg import remove

2. Từ Thư viện hình ảnh Python (PIL), nhập Hình ảnh. PIL là một mô-đun mạnh mẽ chứa nhiều tùy chọn khác nhau để tạo và làm việc với hình ảnh và luồng hình ảnh

from PIL import Image

3. Nhập mô-đun easygui và tạo một tham chiếu đến nó dưới dạng “ví dụ”. Easygui là GUI của chúng tôi dành cho các thao tác tệp cơ bản. Đổi tên nó thành “ví dụ” giúp làm việc dễ dàng hơn

import easygui as eg

4. Tạo một đối tượng, input_path và sử dụng nó để lưu trữ đường dẫn và tên của tệp mà chúng tôi muốn xóa nền khỏi. Sử dụng hộp thoại mở tệp của easygui, chúng tôi đặt tiêu đề cho hộp thoại, để giải thích nó dùng để làm gì. Tệp đã chọn và đường dẫn của nó được lưu vào đối tượng input_path

input_path = eg.fileopenbox(title='Select image file')

5. Tạo một đối tượng, output_path và sử dụng hộp thoại lưu tệp của easygui để nắm bắt đường dẫn tệp và lưu nó vào đối tượng

from PIL import Image
0

6. Tạo một đối tượng, nhập và sử dụng nó để mở và lưu trữ hình ảnh qua PIL's Image. chức năng mở

from PIL import Image
1

7. Sử dụng rembg để xóa nền khỏi hình ảnh

output = remove(input)

8. Lưu hình ảnh mới bằng đường dẫn tệp được lưu trữ trong output_path

from PIL import Image
3

9. Lưu mã dưới dạng background_remover. py

10. Chạy mã bằng cách nhấp vào nút Chạy

(Tín dụng hình ảnh. Phần cứng của Tom)

11. Chọn hình ảnh mà bạn muốn xóa nền khỏi. Lưu ý rằng hộp thoại có tiêu đề mà chúng tôi đã chỉ định trong mã

(Tín dụng hình ảnh. Phần cứng của Tom)

12. Điều hướng đến thư mục rembg và đặt tên cho tệp và đặt định dạng tệp thành PNG. Nhấp vào để lưu. Trong ví dụ của chúng tôi, chúng tôi lưu tệp dưới dạng les-no-bg. png

(Tín dụng hình ảnh. Phần cứng của Tom)

13. Bạn có thể gặp lỗi, nhưng điều này là bình thường. Tải xuống tệp u2net và lưu vào. thư mục u2net trong thư mục người dùng của bạn. Thư mục này được tạo và lưu trữ tự động

Làm cách nào để xóa nền cụ thể khỏi hình ảnh?

Chọn ảnh bạn muốn xóa nền. Trên thanh công cụ, chọn Định dạng ảnh > Xóa nền hoặc Định dạng > Xóa nền . Nếu bạn không nhìn thấy Xóa nền, hãy đảm bảo rằng bạn đã chọn ảnh. Bạn có thể phải bấm đúp vào ảnh để chọn nó và mở tab Định dạng ảnh.

Làm cách nào để xóa nền của ảnh trong Pygame?

Làm cách nào để xóa nền đen khỏi hình ảnh trong Python? .
Bước 1. Trước hết, nhập thư viện OpenCV
Bước 2. Bây giờ, nhập hình ảnh từ máy tính của bạn
Bước 3. Sau đó, đọc hình ảnh trong OpenCV
Bước 4. Sau đó, chuyển đổi nền ảnh thành nền ảnh màu xám
Bước 5. Ngoài ra, áp dụng kỹ thuật ngưỡng

Làm cách nào để thay đổi nền của hình ảnh thành màu trắng trong Python?

Trong Python/OpenCV, chuyển đổi sang HSV. Lấy giá trị HSV ở góc trên cùng bên trái. Thực hiện ngưỡng inRange() trên hình ảnh HSV để tạo mặt nạ. Sử dụng mặt nạ để thay đổi màu hình ảnh ban đầu thành màu trắng khi mặt nạ có màu trắng .