Trong bài đăng này, tôi sẽ giải thích cách đọc nhiều hình ảnh từ một thư mục, thay đổi kích thước chúng, lưu chúng vào một thư mục mới [có hoặc không đổi tên chúng] và hiển thị từng cái một
Đầu tiên, chúng tôi sẽ nhập các thư viện cần thiết
Bây giờ để thay đổi kích thước hình ảnh, chúng tôi sẽ tạo một thư mục đầu ra mới, đọc từng hình ảnh từ thư mục đầu vào bằng vòng lặp for, thay đổi kích thước hình ảnh, lưu chúng vào thư mục đầu ra và hiển thị từng hình ảnh đã thay đổi kích thước
Bây giờ trong mã này, chúng tôi đang đọc hình ảnh từ Thư mục đầu vào
Tạo một thư mục mới Đã thay đổi kích thước
i = 0 sẽ được sử dụng để đổi tên hình ảnh mà chúng tôi lưu trong thư mục Đã thay đổi kích thước
Trong vòng lặp for, chúng tôi đang đọc từng hình ảnh một bằng cách sử dụng cv2. imread
cv2. thay đổi kích thước được sử dụng để thay đổi kích thước hình ảnh
cv2. imwrite được sử dụng để ghi các hình ảnh đã thay đổi kích thước vào thư mục đầu ra, i = 0 mà chúng tôi đã xác định trước đó được sử dụng ở đây để đổi tên các hình ảnh
cv2. imshow cùng với cv. waitKey được sử dụng để hiển thị hình ảnh đã thay đổi kích thước
Nếu cần giữ lại tên của các hình ảnh đã thay đổi kích thước thì có thể sử dụng mã bên dưới
Khi chúng tôi đọc các hình ảnh đầu vào trong 'img', nó cũng sẽ chứa tên của thư mục chứa chúng, tôi. e, đường dẫn đầy đủ của hình ảnh và để lấy tên của hình ảnh, chúng ta phải xóa tên của thư mục đầu vào khỏi nó để thư mụcLen có độ dài bằng tên của thư mục đầu vào và trong cv2. imwrite chúng tôi đang xóa nó và chỉ lấy tên của hình ảnh tại img[folderLen. ]
Bài viết ngắn này sẽ chỉ cho bạn từng bước cách sử dụng Gối trong Python tập trung vào thay đổi kích thước hàng loạt hình ảnh với một tập lệnh mẫu. Mặc dù thư viện Gối này đã được giới thiệu từ lâu nhưng nó vẫn mạnh mẽ và rất hữu ích như năm 2020
Ví dụ về việc sử dụng Python với Gối để thay đổi kích thước tất cả hình ảnh trong một thư mục. [gif của tác giả]
Ví dụ: hình ảnh gif ở trên cho thấy Python với Gối có thể thay đổi kích thước/thay đổi tỷ lệ tất cả các tệp hình ảnh trong một thư mục chỉ với ~ 8-10 dòng mã. Một số thao tác có thể được thực hiện với Gối như thay đổi kích thước, thay đổi tỷ lệ, xoay, chuyển đổi, chuyển đổi giữa các định dạng tệp, tăng cường độ tương phản, v.v.
Bắt đầu nào
Cài đặt
Bạn chỉ cần cài đặt thư viện Gối bằng cách sử dụng pip
như sau
$ pip install pillow
Gối mới nhất không còn được hỗ trợ với Python 2. x. Bạn có thể kiểm tra phiên bản Gối để khớp với phiên bản Python của bạn bên dưới
Hỗ trợ phiên bản gối [Nguồn. https. //cái gối. đọcthedocs. io/vi/ổn định/cài đặt. html]
Sử dụng cơ bản
Khái niệm Gối khá đơn giản với ba bước này
- Tải một hình ảnh [Hoặc tấn hình ảnh]
- Thực hiện một số thao tác chỉnh sửa/thao tác hình ảnh
- Lưu hình ảnh đã chỉnh sửa ở định dạng bạn thích
from PIL import Image
# ---- 1 ----
im = Image.open["input_path"]
# ---- 2 ----
# .. Do some operation
# ---- 3 ----
im = Image.save["output_path"]
Hỗ trợ các định dạng
Gối hỗ trợ nhiều định dạng tệp raster. Thư viện có thể xác định và đọc hơn 30 định dạng tệp khác nhau. Hỗ trợ viết ít rộng rãi hơn, nhưng hầu hết các định dạng trình bày và trao đổi phổ biến đều được hỗ trợ. [1]
Bây giờ, hãy xem một số ví dụ thực tế
thực hànhBạn có thể lặp qua từng tệp hình ảnh trong thư mục bằng cách sử dụng pathlib
hoặc os
sau đó sử dụng Gối để tải hình ảnh. Sau đó, bạn có thể sử dụng lệnh thumbnail
để thu nhỏ kích thước hình ảnh xuống giá trị chiều rộng tối đa hoặc chiều cao tối đa được chỉ định và giữ nguyên khía cạnh của hình ảnh
# Load image
im = Image.open[input_img_path]# Smaller image/ preserve the aspect of the image
resized_im = im.thumbnail[, ]# Or Resize image to exact specified size
resized_im = im.resize[, ] # Then, save the resized image
resized_im.save[, , dpi, ...]
Ví dụ: tập lệnh bên dưới cho biết cách thay đổi kích thước tất cả hình ảnh trong thư mục có tên là “đầu vào” của bạn để có chiều rộng và chiều cao tối đa là 512 pixel, đồng thời giữ nguyên kích thước của hình ảnh và lưu chúng với cùng tên là định dạng JPEG ở 300 dpi trong . Ví dụ này sử dụng pathlib
để lặp qua tất cả các tệp trong một thư mục
Với tập lệnh này, bạn có thể thêm bất kỳ thao tác hình ảnh nào giữa dòng 7 và 8. Chẳng hạn như xoay, chuyển đổi, chuyển đổi giữa các định dạng tệp, tăng cường độ tương phản. Bạn có thể thấy danh sách các thao tác khả dụng từ tài liệu Gối
Ngoài ra, có một số công cụ Thao tác hình ảnh Python khác để sử dụng như OpenCV và scikit Image
Những từ cuối
Vì vậy, đó là về nó. Tôi hy vọng bạn thích bài viết này và thấy nó hữu ích cho công việc hoặc dự án hàng ngày của bạn. Vui lòng để lại tin nhắn cho tôi nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào
Giới thiệu về tôi & Kiểm tra tất cả nội dung blog của tôi. liên kết
Hãy an toàn và khỏe mạnh. 💪
Cảm ơn bạn đã đọc. 📚
Người giới thiệu
[1] Alex Clark https. //cái gối. đọcthedocs. io/en/ổn định/sổ tay/định dạng tệp hình ảnh. html [2020], Gối [PIL Fork]