캐논스타일 이미지 보정하는 방법

캐논(Canon) 인테리어 사진 스타일’**의 핵심은 정확한 화이트 밸런스(순백색 유지), 풍부한 하이라이트 디테일, 그리고 텍스처(재질감)가 살아있는 날카로운 선예도입니다.

단순히 ESRGAN만 돌리면 해상도는 커지지만, 자칫 ‘유화(그림)’처럼 뭉개지거나 색감이 탁해질 수 있습니다.

“맑고 투명하며 쨍한 잡지 화보” 느낌을 내기 위해 Python 프로그램에 추가해야 할 5가지 핵심 보정 로직을 정리해 드립니다. 이 기능들은 OpenCV와 NumPy를 통해 ESRGAN 전후 단계에 적용해야 합니다.


1. 전처리 (Pre-processing): 노이즈 제거 및 라인 정리

ESRGAN이 노이즈까지 확대하는 것을 막고, 인테리어 사진의 핵심인 ‘직선’을 살려야 합니다.

  • Lanczos 리샘플링 다운스케일링 (선택적): 원본 이미지가 너무 거칠다면, 아주 살짝 줄였다가(0.9배) AI로 확대하면 노이즈가 줄어듭니다.

  • Fast Non-Local Means Denoising: cv2.fastNlMeansDenoisingColored 함수를 약하게 적용하여 잡티를 제거합니다. 이는 ‘투명한’ 느낌을 주는 기초가 됩니다.

2. ESRGAN 모델 선정: Real-ESRGAN (x4plus)

일반 ESRGAN 모델 대신, 실사 사진에 특화된 Real-ESRGAN_x4plus 모델을 사용해야 합니다.

  • 이유: 일반 모델은 애니메이션 풍으로 변환되는 경향이 있습니다. x4plus 모델은 카메라 센서의 노이즈 패턴과 JPEG 압축 손실을 복원하도록 훈련되어 있어, 캐논 카메라의 RAW 파일 현상과 유사한 결과물을 줍니다.

3. 후처리 핵심 로직 (Post-processing): “맑고 쨍한” 느낌 만들기

이 단계가 가장 중요합니다. ESRGAN 결과물에 다음 필터들을 순차적으로 적용하세요.

A. 언샤프 마스크 (Unsharp Masking) – 선예도 극대화

캐논 L렌즈 특유의 ‘칼 같은 선예도’를 구현합니다. 단순히 전체를 날카롭게 하는 게 아니라, 엣지(Edge) 부분의 대비를 높여야 합니다.

  • Python 로직: 가우시안 블러(Gaussian Blur) 처리된 이미지와 원본의 차이를 계산하여 원본에 더해줍니다.

  • 효과: 대리석 상판의 무늬나 조명의 빗살무늬가 또렷하게 살아납니다.

B. CLAHE (Contrast Limited Adaptive Histogram Equalization) – 투명감 부여

이미지 전체의 밝기를 올리면 하이라이트가 날아갑니다(백화 현상). CLAHE는 이미지를 타일로 쪼개어 부분적으로 대비를 조정합니다.

  • 설정값: clipLimit=2.0, tileGridSize=(8,8) 정도가 적당합니다.

  • 효과: 어두운 구석은 밝히고, 너무 밝은 조명은 디테일을 살려내어 ‘잡지 화보’처럼 균형 잡힌 톤을 만듭니다.

C. 화이트 밸런스 자동 보정 (Auto White Balance) – 맑은 색감

첨부하신 사진처럼 ‘흰색을 진짜 흰색처럼’ 보이게 하려면 색온도 보정이 필수입니다.

  • Gray World 알고리즘: 이미지의 평균 색상을 회색으로 가정하고 B(파랑)와 R(빨강) 채널의 게인을 조정합니다.

  • 효과: 실내 조명으로 인한 누런 끼를 제거하여 쿨하고 모던한 느낌을 줍니다.

4. 고급 블렌딩 (Image Blending)

AI가 생성한 이미지가 너무 인위적일 때 사용하는 프로들의 팁입니다.

  • 로직: 최종 결과물 = (ESRGAN 결과물 * 0.7) + (원본을 Lanczos로 단순 확대한 이미지 * 0.3)

  • 효과: AI가 만들어낸 디테일은 챙기되, 원본 사진이 가진 자연스러운 질감을 섞어주어 “인위적인 AI 느낌”을 없앱니다.

5. 색수차 제거 (Chromatic Aberration Removal)

확대 과정에서 물체 테두리에 보라색이나 초록색 띠가 생길 수 있습니다. 이를 제거해야 비싼 렌즈로 찍은 것처럼 보입니다.

  • 로직: RGB 채널을 미세하게 이동(Shift)시키거나 채도 마스크를 이용해 테두리의 유채색을 뺍니다.


🛠️ 추천 파이프라인 요약 (Python 구현 순서)

  1. Input Load: 이미지 로드

  2. AI Upscaling: Real-ESRGAN (CUDA 가속)

  3. Color Correction: 화이트 밸런스 조정 + 채도(Saturation) 살짝(1.1배) 증가

  4. Tone Mapping: CLAHE로 명암비 최적화 (투명감 확보)

  5. Sharpening: Unsharp Mask 적용 (선예도 확보)

  6. Blending: 필요 시 원본 텍스처와 미세 혼합

  7. Save: 고화질 저장

Similar Posts

답글 남기기