1. 색상 모드 변경
이미지는 다음과 같은 다양한 색상 모드로 표현될 수 있어:
- RGB: 표준 컬러 모드.
- L: 회색조.
- CMYK: 인쇄에서 사용.
- RGBA: 투명도를 위한 알파 채널이 포함된 RGB.
convert()
메서드를 사용하여 이미지를 다른 색상 모드로 변환할 수 있어.
회색조로 변환
이미지를 흑백으로 변환하려면 L
색상 모드를 사용해:
# 회색조로 변환
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
이 코드는 이미지를 흑백으로 변환하고 gray_example.jpg
파일로 저장해. 흑백 스타일을 만들거나 밝기 레벨만 중요한 분석을 위해 이미지를 준비할 때 유용해.
CMYK 모드로 변환
CMYK는 주로 인쇄에서 사용돼. 이미지가 인쇄용이라면 이 모드로 변환하는 게 유용할 수 있어.
# CMYK로 변환
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")
2. 이미지에 필터 적용
Pillow는 여러 내장 필터를 제공해서 다양한 효과를 만들 수 있어. 이 필터들은 ImageFilter
모듈에 있어.
블러, 윤곽, 선명도 필터 적용
from PIL import ImageFilter
# 블러 필터 적용
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")
# 윤곽 필터 적용
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")
# 선명도 필터 적용
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")
여기서 세 가지 다른 필터를 적용했어:
- BLUR: 이미지를 흐리게 해서 부드러운 효과를 만들어.
- CONTOUR: 이미지에서 객체의 윤곽을 강조해.
- SHARPEN: 선명도를 높여서 이미지를 더 뚜렷하게 만들어.
다른 필터들
Pillow에서 유용한 다른 필터들:
- DETAIL: 세부 사항을 강조.
- EDGE_ENHANCE: 가장자리를 강조.
- SMOOTH: 이미지를 부드럽게.
# 가장자리 강조 필터 적용
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")
3. 밝기, 대비, 선명도, 채도 조정
Pillow의 ImageEnhance
패키지를 사용하면 이미지의 밝기, 대비, 선명도 및 채도를 쉽게 조정할 수 있어.
밝기 조정
밝기를 변경하려면 ImageEnhance.Brightness
클래스를 사용해. 밝기 계수는 1.0
이 원래 밝기이고, 1.0
미만은 어두워짐, 1.0
이상은 밝아짐을 의미해.
from PIL import ImageEnhance
# 밝기 조정
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5) # 밝기를 50% 증가
brighter_image.save("brighter_example.jpg")
대비 조정
대비는 밝은 영역을 더 밝게, 어두운 영역을 더 어둡게 만들어. 대비 조정을 위해 ImageEnhance.Contrast
를 사용해.
# 대비 조정
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5) # 대비를 50% 증가
higher_contrast_image.save("higher_contrast_example.jpg")
선명도 조정
선명도는 이미지의 객체 가장자리가 얼마나 뚜렷한지를 결정해. 선명도 조정을 위해 ImageEnhance.Sharpness
를 사용해.
# 선명도 조정
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0) # 선명도를 2배로 증가
sharper_image.save("sharper_example.jpg")
1.0
은 원래 선명도를 유지하고, 1.0
미만은 더 흐릿하게, 1.0
이상은 더 선명하게 만들어.
채도 조정
채도는 색상을 더 강렬하거나 덜 강렬하게 만들어. 채도를 변경하려면 ImageEnhance.Color
를 사용해.
# 채도 조정
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5) # 채도를 50% 증가
more_vibrant_image.save("more_vibrant_example.jpg")
4. 이미지 보정 방법 비교
방법 | 설명 | 적용 |
---|---|---|
convert("L") |
이미지를 흑백 모드로 변환 | 흑백 스타일, 회색조 분석 |
ImageFilter |
블러, 선명도 등의 필터 적용 | 효과 추가, 객체 강조 |
ImageEnhance.Brightness |
이미지 밝기 조정 | 밝게 또는 어둡게 |
ImageEnhance.Contrast |
대비 조정 | 세부 사항 강조 |
ImageEnhance.Sharpness |
선명도 조정 | 가장자리 강조, 선명도 증가 |
ImageEnhance.Color |
채도 조정 | 밝고 강렬한 이미지 생성 |
5. 예제
전체 이미지 처리 예제
지금까지 배운 모든 것을 조합하여 여러 단계의 색상 보정, 필터 적용, 밝기, 대비, 채도 조정을 수행하는 코드를 작성해 보자.
from PIL import Image, ImageEnhance, ImageFilter
# 이미지 로드
image = Image.open("example.jpg")
# 흑백 모드로 변환
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
# 선명도 필터 적용
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")
# 밝기 증가
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3) # 밝기를 30% 증가
brighter_image.save("brighter_gray_example.jpg")
# 대비 증가
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5) # 대비를 50% 증가
higher_contrast_image.save("final_example.jpg")
색상 보정의 실용적 응용
- 사진 편집: 밝기와 대비 조정을 통해 사진의 세부 사항 가시성을 향상시키고, 필터를 사용해 이미지를 더 표현력 있게 만들어.
- 이미지 분석 준비: 흑백 변환, 선명도 및 대비 증가를 통해 이미지를 더 뚜렷하게 하여 분석에 적합하도록 만들어.
- 이미지 스타일링: 채도 변경 및 필터 적용을 통해 디자이너 프로젝트에서 독특한 스타일과 효과를 만들어.
GO TO FULL VERSION