3원색(RGB) 빛의 합성 실험
빨강, 초록, 파랑 빛의 세기를 조절하여 새로운 색을 만들어보세요. 빛은 섞을수록 밝아지는 가산 혼합을 합니다.
Result: #000000
255
0
0
💡 힌트:
- 빨강(255) + 초록(255) = 노랑 (Yellow)
- 빨강(255) + 파랑(255) = 자홍 (Magenta)
- 초록(255) + 파랑(255) = 청록 (Cyan)
- 모두 255 = 흰색 (White)
볼록/오목 렌즈 시뮬레이터
렌즈의 종류를 선택하고 물체(촛불)를 드래그하여 상이 어떻게 맺히는지 확인해보세요.
초점 거리(f):
100
🖐 물체(화살표)를 좌우로 드래그해보세요
🔎 관찰 포인트
- 볼록 렌즈: 물체가 초점 밖에 있으면 도립 실상(뒤집힌 상), 초점 안에 있으면 정립 허상(확대된 상)이 생깁니다.
- 오목 렌즈: 항상 물체보다 작고 똑바로 선 정립 허상이 생깁니다.
- 카메라나 눈의 수정체는 볼록 렌즈의 원리를 이용합니다.
SW 융합: 파이썬으로 빛 다루기
우리가 실험한 '빛의 합성'은 컴퓨터에서 이미지를 처리할 때 핵심 원리가 됩니다. 파이썬의 이미지 처리 라이브러리(OpenCV, PIL)를 사용하면 이렇게 표현됩니다.
1. 디지털 이미지의 기본 (RGB 픽셀)
컴퓨터 모니터의 픽셀 하나는 (Red, Green, Blue) 3개의 숫자로 표현됩니다. (0~255)
# 파이썬 리스트나 튜플로 색상 표현 (R, G, B)
red_pixel = (255, 0, 0) # 순수한 빨강
yellow_pixel = (255, 255, 0) # 빨강 + 초록 = 노랑
white_pixel = (255, 255, 255) # 모든 빛의 합성 = 흰색
print(f"노란색 픽셀 데이터: {yellow_pixel}")
2. OpenCV로 이미지 색상 조절하기
이미지 전체의 붉은색 성분을 강조하고 싶다면 어떻게 코딩할까요?
import cv2
import numpy as np
# 검은색 배경(0) 생성 (높이 300, 너비 300, 3채널)
image = np.zeros((300, 300, 3), dtype=np.uint8)
# BGR 순서 주의! (OpenCV는 RGB가 아니라 BGR을 씁니다)
# 파란색 원 그리기
cv2.circle(image, (100, 150), 50, (255, 0, 0), -1)
# 픽셀값 더하기 (빛의 합성 시뮬레이션)
# 두 이미지를 더하면 값이 커져서 밝아집니다. (cv2.add)
🚀 도전 과제
파이썬과 웹캠을 이용하여, 카메라에 빨간색 셀로판지를 댔을 때 세상이 어떻게 보이는지 필터 프로그램을 만들어보세요. 이미지의 G, B 채널 값을 0으로 만들면 됩니다!