CodeGym /자바 코스 /Python SELF KO /색상 작업과 이미지 보정

색상 작업과 이미지 보정

Python SELF KO
레벨 45 , 레슨 4
사용 가능

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")

색상 보정의 실용적 응용

  • 사진 편집: 밝기와 대비 조정을 통해 사진의 세부 사항 가시성을 향상시키고, 필터를 사용해 이미지를 더 표현력 있게 만들어.
  • 이미지 분석 준비: 흑백 변환, 선명도 및 대비 증가를 통해 이미지를 더 뚜렷하게 하여 분석에 적합하도록 만들어.
  • 이미지 스타일링: 채도 변경 및 필터 적용을 통해 디자이너 프로젝트에서 독특한 스타일과 효과를 만들어.
1
Опрос
Pillow로 이미지 작업하기,  45 уровень,  4 лекция
недоступен
Pillow로 이미지 작업하기
Pillow로 이미지 작업하기
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION