1. Thay đổi chế độ màu
Hình ảnh có thể được thể hiện ở các chế độ màu khác nhau như:
- RGB: Chế độ màu tiêu chuẩn.
- L: Thang độ xám.
- CMYK: Sử dụng trong in ấn.
- RGBA: RGB với kênh alpha (dành cho tính năng trong suốt).
Có thể chuyển đổi hình ảnh sang chế độ màu khác bằng phương thức convert()
.
Chuyển đổi sang thang độ xám
Để chuyển đổi hình ảnh sang trắng đen, hãy sử dụng chế độ màu L
:
# Chuyển đổi sang thang độ xám
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
Đoạn mã này chuyển hình ảnh sang trắng đen và lưu vào tệp gray_example.jpg
. Điều này hữu ích nếu bạn muốn tạo phong cách trắng đen hoặc chuẩn bị hình ảnh để phân tích, nơi chỉ mức độ sáng được quan tâm.
Chuyển đổi sang chế độ CMYK
CMYK thường được sử dụng trong in ấn. Việc chuyển đổi hình ảnh sang chế độ này có thể hữu ích nếu hình ảnh dự kiến được in ra.
# Chuyển đổi sang CMYK
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")
2. Áp dụng bộ lọc cho hình ảnh
Thư viện Pillow cung cấp một số bộ lọc tích hợp có thể được sử dụng để tạo các hiệu ứng khác nhau. Các bộ lọc này nằm trong module ImageFilter
.
Áp dụng bộ lọc làm mờ, đường viền và tăng độ nét
from PIL import ImageFilter
# Áp dụng bộ lọc làm mờ
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")
# Áp dụng bộ lọc đường viền
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")
# Áp dụng bộ lọc tăng độ nét
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")
Ở đây chúng ta áp dụng ba bộ lọc khác nhau:
- BLUR: Làm mờ hình ảnh, hữu ích để tạo hiệu ứng mềm mại.
- CONTOUR: Làm nổi bật đường viền của các đối tượng trên hình ảnh.
- SHARPEN: Tăng độ nét, làm cho hình ảnh rõ ràng hơn.
Các bộ lọc khác
Một số bộ lọc hữu ích khác trong Pillow:
- DETAIL: Làm nổi bật chi tiết.
- EDGE_ENHANCE: Tăng cường viền.
- SMOOTH: Làm mềm hình ảnh.
# Áp dụng bộ lọc tăng cường viền
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")
3. Điều chỉnh độ sáng, độ tương phản, độ nét và độ bão hòa
Gói ImageEnhance
trong Pillow cho phép dễ dàng thay đổi độ sáng, độ tương phản, độ nét và độ bão hòa màu của hình ảnh.
Điều chỉnh độ sáng
Để thay đổi độ sáng, hãy sử dụng lớp ImageEnhance.Brightness
. Hệ số độ sáng có thể là bất kỳ số nào: 1.0
— độ sáng gốc, nhỏ hơn 1.0
— làm tối, lớn hơn 1.0
— tăng độ sáng.
from PIL import ImageEnhance
# Thay đổi độ sáng
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5) # Tăng độ sáng 50%
brighter_image.save("brighter_example.jpg")
Điều chỉnh độ tương phản
Độ tương phản làm cho các vùng sáng sáng hơn và vùng tối tối hơn. Để điều chỉnh độ tương phản, sử dụng ImageEnhance.Contrast
.
# Thay đổi độ tương phản
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5) # Tăng độ tương phản 50%
higher_contrast_image.save("higher_contrast_example.jpg")
Điều chỉnh độ nét
Độ nét quyết định mức độ rõ rệt của các cạnh đối tượng trên hình ảnh. Để điều chỉnh độ nét, sử dụng ImageEnhance.Sharpness
.
# Thay đổi độ nét
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0) # Tăng độ nét gấp 2 lần
sharper_image.save("sharper_example.jpg")
Giá trị 1.0
giữ nguyên độ nét gốc, nhỏ hơn 1.0
làm hình ảnh mờ hơn, lớn hơn 1.0
— sắc nét hơn.
Điều chỉnh độ bão hòa màu
Độ bão hòa màu làm cho màu sắc trở nên mạnh mẽ hơn hoặc nhẹ nhàng hơn. Để thay đổi độ bão hòa, sử dụng ImageEnhance.Color
.
# Thay đổi độ bão hòa
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5) # Tăng độ bão hòa 50%
more_vibrant_image.save("more_vibrant_example.jpg")
4. So sánh các phương pháp chỉnh sửa hình ảnh
Phương pháp | Mô tả | Ứng dụng |
---|---|---|
convert("L") |
Chuyển đổi hình ảnh sang chế độ trắng đen | Phong cách trắng đen, phân tích độ sáng |
ImageFilter |
Áp dụng bộ lọc làm mờ, tăng nét, v.v. | Tạo hiệu ứng, làm nổi bật đối tượng |
ImageEnhance.Brightness |
Điều chỉnh độ sáng hình ảnh | Làm sáng hoặc làm tối |
ImageEnhance.Contrast |
Thay đổi độ tương phản | Cải thiện chi tiết hình ảnh |
ImageEnhance.Sharpness |
Thay đổi độ nét | Làm nổi bật các cạnh, tăng độ rõ ràng |
ImageEnhance.Color |
Điều chỉnh độ bão hòa màu | Tạo hình ảnh sinh động, đậm màu |
5. Ví dụ
Ví dụ xử lý hình ảnh toàn diện
Hãy kết hợp tất cả các phương pháp trên và tạo một đoạn mã thực hiện nhiều bước chỉnh sửa màu sắc, áp dụng bộ lọc, thay đổi độ sáng, độ tương phản và độ bão hòa.
from PIL import Image, ImageEnhance, ImageFilter
# Tải hình ảnh
image = Image.open("example.jpg")
# Chuyển đổi sang chế độ trắng đen
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
# Áp dụng bộ lọc tăng nét
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")
# Tăng độ sáng
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3) # Tăng sáng thêm 30%
brighter_image.save("brighter_gray_example.jpg")
# Tăng độ tương phản
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5) # Tăng tương phản thêm 50%
higher_contrast_image.save("final_example.jpg")
Ứng dụng thực tiễn của việc chỉnh sửa màu sắc
- Xử lý ảnh: Điều chỉnh độ sáng và độ tương phản có thể làm nổi bật các chi tiết trên ảnh, trong khi các bộ lọc giúp tạo ra hình ảnh ấn tượng hơn.
- Chuẩn bị hình ảnh để phân tích: Chuyển sang trắng đen, tăng độ nét và độ tương phản giúp làm rõ hình ảnh để phân tích.
- Phong cách hóa hình ảnh: Thay đổi độ bão hòa và áp dụng bộ lọc giúp tạo ra các phong cách và hiệu ứng độc đáo cho các dự án thiết kế.
GO TO FULL VERSION