OpenCV-Python 컬러 이미지 대비 조정

김지수·2021년 3월 8일
1

OpenCV

목록 보기
4/9
post-thumbnail

코드

import cv2

# 이미지 읽기
src = cv2.imread('파일경로', cv2.IMREAD_COLOR)
# bgr 색공간 이미지를 lab 색공간 이미지로 변환
lab = cv2.cvtColor(src, cv2.COLOR_BGR2LAB)

# l, a, b 채널 분리
l, a, b = cv2.split(lab)

# CLAHE 객체 생성
clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8, 8))
# CLAHE 객체에 l 채널 입력하여 CLAHE가 적용된 l 채널 생성 
l = clahe.apply(l)

# l, a, b 채널 병합
lab = cv2.merge((l, a, b))
# lab 색공간 이미지를 bgr 색공간 이미지로 변환
cont_dst = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)

# 원본, 대비 증가 이미지 화면 출력
cv2.imshow('org', src)
cv2.imshow('Increased contrast', cont_dst)

# 화면 출력창 대기/닫기
cv2.waitKey()
cv2.destroyAllWindows()

결과



설명

cv2.cvtColor() 메소드

이미지 색공간 변환

cv2.cvtColor(src, code[, dst[, dstCn]])

ParameterDescription
src색공간을 변환할 이미지
code색공간 변환 코드
dst출력 이미지(src와 크기, 깊이 같음)
dstCn대상 이미지의 채널 수

Return : 이미지

cv2.split() 메소드

채널 분리

channel1, channel2, channel3= cv2.split(src)

ParameterDescription
src채널을 분리할 이미지

Return : 각 채널값을 출력하면 흑백 이미지 출력

cv2.merge() 메소드

채널 병합

cv2.merge((channel1, channel2, channel3))

ParameterDescription
channel1, channel2, channel3병합할 채널

Return : 이미지

cv2.createCLAHE() 메소드

CLAHE 객체 생성

clahe = cv2.createCLAHE(clipLimit, tileGridSize)

ParameterDescription
clipLimit히스토그램의 높이를 제한하는 값
tileGridSize타일 그리드 크기 *default : 8 x 8

Return : CLAHE 객체

clahe.apply() 메소드

CLAHE 객체에 l 채널 입력하여 CLAHE가 적용된 l 채널 생성

clahe.apply(src)

ParameterDescription
srcCLAHE를 적용할 이미지

Return : 이미지

LAB 색공간

채널
L(luminosity)명도축
a초록(Green) 의 보색(a complementary color)축
b파랑(Blue) 의 보색(a complementary color)축
profile
A Data human as a Learner, a Supporter, and a Listener

0개의 댓글