Python là ngôn ngữ lập trình hướng đối tượng phổ biến cho các tác vụ liên quan đến hình ảnh cho trang web, trực quan hóa hoặc khi sử dụng Python cho các hoạt động học máy thông qua các khung như OpenCV và Scikit Learn
Giảm kích thước của một hình ảnh có nghĩa là thay đổi kích thước của nó bằng cách loại bỏ các pixel của nó. Thu nhỏ hình ảnh làm tăng số lượng pixel của nó nhưng làm giảm chất lượng. Dù bằng cách nào, tỷ lệ khung hình của hình ảnh sẽ thay đổi, dẫn đến biến dạng
Bài viết này mô tả cách thay đổi kích thước hình ảnh hàng loạt bằng thư viện Gối, một nhánh phổ biến của Thư viện hình ảnh Python [PIL]; . Cũng được giải thích là cách thay đổi kích thước và cắt hình ảnh Python bằng Cloudinary thông qua tự động hóa
Thay đổi kích thước hình ảnh bằng Python bằng gối
Gối là một nhánh của Thư viện hình ảnh Python [PIL] hỗ trợ Python 3 và nhiều định dạng hình ảnh, bao gồm PNG, JPEG, TIFF và PPM. Khi bạn tải một hình ảnh từ một tệp, tạo một hình ảnh mới hoặc tạo các phiên bản riêng cho hình ảnh, bạn tạo một phiên bản của lớp Hình ảnh của PIL
Để thay đổi kích thước hình ảnh bằng phương pháp resize[]
của Gối
- Nhập lớp PIL
image
- Tải hình ảnh từ một tệp có chức năng
open[]
image = Image.open['myimage.jpg']
Lệnh trên trả về một đối tượng
Image
. Trong trường hợp thất bại, lệnh trả về một ngoại lệOSError
- Gọi phương thức
resize[]
trên thể hiện hình ảnh mới, truyền đối số tuple với hai số nguyên để chỉ định chiều rộng và chiều cao mà bạn mong muốnimage = Image.open['myimage.jpg']
- ________số 8
resize[]
0
Ghi chú. Thay vì sửa đổi tệp hình ảnh, hàm này trả về một phiên bản
Image
riêng với kích thước mới
Tuy nhiên, phương pháp resize[]
có hai nhược điểm
- Thông thường, thay đổi kích thước thành chiều rộng và chiều cao chính xác sẽ thay đổi tỷ lệ khung hình của hình ảnh, dẫn đến biến dạng
- Nếu bạn đặt kích thước của phiên bản mới lớn hơn kích thước của phiên bản gốc, thì
resize[]
sẽ “làm nổ tung” phiên bản, làm giảm chất lượng của phiên bản đó
Như một giải pháp, hãy thay đổi kích thước hình ảnh bằng phương pháp Gối nâng cao hơn, resize[]
4
- Thực hiện bước 1 và 2 của quy trình trên
- Gọi phương thức
resize[]
4 trên đối tượngImage
, truyền đối số bộ dữ liệu có hai số nguyên để chỉ định chiều rộng và chiều cao mà bạn mong muốnresize[]
7resize[]
8resize[]
9image
0
Như được hiển thị bên dưới image
1, kích thước của phiên bản mới là 400×350 pixel. Tỷ lệ khung hình của ảnh gốc không thay đổi. Ngoài ra, nếu kích thước của bản gốc nhỏ hơn kích thước được chỉ định cho phiên bản mới, thay vì “thổi phồng” hình ảnh, resize[]
4 trả về một phiên bản có cùng kích thước
Thay đổi kích thước hình ảnh bằng Python với OpenCV
OpenCV là một thư viện thị giác máy tính nguồn mở với hàng nghìn thuật toán học máy và học sâu để nhận diện khuôn mặt, nhận dạng đối tượng và nhiều tác vụ thị giác máy tính khác. Do nhiều mô hình thị giác máy tính yêu cầu một kích thước và mức chất lượng nhất định cho hình ảnh của chúng, nên việc thay đổi kích thước là rất quan trọng. Để xác định biến thể hình ảnh nào hoạt động tốt nhất, hãy thử nghiệm với các kích thước hoặc độ phân giải khác nhau
Đây là cú pháp đầy đủ cho phương thức resize[]
trong OpenCV
image
4
Các thông số như sau
srcĐường dẫn tệp chứa hình ảnh đầu vào. dsizeKích thước của hình ảnh đầu ra, tuân theo cú phápimage
5. fxHệ số tỷ lệ cho trục X. fyHệ số tỷ lệ cho trục Y. nội suyKỹ thuật thêm hoặc xóa pixel trong quá trình thay đổi kích thước. Mặc định là image
6Ghi chú. Áp dụng một trong hai image
7 hoặc image
8 và image
9, hoặc cả ba
Để thực hiện tác vụ thay đổi kích thước đơn giản với OpenCV
- Nhập thư viện OpenCV
open[]
0open[]
1
- Có được một hình ảnh mẫu và chỉ định kích thước hiện tại của nó
open[]
2open[]
3open[]
4open[]
5
- Thay đổi kích thước hình ảnh, chẳng hạn như kích thước 800 × 600 pixel, thành 300 × 300 pixel
open[]
6
Như trong ví dụ trước về thay đổi kích thước hình ảnh bằng phương thức thay đổi kích thước [] của Gối, quy trình này thay đổi tỷ lệ khung hình, gây ra biến dạng. Để duy trì tỷ lệ đó, hãy chạy lệnh sau để thay đổi kích thước hình ảnh thành 75% chiều rộng và chiều cao của nó
open[]
7
Ngoài ra, đối với một phiên bản đã thay đổi kích thước lớn hơn so với bản gốc, bạn có thể tùy chỉnh phép nội suy của thao tác thay đổi kích thước. Mặc dù làm như vậy gây giảm chất lượng, nhưng nó có thể là lựa chọn phù hợp cho một số ứng dụng thị giác máy tính
Dưới đây là các giá trị cho đối số open[]
8
image
6Nội suy song tuyến tính tiêu chuẩn, lý tưởng cho hình ảnh phóng to. image = Image.open['myimage.jpg']
0Phép nội suy láng giềng gần nhất, mặc dù chạy nhanh nhưng tạo ra hình ảnh khối. image = Image.open['myimage.jpg']
1Nội suy cho vùng pixel, giúp thu nhỏ hình ảnh. image = Image.open['myimage.jpg']
2Nội suy nhị phân với các vùng lân cận 4×4 pixel, mặc dù chạy chậm nhưng tạo ra các phiên bản chất lượng cao. image = Image.open['myimage.jpg']
3Phép nội suy Lanczos với vùng lân cận 8×8 pixel, tạo ra hình ảnh có chất lượng cao nhất nhưng chạy chậm nhấtThay đổi kích thước và cắt hình ảnh Python bằng Cloudinary thông qua tự động hóa
Dịch vụ dựa trên đám mây để quản lý hình ảnh và video, Cloudinary cung cấp gói đăng ký miễn phí mãi mãi hào phóng. Khi ở trên nền tảng đó, bạn có thể tải lên hình ảnh và áp dụng các hiệu ứng, bộ lọc và sửa đổi tích hợp sẵn
Bạn cũng có thể thay đổi kích thước hình ảnh thông qua tự động hóa, tập trung vào các yếu tố quan trọng nhất bằng AI hoặc điều chỉnh chúng cho phù hợp với thiết kế trang web của mình, chẳng hạn như chỉ định chiều rộng, chiều cao và tỷ lệ khung hình làm tiêu chuẩn cho các phiên bản hình ảnh mới. Sau đó, Cloudinary sẽ tự động thực hiện các tác vụ thay đổi kích thước và cắt xén để đáp ứng các tiêu chí. Không cần nỗ lực thủ công